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

ici

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

Voilà deux fichiers test à mettre dans le même répertoire (j'y ai intégré les signets et les contrôle de contenu)

Tu peux t'en inspirer pour adapter.

29test.dotx (19.77 Ko)
33test.xlsm (25.22 Ko)

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

Rechercher des sujets similaires à "remplacer signets word donnees"