Aide modification de signets word avec excel

Y compris Power BI, Power Query et toute autre question en lien avec Excel
a
alpharender
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 août 2019
Version d'Excel : 2016

Message par alpharender » 26 août 2019, 00:37

Bonjour a tous.

étant débutant dans le VBA , je viens solliciter votre aide.
je cherche a faire ce qui suit :

dans un doc word (model) j'ai 13 signets que je souhaite remplacer avec excel.
le texte de remplacement des signets se trouve sur la même ligne ( de B5 à N5 )

je souhaite qu'avec un bouton + macro, excel remplace les signets word et enregistre le nouveau fichier "Doc_modifié.docx" sans toucher le Doc Model.

j’espère que c'est claire pour une éventuelle aide de votre part.
Cordialement
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'726
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 26 août 2019, 04:45

Bonjour alpharender et bienvenue sur le forum,
:bv:
voici un exemple
Sub Test_rename_Bookmarks()
'nécessite la référence à Microsoft Word xx.x Object Library
Dim objWord As New Word.Application
Dim strPath As String, strFichier As String, col As Integer

' remplacement des signets se trouve sur la même ligne ( de B5 à N5 )
col = 2
strPath = "C:\Users\isabelle\Documents\Test1\" 'à adapter
strFichier = strPath & "signet test.docx"      'à adapter

' ouvrir un document Word
objWord.Documents.Open strFichier
objWord.Visible = True

For Each oBookmark In objWord.ActiveDocument.Bookmarks
    oBookmarkNewName = Cells(5, col)
    objWord.ActiveDocument.Bookmarks.Add Name:=oBookmarkNewName, Range:=oBookmark.Range
    oBookmark.Delete
    col = col + 1
Next oBookmark

objWord.ActiveDocument.SaveAs2 Filename:=strPath & "Doc_modifié.docx", FileFormat:=wdFormatDocument
objWord.ActiveDocument.Close
End Sub
Vive ces nouvelles saisons qui nous colorent.
isabelle
a
alpharender
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 août 2019
Version d'Excel : 2016

Message par alpharender » 26 août 2019, 16:59

Merci, je test ce soir,

ou est ce que tu déclare chaque une case pour chaque signet ?
<Merci>
Avatar du membre
i20100
Passionné d'Excel
Passionné d'Excel
Messages : 5'726
Appréciations reçues : 333
Inscrit le : 16 mars 2017
Version d'Excel : 2010

Message par i20100 » 27 août 2019, 18:58

alpharender a écrit :
26 août 2019, 16:59
Merci, je test ce soir,
est ce que le test est concluant ?
Vive ces nouvelles saisons qui nous colorent.
isabelle
a
alpharender
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 août 2019
Version d'Excel : 2016

Message par alpharender » 27 août 2019, 20:51

-
Modifié en dernier par alpharender le 27 août 2019, 20:53, modifié 1 fois.
a
alpharender
Nouveau venu
Nouveau venu
Messages : 4
Inscrit le : 26 août 2019
Version d'Excel : 2016

Message par alpharender » 27 août 2019, 20:53

Bonsoir,
Non, j'ai un message Nom de signet incorrect.
-
Mais j'ai adapté un code a ma problématique et ce dernier marche très bien.
je partage le code qui modifie les signets par le contenue d'une cellule et enregistre un nouveau DOC sans la modification du fichier model
Sub EcritVersSignet()
Dim LaLettre As String
Dim LeMontant
Dim LeTexte2
Dim ObjWord As Word.Application
Dim LeDocWord As Word.Document

On Error Resume Next

LaLettre = ThisWorkbook.Path & "\lettre.doc"
Set ObjWord = CreateObject("Word.Application")
ObjWord.Visible = True
Set LeDocWord = ObjWord.Documents.Open(LaLettre)
LeMontant = [A1]
LeTexte2 = [A2]
With LeDocWord
'Le nom du signet dans le document word est ici "Monsignet"
.Bookmarks("Monsignet").Range.Text = LeMontant
'Le nom du signet dans le document word est ici "Monsignet2"
.Bookmarks("Monsignet2").Range.Text = LeTexte2
End With

'Pour enregistrer le document et quitter Word
'LeDocWord.Save
'ObjWord.Quit

Set ObjWord = Nothing
End Sub

1000 merci a vous
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message