Ecrire dans un bookmark (signet) de word en VBA !!! [Résolu]

Signaler
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007
-
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

3 réponses

Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007

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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 123 internautes nous ont dit merci ce mois-ci

Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007

Bon j'ai trouvé pour la première partie

pour écrire dans un bookmark précis:

ActiveDocument.Bookmarks("texte1").Range.Select
Selection.Text = valeur
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Statut
Membre
Dernière intervention
5 avril 2007

Alors je me suis embalée

ActiveDocument.Bookmarks("texte1").Range.Select
Selection.Text = valeur

Cela ne marche que dans une macro word, mais pas dans une macro d'excel qui fait appel à word.
Je vais voir si je pe d'excel ouvrir word et lancé une macro ki simplement me colle la valeur ds le bookmark...

jordinette