XL 2010 VBA - Erreur de compilation

  • Initiateur de la discussion Initiateur de la discussion toud
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

toud

XLDnaute Nouveau
Bonjour
je suis relativement novice avec VBA et mon besoin est de renseigner un fichier Word existant avec des signets en les remplacant par des cellules dans EXCEL.
Pour cela, voici le code que j'ai dans un module VBA mais la compilation ne passe pas.
JE dois avoir une option ou autres car le même code avec un autre fichier EXCEL que j'ai récupéré fonctionne !

Merci pour votre aide:
J'ai le message
Erreur de compilation
Type défini par l'utilisateur non défini.
Ceci sur la ligne : Dim WordApp As Word.Application

Sub Client_Word()

Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim i As Byte

Set WordApp = CreateObject("Word Application")
WordApp.Visible = True 'Word n'est pas masqué pendant l'opération

Set WordDoc = WordApp.Documents.Open("C:\Users\phili\OneDrive\CONTACTO\DOSSIERS PATIENTS\CS VIERGE.docx") 'ouvre le document Word

For i = 1 To 5
'les signets du document Word sont nommés Signet1 , Signet2 , Signet3, Signet4, Signet5
WordDoc.Bookmarks("Signet" & i).Range.Text = Cells(i, 1)
Next i

WordApp.Visible = True 'affiche le document Word
'WordDoc.PrintOut 'Pour imprimer le doc obtenu

'WordDoc.Close True 'ferme le document word en sauvegardant les données
'WordApp.Quit 'ferme la session Word

End Sub
 
Solution
@toud

Oui, mais relis les posts #8 et #9 : c'est plus simple avec New !

Donc tu peux supprimer cette ligne :

Set WordApp = CreateObject("Word.Application")

et ajouter New comme suit :

Dim WordApp As New Word.Application

➯ optimisation du code VBA et résultat identique,
grâce à l'info de Dranreb.

soan
Bonjour.
Ça ne peut pourtant pas être autre chose.
À moins bien sûr que, tout en étant cochée elle y est portée MANQUANT !
Alors il faut la dé-cocher et la re-cocher.
Vous pouvez aussi vérifier dans l'explorateur d'objet si la bibliothèque Word est connue du projet VBA de votre classeur et a bien une classe Application.
 
Dernière édition:
Bonjour toud, Dranreb,

Lis d'abord le post de Dranreb, puis celui-ci.

Quand le problème actuel sera résolu, il y aura un autre problème ici :

Set WordApp = CreateObject("Word Application")

Ça compile, mais ensuite, il y a :
«
Erreur d'exécution '429':
Un composant ActiveX ne peut pas créer d'objet
»

C'est parce qu'il manque un point ; il faut mettre :

Set WordApp = CreateObject("Word.Application")

soan
 
Avec CreateObject, c'est la méthode que j'utilise habituellement (et qui marche très bien) ;
je viens d'essayer ta méthode avec New ; ça marche très bien aussi et c'est plus simple !

Merci pour cette info super pratique ! 🙂 (et j'adopte ta méthode avec New !)

soan
 
Dernière édition:
@toud

Oui, mais relis les posts #8 et #9 : c'est plus simple avec New !

Donc tu peux supprimer cette ligne :

Set WordApp = CreateObject("Word.Application")

et ajouter New comme suit :

Dim WordApp As New Word.Application

➯ optimisation du code VBA et résultat identique,
grâce à l'info de Dranreb.

soan
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
407
Retour