Modifier un signet Word depuis une macro Excel

Résolu
cs_Stefun Messages postés 9 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 9 novembre 2010 - 12 oct. 2010 à 12:20
cs_Stefun Messages postés 9 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 9 novembre 2010 - 13 oct. 2010 à 09:02
Bonjour, j'essaye en vain de modifier un signet Word depuis une macro sous Excel mais je n'y arrive pas.

Voici mes 2 essais :

ActiveDocument.Bookmarks("DATE").Range.Text = "12/10/2010"

ActiveDocument.Selection.Goto What:=wdGoToBookmark, Name:="DATE"
ActiveDocument.Selection.TypeText ("12/10/2010")



Ces lignes génèrent l'erreur "La classe ne gère pas Automation ou l'interface attendue.

5 réponses

cs_Stefun Messages postés 9 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 9 novembre 2010
13 oct. 2010 à 09:02
Merci de la réponse mais j'ai finalement trouvé :)

En fait si ma déclaration était plus haut ;)

J'ai écris ceci pour faire ce que je voulais :

appword.Documents(nom_fichier).CustomDocumentProperties(nom_signet).Value = ma_nouvelle valeur
appword.Documents(fichier_modele).Fields.Update

:)
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
12 oct. 2010 à 12:56
Salut

As-tu référencé Word dans ton projet Excel ?
Sans cette référence, les constantes comme wdGoToBookmark poseront un problème.

Comment as-tu déclaré et ouvert ton document Word ?

Si tu es sous Excel et que tu manipules un document Word, la notion de ActiveDocument n'a plus de sens. Il faut que tu te réfères à l'objet Document ouvert.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
cs_Stefun Messages postés 9 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 9 novembre 2010
12 oct. 2010 à 13:13
Alors,

oui dans mon classeur Excel, j'ai bien la références "Microsoft Word 11.0 Object Library"

Si word est lancé et le fichier déjà ouver je passe par :
Set appword= GetObject(, "Word.Application")

sinon je passe par :
Set appword = CreateObject("Word.Application")
appword.Documents.Open filename:=nom_fichier


pour modifier mon signet DATE dans Word, cette ligne ne fonctionne pas :
appword.Bookmarks("DATE").Range.Text = "12/10/2010"

une idée ?
0
cs_Stefun Messages postés 9 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 9 novembre 2010
12 oct. 2010 à 14:45
J'avance un peu.

J'arrive à accéder à mon fichier Word mais la valeur que je veux rempalcer dans mon signet se met au début de mon fichier word comme si la sélection ne se faisait pas sur le signet indiqué :

appword.Documents(mon_fichier).Activate
appword.Options.ReplaceSelection = True
appword.Selection.Goto What:=wdGoToField, Name:=("date_dn")
appword.Selection.TypeText ("12 / 10 / 2010")

comme si la ligne en gras ne s'exécutait pas....
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 78
12 oct. 2010 à 20:31
Parce que tu n'as pas déclarer d'objet Document ... d'ailleurs, je ne vois pas non plus de déclaration pour appWord :
Dim appWord As Word.Application
Dim monDocument As Word.Document
Set appword = CreateObject("Word.Application")
Set monDocument = appword.Documents.Open filename:=nom_fichier

Ensuite, au lieu de faire
ActiveDocument.tralala
tu utilises
monDocument.tralala
0
Rejoignez-nous