Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 excel word

bredeche

XLDnaute Occasionnel
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 defini son sur la ligne 6 du tableau
mais ma macro cui dessous me dis que j'ai une erreur et je ne comprend pas

VB:
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
doc.bookmarks(signets(i - 1)).Range = Sheets("TABLEAU CONTRAT SOUS-TRAITANCE").Cells(ActiveCell.Row, i)
Next
w.Visible = True
End Sub
pouvez vous m'aidez

merci par vance
 

Pièces jointes

  • ES MAI-48-DO-SUIVI CONTRAT SST-2019-11-V1 .xlsm
    284.6 KB · Affichages: 6
  • toto3.doc
    118.5 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Bredeche,
J'arrive surement en retard et vous avez trouver l'erreur. Mais dans le doute ...
Signets comporte 13 éléments.
signets = Array("Entreprise", "AdresseENTREPRISE", "CODEPOSTAL", "NOMPRENOM", "INTITULECONTRAT", "CADRECONTRACTUEL", "SITESEXECUTIONS", "PRIX", "PRIXENLETTRE", "PAIEMENTS", "CODEIMPUTATION", "ANNEXE", "DATE")
et i , qui est extrait de Champs, dépasse 13.
champs = Array(4, 8, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22)
donc doc.bookmarks(signets(14)).Range est en erreur.
Je pense qu'il faut gérer deux indices :
i pour la colonne excel d'extraction
j pour l'index dans word.
VB:
....
'écriture des signets
j = 0
For Each i In champs
doc.bookmarks(signets(j)).Range = Sheets("TABLEAU CONTRAT SOUS-TRAITANCE").Cells(ActiveCell.Row, i)
j = j + 1
Next
....
 
Dernière édition:
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…