[Macro][VBA][Excel][Word] Dernier Document Word ouvert
Résolu
Izetula
-
Izetula -
Izetula -
Bonjour,
Je débute en VBA et j'ai un problème que je n'arrive pas à résoudre.
J'ai deux documents ouverts : un Excel et un Word (dont je ne connais pas les noms)
Je dois copier des cellules du fichier Excel ouvert (actif) dans des cellules des tableaux du fichier Word ouvert.
Voici la macro créée dans le fichier Excel :
Ca ne fonctionne pas, on me dit "objet requis".
Avez vous une solution ?
Merci d'avance,
Izetula
Je débute en VBA et j'ai un problème que je n'arrive pas à résoudre.
J'ai deux documents ouverts : un Excel et un Word (dont je ne connais pas les noms)
Je dois copier des cellules du fichier Excel ouvert (actif) dans des cellules des tableaux du fichier Word ouvert.
Voici la macro créée dans le fichier Excel :
Sub Copie_recap_cibles() ' ' Copie_recap_cibles Macro ' For i = 0 To 41 i_ligne_excel = (i * 3) + 5 i_tabl_word = i + 5 If ActiveWorkbook.Sheets(5).Cells(i_ligne_excel, 3) <> "" Then Application.Documents(Documents.Count).Tables(i_tabl_word).Rows.Add Application.Documents(Documents.Count).Tables(i_tabl_word).Columns(2).Cells(Cells.Count).Range.Text = ActiveWorkbook.Sheets(5).Cells(i_ligne_excel, 1) Application.Documents(Documents.Count).Tables(i_tabl_word).Columns(3).Cells(Cells.Count).Range.Text = ActiveWorkbook.Sheets(5).Cells(i_ligne_excel, 2) Application.Documents(Documents.Count).Tables(i_tabl_word).Columns(4).Cells(Cells.Count).Range.Text = ActiveWorkbook.Sheets(5).Cells(i_ligne_excel, 3) End If Next ' End Sub
Ca ne fonctionne pas, on me dit "objet requis".
Avez vous une solution ?
Merci d'avance,
Izetula
A voir également:
- Word macro vba
- Word 2013 - Télécharger - Traitement de texte
- Tableau word - Guide
- Word et excel gratuit - Guide
- Espace insécable word - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
1 réponse
Bonjour,
1) Application correspond à l'application Excel et non à celle de Word. Documents n'en est donc pas une propriété.
2) il faut référencer l'instance de l'application Word en cours d'exécution. Pour cela, le seul moyen est de connaître le nom du fichier Word chargé en mémoire. Si ce nom était par exemple , "C:\document1.docx", les instructions à passer seraient les suivantes :
Si tu ne connais pas le nom du fichier Word, il faut concevoir la solution autrement.
1) Application correspond à l'application Excel et non à celle de Word. Documents n'en est donc pas une propriété.
2) il faut référencer l'instance de l'application Word en cours d'exécution. Pour cela, le seul moyen est de connaître le nom du fichier Word chargé en mémoire. Si ce nom était par exemple , "C:\document1.docx", les instructions à passer seraient les suivantes :
Dim Wd As Word.Application
Set Wd = GetObject("C:\document1.docx").Application
If ActiveWorkbook.Sheets(5).Cells(i_ligne_excel, 3) <> "" Then
Wd.Documents(Documents.Count).Tables(i_tabl_word).Rows.Add
....
Si tu ne connais pas le nom du fichier Word, il faut concevoir la solution autrement.
Finalement j'ai écris ça, qui fonctionne :
Un des problèmes rencontrés et qu'Excel ne connaissait pas Word.Application. En fait j'ai du sélectionner une référence supplémentaire dans Outils -> Référence -> Microsoft Word 15.0.
Ce code fonctionne seulement si le fichier Word de destination est le dernier à avoir été ouvert. Mais je ne peux pas me servir du nom des fichiers (ils changent toutes les semaines).
En espérant pouvoir aider d'autres personnes !
Cordialement,
Izetula