Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Erreur de compilation : Type défini par l'utilisateur non défini

desmonts

XLDnaute Occasionnel
Bonjour,

Je souhaite remplir via un fichier Excel des signets dans un document word.
J'ouvre mon fichier excel et je lance ma macro.

Elle ouvre mon fichier word, l'enregistre et rempli les signets que j'ai défini de 1 à 88, via les champs Excel (1 à 88). Mais cela ne fonctionne pas il me dit Erreur de compilation : Type défini par l'utilisateur non défini

Sub contrat()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte
Set WordApp = CreateObject("word.Application")
WordApp.Visible = True
WordApp.Documents.Open Filename:="c:\contratremplacemntauto.docx"
WordApp.ActiveDocument.SaveAs2 Filename:="C:\Users\" & Right(Application.DefaultFilePath, 7) & "\Desktop\essai.docx", FileFormat:= _
wdFormatXMLDocument, LockComments:=False, Password:="", AddToRecentFiles _
:=True, WritePassword:="", ReadOnlyRecommended:=False, EmbedTrueTypeFonts _
:=False, SaveNativePictureFormat:=False, SaveFormsData:=False, _
SaveAsAOCELetter:=False, CompatibilityMode:=15
WordApp.ActiveDocument.Close
WordApp.Visible = False
Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.Documents.Open("C:\Users\" & Right(Application.DefaultFilePath, 7) & "\Desktop\essai.docx")
For i = 1 To 88
Set monSignet = WordDoc.Bookmarks("Signet" & i).Range
monSignet.Text = Cells(i, 1)
WordDoc.Bookmarks.Add "Signet" & i, monSignet
Next i
WordApp.Visible = True

End Sub

Par avance merci de votre aide.
 

Staple1600

XLDnaute Barbatruc
Bonjour

Classique.
Il ne faut pas oublier d'activer les références de la Library Word dans VBE.

Pour le How To, voir sur le moteur de recherche de ton choix

(ou sur le forum XLD, avec le moteur e recherche interne
Mot-clés: Activer Référence Librairie Word VBE
 

Dranreb

XLDnaute Barbatruc
Bonjour.
Il manque probablement la référence à Microsoft Word 16.0 Object Library
Quand elle sera cochée vous n'aurez sans doute plus besoin d'un CreateObject, New Word.Application devrait suffire.

Édition suite à remarque de Staple 1600: Appliication corrigé.
 
Dernière édition:

Discussions similaires

Réponses
11
Affichages
2 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…