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

cs_jordinette 134 Messages postés mercredi 2 mars 2005Date d'inscription 5 avril 2007 Dernière intervention - 24 oct. 2005 à 10:45 - Dernière réponse : cs_jordinette 134 Messages postés mercredi 2 mars 2005Date d'inscription 5 avril 2007 Dernière intervention
- 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
Afficher la suite 

3 réponses

cs_jordinette 134 Messages postés mercredi 2 mars 2005Date d'inscription 5 avril 2007 Dernière intervention - 24 oct. 2005 à 15:30
+3
Utile
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à
Cette réponse vous a-t-elle aidé ?  
cs_jordinette 134 Messages postés mercredi 2 mars 2005Date d'inscription 5 avril 2007 Dernière intervention - 24 oct. 2005 à 10:59
0
Utile
Bon j'ai trouvé pour la première partie

pour écrire dans un bookmark précis:

ActiveDocument.Bookmarks("texte1").Range.Select
Selection.Text = valeur
cs_jordinette 134 Messages postés mercredi 2 mars 2005Date d'inscription 5 avril 2007 Dernière intervention - 24 oct. 2005 à 11:38
0
Utile
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.