Word erreur 5941 sur " Set bmrange"

arnoH Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -  
arnoH Messages postés 16 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je réalise actuellement un formulaire sur Word avec après fusion des variables dans un texte et je me suis donc penché sur le VBA

J'ai utilisé la base d'un userform que j'ai pu trouvé sur les internet, cependant je me retrouve régulièrement (toujours) avec l'erreur 5941

Je vous colle le code VBA qui pose problème ici

Sub cmdAddLetter_Click()
'Copy letter elements to letter template from userform
Dim bmks As Bookmarks
Dim bmRange As Range
'Pass the userform values to the document's bookmarks.
Set bmks = ActiveDocument.Bookmarks
Set bmRange = ActiveDocument.Bookmarks("bmDate").Range
bmRange.Text = Me.txtDate.Value
Set bmRange = ActiveDocument.Bookmarks("bmName").Range
bmRange.Text = Me.txtName.Value & " " _
& Me.ComboBox1.Value
Set bmRange = ActiveDocument.Bookmarks("bmAddress").Range
bmRange.Text = Me.txtAddress.Value
Set bmRange = ActiveDocument.Bookmarks("bmAddress2").Range
bmRange.Text = Me.txtCity.Value & ", " _
& Me.cboState.Value & " " _
& Me.txtZip.Value

Me.Hide
End Sub


La partie qui pose problème ce sont les "bm range" en effet dès que je lance le debug celui-ci me colle l'erreur 5941 " Le membre de la collection requis n'existe pas".
Je comprend donc que je n'ai pas spécifié "quelque chose", j'aimerais savoir ce qu'est ce " Quelque chose" et comment le déclarer.

A vot' bon coeur et merci par avance

A voir également:

2 réponses

arnoH Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
Au cas ou cela serait nécessaire je vous colle le code VBA complet du document :
A titre d'information : je ne sais pas déclarer des range, j'apprend sur le tas c'est donc peut-être de ça que survient le problème :)

Private Sub ComboBox1_Change()

End Sub

Private Sub txtDate_Change()

End Sub

Private Sub txtName_Exit(ByVal Cancel As MSForms.ReturnBoolean)
'Automatic fill-in for salutation control.
On Error Resume Next
Me.txtSalutation = "Dear " & Left(txtName, InStr(Me.txtName, " ") - 1) & ":"
On Error GoTo 0
End Sub

Private Sub txtZip_Change()

End Sub

Private Sub UserForm_Initialize()
'Populate cboState in ufAddressLetter.
Me.cboState.List = Split("AL AK Monsieur AR Madame CO CT DE DC FL GA" _
& "HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH" _
& "NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA" _
& "WV WI WY")
Me.ComboBox1.List = Split("Monsieur Madame")

'Populate txtDate in ufAddressLetter. You can overwrite this value.
Me.txtDate.Value = Format(Now, "dd mmmm , yyyy")
End Sub


Sub cmdAddLetter_Click()
'Copy letter elements to letter template from userform
Dim bmks As Bookmarks
Dim bmRange As Range
'Pass the userform values to the document's bookmarks.
Set bmks = ActiveDocument.Bookmarks
Set bmRange = ActiveDocument.Bookmarks("bmTxtDate").Range
bmRange.Text = Me.txtDate.Value
Set bmRange = ActiveDocument.Bookmarks("bmName").Range
bmRange.Text = Me.txtName.Value & " " _
& Me.ComboBox1.Value
Set bmRange = ActiveDocument.Bookmarks("bmAddress").Range
bmRange.Text = Me.txtAddress.Value
Set bmRange = ActiveDocument.Bookmarks("bmAddress2").Range
bmRange.Text = Me.txtCity.Value & ", " _
& Me.cboState.Value & " " _
& Me.txtZip.Value

Me.Hide
End Sub




0
arnoH Messages postés 16 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai finalement trouvé... il m'a suffit de comprendre que les bookmarks étaient des signets et que oui..je ne les avaient pas mis encore. Voilà merci beaucoup !
0