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

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

3 réponses

Meilleure réponse
Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Dernière intervention
5 avril 2007
24 oct. 2005 à 15:30
3
Merci
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à

Merci cs_jordinette 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 90 internautes ce mois-ci

Messages postés
134
Date d'inscription
mercredi 2 mars 2005
Dernière intervention
5 avril 2007
24 oct. 2005 à 10:59
0
Merci
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
Dernière intervention
5 avril 2007
24 oct. 2005 à 11:38
0
Merci
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.