Remplacer des signets Word par des données Excel
Bonjour,
Je suis novice sur VBA et je souhaite trouver une écriture permettant de remplacer les signets d'un document word par n'importe quelle information de mon fichier excel, tout en sachant qu'il fait plusieurs pages. Ma question est la suivante, comment aller chercher une donnée dans une page précise? Tout en sachant qu'il pourra s'agir d'un graphique.
Sub ouvrir()
Dim EmpDoc
'récupère l'emplacement et le nom de fichier dans la variable EmpDoc
EmpDoc = Sheets("Parametreseditions").Range("B1").Value & "\" & Sheets("Parametreseditions").Range("B2")
MsgBox (EmpDoc)
'ouvre le document word
Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
wordapp.Documents.Open EmpDoc
' libérer la mémoire
Set objWord = Nothing
End Sub
Voici la manière dont je souhaite ouvrir le document word, cette formule fonctionne. Mais je n'arrive pas à l'adapter pour remplacer mes signets par une donnée d'une page précise.
Merci d'avance pour votre aide
Hello, tu trouveras probablement des réponses.
Essaye de regarder et si ça bloque, partage nous les fichiers ici et dis nous ce qui coince
Merci pour ton intervention,
J'aimerai simplement comprendre la deuxième ligne "Set Worddoc..". Si vous pouviez m'éclairer ce serait super.
Ce que je souhaite en résumé est d'associer cette formule :
Sub ouvrir()
Dim EmpDoc
'récupère l'emplacement et le nom de fichier dans la variable EmpDoc
EmpDoc = Sheets("Parametreseditions").Range("B1").Value & "\" & Sheets("Parametreseditions").Range("B2")
MsgBox (EmpDoc)
'ouvre le document word
Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
wordapp.Documents.Open EmpDoc
' libérer la mémoire
Set objWord = Nothing
End Sub
Avec celle-ci :
Sub Test()
Dim AppWord As Object
Dim Doc As Object
'crée une instance de Word
Set AppWord = CreateObject("Word.Application")
With AppWord
.Visible = True
'ouvre un document
Set Doc = .Documents.Open("D:/MacroV2/Fiche_Test.docx")
With Doc
'...remplacer les signets par les textes des cellules A1 et B1
.Bookmarks("Monsignet1").Range.Text = Range("A1")
.Bookmarks("Monsignet2").Range.Text = Range("B1")
End With
End With
End Sub
Je souhaite ouvrir mon doc word grâce à la première formule car tout se fait depuis excel comme ça et pas besoin de changer le code si l'on souhaite ouvrir un autre doc, il suffit de remplacer sur excel le fichier que l'on souhaite ouvrir dans la cellule concernée. Mais je n'arrive pas à trouver un alliage avec le fait que je souhaite dans le même temps remplacer des signets de ce même fichier par du contenu qui se trouve sur mon doc excel (qui contient bcp de pages).
Exemple :
J'ai une feuille qui se nomme "parametres editions", en cellule B1 j'ai le chemin menant à mon fichier, en cellule B2 j'ai le nom du fichier. Grâce à la première formule, la macro cherche mon doc word depuis cette page "parametres editions". Si je souaite ouvrir un autre doc, il me suffit de modifier le chemin en B1 et le nom du doc en B2.
Le problème est que ces deux formules ci-dessus marchent de manière séparée mais je n'arrive pas à créer une macro alliant mes deux problématiques, avec cette ouverture un peu spéciale et réussir à remplacer les signets de mon doc word par des données du fichier excel
Je ne sais pas si je suis clair, je suis désolé je ne peux pas partager le document de travail, il est confidentiel...
Merci d'avance pour votre aide
Hello, je ne peux pas tester mais normalement comme celà ça devrait fonctionner.
Sub ouvrir()
Dim EmpDoc
'récupère l'emplacement et le nom de fichier dans la variable EmpDoc
EmpDoc = Sheets("Parametreseditions").Range("B1").Value & "\" & Sheets("Parametreseditions").Range("B2")
MsgBox (EmpDoc)
'ouvre le document word
Set wordapp = CreateObject("word.Application")
wordapp.Visible = True
wordapp.Documents.Open EmpDoc
ActiveDocument.Bookmarks("Monsignet1").Range.Text = Range("A1")
ActiveDocument.Bookmarks("Monsignet2").Range.Text = Range("B1")
' libérer la mémoire
Set objWord = Nothing
End Sub
Salut,
Merci pour ton aide, ça fait plaisir. Malheureusement, le doc s'ouvre mais ça ne remplace pas les signets, j'ai un message d'erreur me disant : "Erreur d’exécution '424' Objet requis"
La première ligne "Active.document" est soulignée en jaune
Je n'y arrive tjrs pas..
La formule que tu as mis au dessus me semble plus adaptée car le doc word s'ouvre à partir des cellules choisies. Il faudrait peut-être un mixe entre celle-ci et celle que tu viens de m'envoyer?
C'est bon! J'ai adapté tes deux formules ce qui me fait arriver à celle-ci :
Sub ouvrir()
Dim EmpDoc
'récupère l'emplacement et le nom de fichier dans la variable EmpDoc
EmpDoc = Sheets("Parametreseditions").Range("B1").Value & "\" & Sheets("Parametreseditions").Range("B2")
MsgBox (EmpDoc)
'ouvre le document word
Set WordApp = CreateObject("word.Application")
WordApp.Visible = True
Set WordDoc = WordApp.Documents.Open(EmpDoc)
WordDoc.Bookmarks("Signet01").Range.Text = Range("B3")
WordDoc.Bookmarks("Signet02").Range.Text = Range("B4")
' libérer la mémoire
Set objWord = Nothing
End Sub
Merci beaucoup pour ton aide, je te tiens au courant si j'ai des soucis sur mon chemin,
Bonne journée
Oui oui, il fallait bien sûr adapter mon fichier, c'était jute pour te donner le code
Tant mieux si tu y es parvenu c'était le but.
Bonne continuation