Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

VBA sous Word

8 réponses
Avatar
jj.court
Bonjour

Une question aux as du VBA.

Sous Word 2000, j'ai construit des macros que j'ai rangées dans des modèles
autres que normal.dot, pour que celui-ci ne soit pas trop obèse.

Pour utiliser ces macros, je charge ces modèles par le menu Outils, modèles
et compléments.

Quand je passe dans l'éditeur VB, ces modèles apparaissent dans
l'explorateur de projets, mais je ne peux pas les ouvrir (message : projet
verrouillé ; le projet ne peux pas être affiché), sauf si je les ouvre
d'abord dans Word.

Existe-t-il un moyen de déverrouiller ces projets, sans ouvrir les modèles
dans Word ? Ceci me serait utile pour modifier par programme certaines de
ces macros, ce que je n'arrive à faire que pour des macros contenues dans
normal.dot, qui lui n'est pas verrouillé.

Bonne année, et merci pour vos réponses.

8 réponses

Avatar
Geo

Existe-t-il un moyen de déverrouiller ces projets, sans ouvrir les modèles dans Word ?


Non
Il faut qu'un fichier soit ouvert pour pouvoir être modifié.

--
A+

Avatar
jj.court
Merci pour votre réponse (et un jour férié en plus!)

Donc, si je comprends bien, pour modifier un projet, il faut ouvrir le
modèle qui le contient comme on ouvre un document banal dans Word. Et pour
cette ouverture, j'ai le choix entre le menu Ouvrir, ou par macro en
utilisant la méthode VB open.

Ce qui m'échappe alors, c'est que je puisse modifier des macros dans
normal.dot, bien que celui ci n'apparaisse pas dans la liste des documents
ouverts.

Avez vous un lien qui traiterait de ces choses ?

"Geo" a écrit dans le message de news:


Existe-t-il un moyen de déverrouiller ces projets, sans ouvrir les
modèles dans Word ?


Non
Il faut qu'un fichier soit ouvert pour pouvoir être modifié.

--
A+





Avatar
Anacoluthe
Bonjour et bonne année !

'jj.court' nous a écrit ...
Avez vous un lien qui traiterait de ces choses ?


yapa besoin

Comme a dit Geo il faut /ouvrir/ un complément pour modifier un projet

Un complément 'chargé' n'est pas 'ouvert' . Il est facile de s'en
rendre compte en accédant au fichier du modèle par Word lui-même
ou dans une autre application.

Le projet d'un addin chargé est en réalité plus que 'verrouillé'
(le terme wordien est trompeur) : il n'est tout simplement pas modifiable.
Normal.dot lui est chargé ET ouvert.

Ceci assure de plus une certaine sécurité/stabilité aux addins
qui peuvent être largement partagés entre utilisateurs.

On s'y fait :-) Ce n'est finalement pas si compliqué de penser
à ouvrir un modèle global avant d'en modifier les macros ;-)
On ouvre bien les documents pour les modifier !

Anacoluthe
« Avant de se foutre par la fenêtre, faut penser à l'ouvrir. »
- SIM

Avatar
Geo

(et un jour férié en plus!)


C'est l'avantage des forums entre bénévoles.

[...] j'ai le choix entre le menu Ouvrir,
ou par macro en utilisant la méthode VB open.


Soit vos modifications sont occasionnelles, et Ouvrir n'est pas une
grosse contrainte
Soit elles sont ponctuelles, pensez à rapatrier la macro dans
Normal.dot pour la saison des modifications
Soit vos modifications sont fréquentes, il faudrait alors voir
pourquoi. Si, par exemple, vos modifiez des constantes, il est possible
de les mettre dans le Normal.dot et les utiliser dans un autre modèle.

Toute la documentation dont on dispose, c'est l'aide, après, c'est de
l'expérience acquise en commun, y compris les jours fériés ;-)

--
A+

Avatar
jj.court
En fait, ce que je fais est plus tordu que ça. J'ai créé un traceur de
courbes dans Word et pour éviter d'avoir à écrire un analyseur syntaxique
(ce que je sais pas faire), j'ai eu l'idée d'utiliser celui de VBA. Mais
pour cela, j'ai du écrire des macros qui elles mêmes modifient des macros.
Et ces macros modifiables sont pour le moment dans normal.dot, puisque c'est
le seul modèle qui n'est pas verrouillé, et dont je peux modifier les
macros.

J'ai obtenu ainsi une usine à gaz, qui fonctionne très bien, mais dont
l'organisation ne me satisfait pas.

Les indications que vous et Anacoluthe m'avez données et que je viens de
tester me permettent de modifier des macros ailleurs que dans le modèle
normal.

J'ai bon espoir de mettre un peu d'ordre dans tout ce fourbi et de
structurer proprement mon programme.

Merci encore à vous deux.

"Geo" a écrit dans le message de news:


(et un jour férié en plus!)


C'est l'avantage des forums entre bénévoles.

[...] j'ai le choix entre le menu Ouvrir, ou par macro en utilisant la
méthode VB open.


Soit vos modifications sont occasionnelles, et Ouvrir n'est pas une grosse
contrainte
Soit elles sont ponctuelles, pensez à rapatrier la macro dans Normal.dot
pour la saison des modifications
Soit vos modifications sont fréquentes, il faudrait alors voir pourquoi.
Si, par exemple, vos modifiez des constantes, il est possible de les
mettre dans le Normal.dot et les utiliser dans un autre modèle.

Toute la documentation dont on dispose, c'est l'aide, après, c'est de
l'expérience acquise en commun, y compris les jours fériés ;-)

--
A+





Avatar
Geo
Re

Mais pour cela, j'ai du écrire des
macros qui elles mêmes modifient des macros.


Attention à une chose, le fait de modifier beaucoup le code finit par
faire grossir les modèles, ce qui peut rendre Word instable.
Il y a une macro à passer de temps en temps pour leur faire faire une
cure d'amaigrissement :
http://Word.mvps.org/faqs/macrosvba/TemplateBloat.htm
tout en bas de la page.

--
A+

Avatar
jj.court
Ce n'est pas le premier de l'an , mais la Noël ! un programme utile ...

J'avais remarqué cette inflation des modèles quand j'écrivais mon programme.
A quoi cela est-il du ? Est-ce un défaut, ou cela a-t-il un intérêt ?

"Geo" a écrit dans le message de news:

Re

Mais pour cela, j'ai du écrire des macros qui elles mêmes modifient des
macros.


Attention à une chose, le fait de modifier beaucoup le code finit par
faire grossir les modèles, ce qui peut rendre Word instable.
Il y a une macro à passer de temps en temps pour leur faire faire une cure
d'amaigrissement :
http://Word.mvps.org/faqs/macrosvba/TemplateBloat.htm
tout en bas de la page.

--
A+





Avatar
Geo
Re

J'avais remarqué cette inflation des modèles quand j'écrivais mon programme. A quoi
cela est-il du ? Est-ce un défaut, ou cela a-t-il un intérêt ?


Sans doute un défaut.
En pratique on peut faire la même chose à la main, il suffit de créer
un nouveau modèle et y transférer les macros.
La taille diminue d'un coup puis ré-augmente progressivement.

C'est aussi pour cela que vous avez raison de mettre vos macros dans un
modèle annexe, mais en général on le fait pour des macros stabilisées.

--
A+