Soucis avec BuildingBlockEntries

Le
Emile63
Bonjour à tous,

Je cherche a réadapter un ancien document sur Word 2007, qui fonctionn=
ait alors avec le pique-notes de l'époque (Autoentries)
Sur 2007, avec l'enregistreur ça donne ceci (voir ci-après), la s=
eule différence constatée étant que le remplacement de "Auto=
entries" par le "BuildingBlockEntries"
pour le reste ma procédure est identique:

ActiveDocument.AttachedTemplate.BuildingBlockEntries("_FR_STR").Insert =
Where:=Selection.Range, RichText:=True


Sauf que ça ne fonctionne pas, j'ai droit au message ci-après:

--
Erreur d’exécution '5941':
Le membre de l'action requise n'existe pas!
--

Est-ce que quelqu'un saurait me dire ce que j'oublie ?

Je vous remercie d'avance pour votre aide, en vous souhaitant une bonne jou=
rnée.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Geo
Le #26412828
Bonjour
A priori c'est une entrée qui manque.
Si vous pouviez être un peu plus précis : ce qui marche en 2007, ce qui
ne marche plus en 20xx.
Et comment vous avez basculé de l'un à l'autre.
A voir peut-être :
http://www.faqword.com/index.php/word/faq-word/environnement/618
Emile63
Le #26414129
Bonjour Geo,
Merci pour votre aide.
Oui vous avez raison, je vais tâcher d’être plus explicit e : :-)
J’ai placé un document « Modèle contrat.dotm» s ur le réseau auquel accèdent mes petits camarades et moi-mêm e.
Dans ce contrat il y a quelques entrées dans le pic-notes auxquelles j ’accède avec une macro, en fonction de certains choix (de Lang ue) qui entre autre contient le code suivant :
ActiveDocument.AttachedTemplate.BuildingBlockEntries(Entrée_du_pic_not e_Anglais).Insert Where:=Selection.Range, RichText:=True
Et donc si je lance ce document depuis mon poste de travail, ça foncti onne, mais s’il est lancé depuis un autre poste ça ne fon ctionne plus. Ceci est une différence avec l’ancienne version de Word puisque ce document fonctionnait tel quel avant.
Je pense (et pardon si je me trompe) que le document actif auquel l†™entrée du pic note, présente dans le modèle, se réf ère n’est pas /plus le modèle.dotm actif, mais doit cherc her quelque part dans normal dot de l’utilisateur…
Et donc je me demandais comment « forcer » à chercher cette entrée du pic note dans le document original : modèle.dotm (du r éseau)
Je brode donc autour de :
Templates.Name." R:ContratsModèle Contrat.dotm" .BuildingBlockEntrie s(Entrée_du_pic_note_Anglais).Insert Where:=Selection.Range, RichTex t:=True
Mais sans grand succès pour l’instant.
Par contre ça fonctionne avec une boucle :
For Each mytemplate In Templates
If mytemplate.Name = " Modèle contrat.dotm" Then _
mytemplate.BuildingBlockEntries(Entrée_du_pic_note_Angla is).Insert Where:=Selection.Range, RichText:=True
Next
Et donc il trouve bien le modèle et insert le pic note sur tous les po stes, mais j’aurais aimé comprendre le pourquoi du comment, et aussi ne faire qu’une ligne de code au lieu de 4
Je vous remercie d'avance pour votre aide, et vous souhaite une bonne journ ée.
Emile
Geo
Le #26414164
Bonjour Émile
Merci pour ces explications détaillées, surtout que vous avez une
solution qui fonctionne et qui permet d'éliminer pas mal d'autres
hypothèses.
Il doit y avoir une erreur dans la retranscription de
Templates.Name." R:ContratsModèle Contrat.dotm"

Je pense que ça doit être :
Templates("Modèle Contrat.dotm"). Du moment que le modèle est attaché,
ça devrait suffire
Le modèle est d'ailleurs connu sinon votre code de rechange ne
marcherait pas.
Par contre, j'ai essayé avec word 10.
Templates("Normal.dotm") fonctionne.
Mais impossible avec un autre nom, alors qu'ils sont bien présents dans
la collection Templates.
Ce qui est pour le moins curieux et ressemble bien à un bogue.
Dans mon cas Normal.dotm est le troisième, je ne vois donc pas
d'explication.
A la limite si c'était le premier ...
Votre code semble donc bien être la solution la plus simple, ce qui
devrait vous faire plaisir.
Bonne journée à vous aussi.
Publicité
Poster une réponse
Anonyme