Piloter Excel depuis Word
Citation:
Envoyé par
SilkyRoad
Merci pour ces exemples, mais dans le cas contraire est ce que ça marche pareil aussi; je veux dire pour piloter Excel depuis Word :?
Exportation de donné vers word depuis excel
Bonjour tout le monde pouvez m'aider à automatiser le code suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
| Sub Tempo_filled_in()
'
' Tempo_filled_in Macro
'
'Necessite d'activer la reference Microsoft Word xx.x Object Library
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Set wordApp = CreateObject("word.application")
wordApp.Visible = True 'mettre False pour garder Word masqué
Set wordDoc = wordApp.Documents.Open("Y:\2019\doc\automation\Doc\word form.docx", ReadOnly:=False) 'ouvre le document Word
'Tables(1) correspond au 1eme tableau du document Word
'transfert la donnée de la cellule A1 dans la 2eme cellule de la 1ere colonne
wordDoc.Tables(1).Columns(1).Cells(2).Range.Text = Range("A2")
wordDoc.Tables(1).Columns(1).Cells(2).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule B2 dans la 2eme cellule de la 2eme colonne
wordDoc.Tables(1).Columns(2).Cells(2).Range.Text = Range("B2")
wordDoc.Tables(1).Columns(2).Cells(2).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule C2 dans la 4eme cellule de la 1eme colonne
wordDoc.Tables(1).Columns(1).Cells(4).Range.Text = Range("C2")
wordDoc.Tables(1).Columns(1).Cells(4).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule D2 dans la 4eme cellule de la 2eme colonne
wordDoc.Tables(1).Columns(2).Cells(4).Range.Text = Range("D2")
wordDoc.Tables(1).Columns(2).Cells(4).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule E2 dans la 6eme cellule de la 1eme colonne
wordDoc.Tables(1).Columns(1).Cells(6).Range.Text = Range("E2")
wordDoc.Tables(1).Columns(1).Cells(6).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule F2 dans la 6eme cellule de la 2eme colonne
wordDoc.Tables(1).Columns(2).Cells(6).Range.Text = Range("F2")
wordDoc.Tables(1).Columns(2).Cells(6).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule G2 dans la 8eme cellule de la 1eme colonne
wordDoc.Tables(1).Columns(1).Cells(8).Range.Text = Range("G2")
wordDoc.Tables(1).Columns(1).Cells(8).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule H2 dans la 8eme cellule de la 2eme colonne
wordDoc.Tables(1).Columns(2).Cells(8).Range.Text = Range("H2")
wordDoc.Tables(1).Columns(2).Cells(8).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule I2 dans la 10eme cellule de la 1eme colonne
wordDoc.Tables(1).Columns(1).Cells(10).Range.Text = Range("I2")
wordDoc.Tables(1).Columns(1).Cells(10).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule J2 dans la 10eme cellule de la 2eme colonne
wordDoc.Tables(1).Columns(2).Cells(10).Range.Text = Range("J2")
wordDoc.Tables(1).Columns(2).Cells(10).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule K2 dans la 12eme cellule de la 1eme colonne
wordDoc.Tables(1).Columns(1).Cells(12).Range.Text = Range("K2")
wordDoc.Tables(1).Columns(1).Cells(12).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'transfert la donnée de la cellule K2 dans la eme cellule de la 2eme colonne
wordDoc.Tables(1).Columns(2).Cells(12).Range.Text = Range("L2")
wordDoc.Tables(1).Columns(2).Cells(12).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
'save file in ="Y:\2019\RFI\automation\Mastercard Send Cross Border - Compliance Information Request Form_OriginatingID
ActiveDocument.SaveAs Filename:="Y:\2019\doc\automation\Word Form_" & [$F$2], FileFormat:= _
wdFormatDocument
Avec ce code les cellules de mon fichier excel et de mon fichier word sont statique.
J'aimerais automatiser ce code pour que le remplissage du tableau word soit automatique (via une bloucle) et donc dans il me faut aussi une boucle pour faire correspondre les cellules excel (row) au tableau word avec une boucle aussi et donc de ne plus devoir preciser le range de A2 à L2, mais plutôt utiliser une boucle.
Avec ce code je n'ai que la cellule A2 qui est utilisé dans mon tableau word :
Sub Tempo_automa_fill_in()
'
' Tempo_automa_fill_in Macro
'
'Necessite d'activer la reference Microsoft Word xx.x Object Library
Dim wordApp As Word.Application
Dim wordDoc As Word.Document
Dim i As Byte, j As Byte
Dim Comp_Starting_celA As Integer
Dim tab_excel(10, 12)
Dim Starting_celA As Range ' tab dans excel "template" starting point of the data A2
Set Starting_celA = Sheets("tempate").Range("A2") ' Assignation of the starting point
Set wordApp = CreateObject("word.application")
wordApp.Visible = True 'mettre False pour garder Word masqué
Set wordDoc = wordApp.Documents.Open("Y:\2019\RFI\automation\Doc\Mastercard Send Cross Border - Compliance Information Request Form.docx", ReadOnly:=False) 'ouvre le document Word
Comp_Starting_celA = 1
For i = 1 To 2
For j = 2 To 12
'Tables(1) correspond au 1eme tableau du document Word
'transfert la donnée de la cellule A1 dans la 2eme cellule de la 1ere colonne
wordDoc.Tables(1).Columns(i).Cells(j).Range.Text = Starting_celA ' malheursement que la cellule A2
wordDoc.Tables(1).Columns(i).Cells(j).Shading.BackgroundPatternColorIndex = wdBlue 'fond de cellule en bleu
j = j + 1
Next j
Next i
End Sub |
malheureusement il n'y a que la cellule A2 qui se rempli dans mon toute les case de mon document Word. Pouvez m'aider à faire la boucle pour la row dans donc mon fichier excel?
Merci d'avance pour votre aide.
Anil
Exportation de donné vers word depuis excel
Merci Beaucoup je vais regarder votre réponse.
Anil