Microsoft 365 comment coller une plage dans un signet dans un fichier Word depuis excel

yesyes18

XLDnaute Nouveau
bonjour ,

ci dessous ma macro qui me permet de créer et d'ouvrir des fichier afin de les remplir :
VB:
'ouverture des doc contractuels

Sub ouvrirword()



Dim WordApp As Object
Dim WordDoc As Object

Set WordApp = CreateObject("word.Application")
 WordApp.Visible = True
  

fe_path = ActiveWorkbook.Path
MsgBox (fe_path)

car_path = InStr(1, fe_path, "PRODUITS\")
Source = Mid(fe_path, 1, car_path + Len("PRODUITS")) & "\collectif sur mesure\modeles_contractuels\"
'MsgBox (Mid(fe_path, 1, car_path + Len("PRODUITS")) & "\collectif sur mesure\modeles_contractuels\")


If Range("D358") = "Dispositions particulières" Then
Set WordDoc = WordApp.Documents.Open(Source & "Dispositions particulières - 20200204.docx")
 WordDoc.Bookmarks("num_contrat").Range.Text = Range("num_contrat")
 WordDoc.Bookmarks("raison_sociale").Range.Text = Range("raison_sociale")
 WordDoc.Bookmarks("nom_courtier").Range.Text = Range("nom_courtier")
 WordDoc.Bookmarks("adresse_courtier").Range.Text = Range("adresse_courtier")
 WordDoc.Bookmarks("raison_soc").Range.Text = Range("raison_sociale")
 WordDoc.Bookmarks("adresse_groupe_solo").Range.Text = Range("adresse_groupe") & " " & Range("cp") & " " & Range("commune")
 WordDoc.Bookmarks("num_siren_siret").Range.Text = Range("num_siren_siret_groupe_solo")
 WordDoc.Bookmarks("date_deffet").Range.Text = Range("date_deffet")
 If Range("representant") <> "" Then
 WordDoc.Bookmarks("representant").Range.Text = Range("representant")
 WordDoc.Bookmarks("qualite_representant").Range.Text = Range("qualite_representant")
 Else
 WordDoc.Bookmarks("pas_de_representant").Range.Text = Range("D3")
 
 End If
 
 If Range("college") = "Cadre" Then
 WordDoc.Bookmarks("college").Range.Text = Range("Dispositions_cadre")

 End If

 If Range("college") = "Non cadre" Then
 WordDoc.Bookmarks("college").Range.Text = Range("dispositions_non_cadre")
 End If
 
 If Range("college") = "ens. personnel" Then
 WordDoc.Bookmarks("college").Range.Text = Range("dispositions_ep")
 
 End If

If Range("str_base") <> "" Then
 
 
 Range("B2:C6").Select
 Selection.Copy
 WordApp.Selection.Goto what:=wdGoToBookmark, Name:=("cot_base")
 WordApp.Selection.PasteAndFormat (wdPasteDefault)
 'WordApp.Selection.ParagraphFormat.Alignement = wdAlignParagraphCenter
 Application.CutCopyMode = False
 
 
End If

End If

end sub


je rencontre un problème dans la ligne suivante :
WordApp.Selection.Goto what:=wdGoToBookmark, Name:=("cot_base")

j'ai un message d'erreur "le signet n'existe pas" sauf je l'ai bien créér sur word

auriez vous une autre méthode pour aller coller ma plage dans mon signet ?
ou bien me dire où elle est l'erreur dans mon code ?


merci d'avance
 

job75

XLDnaute Barbatruc
Bonjour yesyes18,

Sans fichier je n'essaie pas du tout de tester la macro.

Simplement il s'agit d'une macro Excel donc les constantes propres à Word ne peuvent pas être lues.

Donc remplacez wdGoToBookmark par sa valeur -1 et wdPasteDefault par 0.

A+
 
Haut Bas