J'ai adapté un code qui utilise les signets pour insérer les données provenant de mon formulaire Excel.
Mais seul, le premier signet est remplacé.
Lexécution du code sarrête sur la deuxième ligne, est déclenc he une erreur :
Erreur dexécution 5941 : Le membre de la collection requis nexiste pas.
http://cjoint.com/?BKgvoHmZ8Zu
MichD
Bonjour,
Cette procédure fonctionne, lire les 2 remarques dans le texte du code.
'---------------------------------------------------- Sub Acceuil() AcceuilFrm.Show 0 End Sub Sub EcrireDoc() Dim wrdApp As Object Dim wrdDoc As Object Dim sPath As String, sFic As String ' Initialisation des variables sPath = ThisWorkbook.Path sFic = "DéchargeTest (v002).doc" ' Création d'une instance Word Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(sPath & sFic) wrdApp.ShowMe ' pour afficher le document wrdApp.Visible = True
With wrdDoc .BookMarks("Agent").Range.Text = AcceuilFrm.TextBox5.Value .BookMarks("Date").Range.Text = AcceuilFrm.TextBox6.Value 'Attention, j'ai modifié le nom de ce signet pour qu'il corresponde 'au nom du signet existant. "Désignation par "Description" .BookMarks("Description").Range.Text = AcceuilFrm.TextBox2.Value 'Ce signet "Magasin" n'existe pas dans ton fichier texte. ' .BookMarks("Magasin").Range.Text = AcceuilFrm.TextBox3.Value .BookMarks("Quantité").Range.Text = AcceuilFrm.TextBox4.Value .BookMarks("Référence").Range.Text = AcceuilFrm.TextBox1.Value
'.Protect Type:=wdAllowOnlyFormFields, NoReset:=True End With End Sub '----------------------------------------------------
Cette procédure fonctionne, lire les 2 remarques dans le texte du code.
'----------------------------------------------------
Sub Acceuil()
AcceuilFrm.Show 0
End Sub
Sub EcrireDoc()
Dim wrdApp As Object
Dim wrdDoc As Object
Dim sPath As String, sFic As String
' Initialisation des variables
sPath = ThisWorkbook.Path
sFic = "DéchargeTest (v002).doc"
' Création d'une instance Word
Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(sPath & sFic)
wrdApp.ShowMe ' pour afficher le document
wrdApp.Visible = True
With wrdDoc
.BookMarks("Agent").Range.Text = AcceuilFrm.TextBox5.Value
.BookMarks("Date").Range.Text = AcceuilFrm.TextBox6.Value
'Attention, j'ai modifié le nom de ce signet pour qu'il corresponde
'au nom du signet existant. "Désignation par "Description"
.BookMarks("Description").Range.Text = AcceuilFrm.TextBox2.Value
'Ce signet "Magasin" n'existe pas dans ton fichier texte.
' .BookMarks("Magasin").Range.Text = AcceuilFrm.TextBox3.Value
.BookMarks("Quantité").Range.Text = AcceuilFrm.TextBox4.Value
.BookMarks("Référence").Range.Text = AcceuilFrm.TextBox1.Value
'.Protect Type:=wdAllowOnlyFormFields, NoReset:=True
End With
End Sub
'----------------------------------------------------
Cette procédure fonctionne, lire les 2 remarques dans le texte du code.
'---------------------------------------------------- Sub Acceuil() AcceuilFrm.Show 0 End Sub Sub EcrireDoc() Dim wrdApp As Object Dim wrdDoc As Object Dim sPath As String, sFic As String ' Initialisation des variables sPath = ThisWorkbook.Path sFic = "DéchargeTest (v002).doc" ' Création d'une instance Word Set wrdApp = CreateObject("Word.Application")
Set wrdDoc = wrdApp.Documents.Open(sPath & sFic) wrdApp.ShowMe ' pour afficher le document wrdApp.Visible = True
With wrdDoc .BookMarks("Agent").Range.Text = AcceuilFrm.TextBox5.Value .BookMarks("Date").Range.Text = AcceuilFrm.TextBox6.Value 'Attention, j'ai modifié le nom de ce signet pour qu'il corresponde 'au nom du signet existant. "Désignation par "Description" .BookMarks("Description").Range.Text = AcceuilFrm.TextBox2.Value 'Ce signet "Magasin" n'existe pas dans ton fichier texte. ' .BookMarks("Magasin").Range.Text = AcceuilFrm.TextBox3.Value .BookMarks("Quantité").Range.Text = AcceuilFrm.TextBox4.Value .BookMarks("Référence").Range.Text = AcceuilFrm.TextBox1.Value
'.Protect Type:=wdAllowOnlyFormFields, NoReset:=True End With End Sub '----------------------------------------------------