Macro Excel agissant sur un fichier Word

Fermé
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016 - 26 nov. 2014 à 12:05
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016 - 27 nov. 2014 à 14:26
Bonjour,

Je recherche de l'aide afin de résoudre mon problème.
Je suis en train de créer une macro sous Excel qui va me permettre de lire certaines informations dans ce fichier afin d'ouvrir un document Word type (Convention Client, Avant Projet, Facture Finale, etc.) et de remplacer des données dans ces documents types avec les informations du document Excel.

Ainsi pour faire un test, j'en suis à remplacer une seule donnée dans un seul document. Voici le code que j'ai pour le moment :

Sub AC()
'
' AC Macro
'
Dim MonDocument As Object

MonDocument = CreateObject("Word.Application")

MonDocument.Documents.Open ("C:\Users\Mathieu\Desktop\Docs_automatisés.ACRO_AC_JJMMAA.docx")

With MonDocument.Selection.Find
.Text = "ACRO/AC/JJMMAA"
.Replacement.Text = Range("B11").Value
.Forward = True
.Wrap = wdFindContinue
End With
MonDocument.Selection.Find.Execute Replace:=wdReplaceAll
'
End Sub


Je veux donc remplacer dans le document Word "ACRO_AC_JJMMAA.docx" tout les "ACRO/AC/JJMMAA" par la valeur de la cellule B11 de mon document Excel.

Or quand j'exécute la macro, il m'affiche le message d'erreur :
"Erreur d'exécution '91' :
Variable objet ou variable de bloc with non définie
"

Avez-vous une idée de comment corriger ceci s'il vous plaît ?

Merci beaucoup pour votre aide et n'hésitez pas à me poser des questions si je n'ai pas été clair !

Cordialement,

Matheew
A voir également:

2 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
26 nov. 2014 à 19:44
Plutôt que le VBA, pourquoi n'utilises tu pas un simple publipostage word avec source Excel ?
0
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016
27 nov. 2014 à 14:21
Bonjour, et merci de votre réponse !

Le publipostage ne semble pas adapté à ma situation car en fait dans mon document Excel j'ai les informations relatives à une seule étude, et je veux remplir plusieurs documents Word différents avec ces mêmes données, et non remplir un même document Word en plusieurs fois avec les données de mon document Excel.

Cordialement,

Matheew
0
Matheew Messages postés 9 Date d'inscription mardi 11 novembre 2014 Statut Membre Dernière intervention 13 juin 2016
27 nov. 2014 à 14:26
Bonjour,

Après modification de mon code, voilà ce que j'obtient :

Sub AC()
'
' AC Macro
'

Dim ww As Object
Dim Remplacement As String

Set ww = CreateObject("Word.Application")
ww.Visible = True

Remplacement = Range("B11").Value

ww.Documents.Open ("C:\Users\Mathieu\Desktop\Docs_automatisés\ACRO_AC_JJMMAA.docx")

ww.Selection.Find.ClearFormatting
ww.Selection.Find.Replacement.ClearFormatting

With ww.Selection.Find
.Text = "ACRO/AC/JJMMAA"
.Replacement.Text = Remplacement
.Forward = True
.Wrap = wdFindContinue
End With
ww.Selection.Find.Execute Replace:=wdReplaceAll


'
End Sub



Après test, il me permet bien d'ouvrir mon document Word, il semble commencer la recherche car il sélectionne la première occurrence de "ACRO/AC/JJMMAA" mais en revanche il semble s'arrêter là, il ne modifie pas et ne continue pas à chercher.

Quelqu'un aurait-il une idée ?
Merci pour votre aide.

Cordialement,

Matheew
0