J'ai une application Excel qui collecte des informations via une interface basée sur un formulaire. Elle est utilisée pour ;
- Remplir des valeurs dans le classeur
- Une procédure permet d'ouvrir un document Word (essentiellement un modèle) et de nommer le fichier selon des règles, basées sur sur la base de certaines données d'entrée. (Bon jusqu'à présent)
-
L'idée est donc de transférer les informations collectées (à partir de l'application Excel qui pilote ce processus) à le même document Word ouvert et nommé. Plus précisément, j'ai l'intention de remplir un certain nombre de zones de texte ActiveX portant un nom unique avec le document.
*** C'est là que j'échoue lamentablement.
J'ai activé la "Bibliothèque d'objets Microsoft Word 16.0" sous les références dans l'environnement VBA de MSExcel.
Étant donné que je connais le nom/titre du contrôle de contenu (la boîte de texte ActiveX est un "contrôle de contenu", n'est-ce pas ?) Le code ci-dessous est un exemple simplifié, s'il fonctionne pour l'exemple, je devrais être en mesure de résoudre le problème du document plus large :
Sub trial()
Dim Word As Word.Application
Dim wdDoc As Word.Document
On error resume next
Set Word = New Word.Application
Set wdDoc = Word.Documents.Open("G:\CAPS Management Tool\Customer.docm")
Word.Application.Visible = True
Dim cc As Object
Set cc = ActiveDocument.SelectContentControlsByTitle(txt_PersonName) 'txt_PersonName is the control name
cc.Range.Text = "SUCCESS" 'Run-time error 438
'Object does not support property or method
Set cc = ActiveDocument.SelectContentControlsByTitle(txt_Address) 'txt_Address is the control name
cc.Range.Text = "SUCCESS" 'Run-time error 438
'Object does not support property or method
End Sub
Quelqu'un peut-il nous aider ? Il y a beaucoup de zones de texte dans le document Word auquel je souhaite me connecter.
Merci d'avance.