Ecrire dans un bookmark (signet) de word en VBA !!!

Résolu
cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 24 oct. 2005 à 10:45
cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007 - 24 oct. 2005 à 15:30
Bonjour,
J'ouvre un document word .doc a partir d'excel. Dans ce document il y a un signet nomé "texte1" dans lequel je souhaite mettre la valeur de ma variable "valeur", a fin de personnalisé le document.
Je n'arrive pas à écrire dans le signet (même en déverrouillant le document), parcontre il me sélectionne bien le bon bookmark,mais écrit dans la dernière cellule activé dans excel. Voici mon code en VBA:

Public Sub doc()

Dim Monword As Object
Dim Mondoc As Object
Dim valeur As String

Set Monword = CreateObject("Word.Application")

docu = Shell("C:\Program Files\Microsoft Office\Office\winword.exe", 3)
ActiveDocument.Close

'lancer word
Dialogs(wdDialogFileOpen).Show


'modif du champ text
valeur = nomClient & vbCrLf & numcarte

If ActiveDocument.Bookmarks.Exists("texte1") = True Then
ActiveDocument.Bookmarks("texte1").Range.Text = valeur

End If

ActiveDocument.Save
ActiveDocument.Close
Set Monword = Nothing

End Sub

Je souhaiterais également avant d'écrire ds le signet il déverroiulle le document (au cas où le document serais verrouillé) et après écriture dans mon signet "texte1", vérouillé le document.

Merci d'avance
Jordinette
A voir également:

3 réponses

cs_jordinette Messages postés 134 Date d'inscription mercredi 2 mars 2005 Statut Membre Dernière intervention 5 avril 2007
24 oct. 2005 à 15:30
Enfin j'ai trouvé la solution pour les deux cas.

valeur = nomClient & vbCrLf & numcarte

If ActiveDocument.ProtectionType <> wdNoProtection Then
ActiveDocument.Unprotect
End If


If ActiveDocument.Bookmarks.Exists("texte1") = True Then
ActiveDocument.Bookmarks("texte1").Range.Select
Monword.Selection.Text = valeur

ActiveDocument.Protect Type:=wdAllowOnlyFormFields

End If

voilà
3