Merci pour le retour.
J'ai récupéré la macro déjà faite (qui marche bien pour passer plusieurs docs en prenant les infos sur plusieurs colonnes).
La boucle For j = LBound(Table, 1) To UBound(Table, 1) permet bien de passer toutes les lignes (quand il y en a plusieurs).
Le traitement des colonnes se fait par le biais de ctrl.Title qui fait le lien entre le nom de la colonne et celui du titre du contrôle du contenu de texte enrichi.
Pour le modèle, j'ai dû oublier de faire une modif dans le doc Excel, il doit prendre le nom du modèle dans la colonne A par le biais de cette ligne de code :
Set templateDoc = wrdApp.Documents.Open(ThisWorkbook.Path & "\" & Table(i, 1) & ".docx")
J'ai fait de nouveaux essais. Le soucis venait bien de
Set Cell = ActiveSheet.Rows(1).Find(ctrl.Title)
If Not Cell Is Nothing Then ctrl.Range.Text = Cell.Offset(j)
Le j étant réinitialisé par le ActiveSheet.Rows(1) prend donc la valeur 2 puis 3... En fonction du nombre de lignes traitées.
J'ai trouvé une parade en déclarant une variable nombre correspondant à la première ligne à traiter en plus de la définition de ma table :
Dim lignedeb As Integer
lignedeb = 18 'PREMIERE LIGNE A TRAITER A DEFINIR pour un début de Table en A18 lignedeb = 18
Table = ws.Range("A18:BX19") 'A DEFINIR
A la suite de ça, la Table n'ayant pas d'en-têtes, je retire 1 à lignedeb pour ne pas avoir de décalage
lignedeb = lignedeb - 1 'on enlève 1 car Table n'a pas d'en-têtes
Enfin, avant de passer au Next j (donc après avoir traité le premier document) dans ma boucle j'ajoute 1 à lignedeb pour passer à la ligne suivante.
Un peu bricolage certainement mais ça fonctionne parfaitement !
Meric Optimix pour votre aide, bon dimanche !