Tableau Excel pour remplisage trame word

bonjour

j'ai réaliser un tableau et une macro afin que les éléments ou j'ai défini des signet dans Word soit rempli

dans excel les noms défini son sur la ligne 6 du tableau

mais ma macro ci dessous me dis que j'ai une erreur et je ne comprend pas

Sub deb()
chemin = ThisWorkbook.Path & "\"
'Ouverture de l'application word
Set w = CreateObject("word.application")
'ouverture du fichier type
Set doc = w.documents.Open(chemin & ThisWorkbook.Names("fichier").RefersToRange)
'numéro des colonnes comprenant les données
champs = Array(4, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
'tableau des signets du fichier type
signets = Array("Entreprise", "AdresseENTREPRISE", "CODEPOSTAL", "NOMPRENOM", "INTITULECONTRAT", "CADRECONTRACTUEL", "SITESEXECUTIONS", "PRIX", "PRIXENLETTRE", "PAIEMENTS", "CODEIMPUTATION", "ANNEXE", "DATE")
'écriture des signets
For Each i In champs
[color=#FFFF40]doc.bookmarks(signets(i - 1)).Range = Sheets("TABLEAU CONTRAT SOUS-TRAITANCE").Cells(ActiveCell.Row, i)[/color]
Next
w.Visible = True
End Sub

encore merci de votre aide

ci joints les fichier

22toto3.zip (31.59 Ko)

Bonjour,

signets = Array("Entreprise", "AdresseENTREPRISE", "CODEPOSTAL", "NOMPRENOM", "INTITULECONTRAT", "CADRECONTRACTUEL", "SITESEXECUTIONS", "PRIX", "PRIXENLETTRE", "PAIEMENTS", "CODEIMPUTATION", "ANNEXE", "DATE")

tu n'as que 12 signets, tu ne peux donc pas appeler au-delà de 12 ! or ici tu vas jusque 22 !!

champs = Array(4, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)

avec

For Each i In champs

Essaie quelque chose comme ceci (si j'ai bien compris ta logique)

For i = LBound(signets) To UBound(signets)
    doc.bookmarks(signets(i)).Range = Sheets("TABLEAU CONTRAT SOUS-TRAITANCE").Cells(ActiveCell.Row, champs(i))
Next

Essaie quelque chose comme ceci (si j'ai bien compris ta logique)

For i = LBound(signets) To UBound(signets)
    doc.bookmarks(signets(i)).Range = Sheets("TABLEAU CONTRAT SOUS-TRAITANCE").Cells(ActiveCell.Row, champs(i))
Next

merci la macro fonctionne mais les info des colonnes du tableau que correspond a mes signets tableau ligne 6 et le fichier word ne se mette pas au bonne endroits

je comprend pas

merci de votre aide

Il faut que les valeurs soient alignées

champs = Array(4, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)

signets = Array("Entreprise", "AdresseENTREPRISE", "CODEPOSTAL", "NOMPRENOM", "INTITULECONTRAT", "CADRECONTRACTUEL", "SITESEXECUTIONS", "PRIX", "PRIXENLETTRE", "PAIEMENTS", "CODEIMPUTATION", "ANNEXE", "DATE")

or Entreprise qui est le premier signet correspond à la colonne 13 et non 4 !, et le reste suit ...

Il faut que les valeurs soient alignées

champs = Array(4, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)

signets = Array("Entreprise", "AdresseENTREPRISE", "CODEPOSTAL", "NOMPRENOM", "INTITULECONTRAT", "CADRECONTRACTUEL", "SITESEXECUTIONS", "PRIX", "PRIXENLETTRE", "PAIEMENTS", "CODEIMPUTATION", "ANNEXE", "DATE")

or Entreprise qui est le premier signet correspond à la colonne 13 et non 4 !, et le reste suit ...

ok j'ai compris merci

Rechercher des sujets similaires à "tableau remplisage trame word"