Macro Excel agissant sur un fichier Word
Matheew
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
Matheew Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Matheew Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
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
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:
- Macro Excel agissant sur un fichier Word
- Word et excel gratuit - Guide
- Fichier bin - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Word 2013 - Télécharger - Traitement de texte
- Comment réduire la taille d'un fichier - Guide
2 réponses
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
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
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