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

Confirmation d'enregistrement d'un modèle

9 réponses
Avatar
Jac
Bonjour à tous,

je crée un .doc en ouvrant un .dot qui contient une macro "Private Sub
Document_New()". Quand je ferme le document généré, Word me demande
"Voulez-vous enregistrer les modifications apportées à "Mon modèle.dot".
Comment puis-je faire pour éviter cette question à laquelle je réponds "non"
dans tous les cas puisque je ne fais aucune modif dans le .dot original ?

Merci d'avance.

Jac

9 réponses

Avatar
Anacoluthe
Bonjour !

'Jac' nous a écrit ...
je crée un .doc en ouvrant un .dot qui contient une macro "Private Sub
Document_New()". Quand je ferme le document généré, Word me demande
"Voulez-vous enregistrer les modifications apportées à "Mon modèle.dot".
Comment puis-je faire pour éviter cette question à laquelle je réponds "non"
dans tous les cas puisque je ne fais aucune modif dans le .dot original ?


Ce message traduit cependant une modification du modèle et le mieux serait
d'en chercher l'origine précise pour l'éliminer...

Si ce n'est pas possible (??) et si la modification est présente dès la
création du document, on pourrait mettre la propriété Saved du modèle
à True en fin de Document_New. Si la modification du modèle est ultérieure
à la création, il faudra une autre macro automatique en fermeture des
documents.

Note: un modèle créé dans une autre version demande à être ré-enregistré.
Il suffirait dans ce cas d'accepter une fois pour toute la modification.

Anacoluthe
« Si nous ne pouvons rien sur les événements, nous pouvons les modifier
par les manières dont nous les acceptons. »
- Alfred CAPUS

Avatar
Jac
Merci Anacoluthe,

mais ta solution est un problème pour moi : je ne sais pas comment faire
référence au .dot pour le déclarer .saved = True car dès que la macro est
lancée, l'ActiveDocument est le nouveau .doc et comme la macro Document_Open
n'est pas sollicitée, je ne peux rien récupérer de ce côté...

Bien sûr, j'aimerais récupérer la référence au .dot par calcul afin que si
le nom du modèle change, il ne soit pas nécessaire de repasser dans le vba.

Jac


"Anacoluthe" a écrit dans le message de news:
eACba%
Bonjour !

'Jac' nous a écrit ...
je crée un .doc en ouvrant un .dot qui contient une macro "Private Sub
Document_New()". Quand je ferme le document généré, Word me demande
"Voulez-vous enregistrer les modifications apportées à "Mon modèle.dot".
Comment puis-je faire pour éviter cette question à laquelle je réponds
"non" dans tous les cas puisque je ne fais aucune modif dans le .dot
original ?


Ce message traduit cependant une modification du modèle et le mieux serait
d'en chercher l'origine précise pour l'éliminer...

Si ce n'est pas possible (??) et si la modification est présente dès la
création du document, on pourrait mettre la propriété Saved du modèle
à True en fin de Document_New. Si la modification du modèle est ultérieure
à la création, il faudra une autre macro automatique en fermeture des
documents.

Note: un modèle créé dans une autre version demande à être ré-enregistré.
Il suffirait dans ce cas d'accepter une fois pour toute la modification.

Anacoluthe
« Si nous ne pouvons rien sur les événements, nous pouvons les modifier
par les manières dont nous les acceptons. »
- Alfred CAPUS





Avatar
Geo

Merci Anacoluthe,

mais ta solution est un problème pour moi : je ne sais pas comment faire référence au
.dot pour le déclarer .saved = True car dès que la macro est lancée, l'ActiveDocument
est le nouveau .doc et comme la macro Document_Open n'est pas sollicitée, je ne peux
rien récupérer de ce côté...


La première question est bien : modifiez-vous le modèle dans vos
macros?
Par exemple en ajoutant ou modifiant des styles, des barres d'outils
etc ?
Si non : le modèle date-t-il d'une version antérieure ? Oui ? Ouvrez-le
(ouvrir et non nouveau) et enregistrez-le.

Quand ceci sera épuisé, il faudra penser à modifier les macros.

--
A+

Avatar
Anacoluthe
Bonjour !

'Jac' nous a écrit ...
mais ta solution est un problème pour moi : je ne sais pas comment faire
référence au .dot pour le déclarer .saved = True car dès que la macro est
lancée, l'ActiveDocument est le nouveau .doc et comme la macro Document_Open
n'est pas sollicitée, je ne peux rien récupérer de ce côté...


ActiveDocument.AttachedTemplate.Saved = True

Anacoluthe
« On est plus ou moins maître de son modèle. »
- Paul CÉZANNE

Avatar
Jac
Bonjour Geo,

la macro ne modifie pas le modèle.
Je réattache une base de données, je mets à jour les champs puis je les
remplace par leurs valeurs et enfin je dis que le doc n'est plus un fichier
de fusion.
C'est tout. Je ne touche à rien d'autre.
Le modèle a été créé das XP et il est utilisé dans XP. Et il a été
enregistré de nombreuses fois...

Jac

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


Merci Anacoluthe,

mais ta solution est un problème pour moi : je ne sais pas comment faire
référence au .dot pour le déclarer .saved = True car dès que la macro est
lancée, l'ActiveDocument est le nouveau .doc et comme la macro
Document_Open n'est pas sollicitée, je ne peux rien récupérer de ce
côté...


La première question est bien : modifiez-vous le modèle dans vos macros?
Par exemple en ajoutant ou modifiant des styles, des barres d'outils etc ?
Si non : le modèle date-t-il d'une version antérieure ? Oui ? Ouvrez-le
(ouvrir et non nouveau) et enregistrez-le.

Quand ceci sera épuisé, il faudra penser à modifier les macros.

--
A+





Avatar
Jac
Merci Anacoluthe,

ta petite phrase magique résoud mon problème.

Jac

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

Bonjour !

'Jac' nous a écrit ...
mais ta solution est un problème pour moi : je ne sais pas comment faire
référence au .dot pour le déclarer .saved = True car dès que la macro est
lancée, l'ActiveDocument est le nouveau .doc et comme la macro
Document_Open n'est pas sollicitée, je ne peux rien récupérer de ce
côté...


ActiveDocument.AttachedTemplate.Saved = True

Anacoluthe
« On est plus ou moins maître de son modèle. »
- Paul CÉZANNE



Avatar
Anacoluthe
Bonjour !

'Jac' nous a écrit ...
ta petite phrase magique résoud mon problème.


Merci et tant mieux :-)

Néanmoins j'abonde dans le sens de Geo sur le fond.
D'après votre réponse à Geo, j'imagine que vous reconnectez une base
de données au modèle chaque fois. Il est probable qu'en codant cette
opération dans le nouveau document vous auriez une autre solution.

Anacoluthe
« On est plus ou moins maître de son modèle. »
- Paul CÉZANNE

Avatar
Jac
Sans doute, mais quand j'ouvre le dot, la Sub Document_Open() n'est pas
sollicitée, le .dot ne semble pas s'ouvrir et la Sub Document_New()
s'applique à un nouveau .doc créé sur la base du .dot original, bien sûr.
Donc je n'ai pas vraiment l'impression que le .dot est modifié par la
reconnexion de la base puisqu'à part le fait de retrouver le .dot dans le
vba, je ne le vois nulle part et je ne fais rien avec... Je me trompe ?


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

Bonjour !

'Jac' nous a écrit ...
ta petite phrase magique résoud mon problème.


Merci et tant mieux :-)

Néanmoins j'abonde dans le sens de Geo sur le fond.
D'après votre réponse à Geo, j'imagine que vous reconnectez une base
de données au modèle chaque fois. Il est probable qu'en codant cette
opération dans le nouveau document vous auriez une autre solution.

Anacoluthe
« On est plus ou moins maître de son modèle. »
- Paul CÉZANNE



Avatar
Anacoluthe
Bonjour !

'Jac' nous a écrit ...
Sans doute, mais quand j'ouvre le dot, la Sub Document_Open() n'est pas
sollicitée, le .dot ne semble pas s'ouvrir et la Sub Document_New()
s'applique à un nouveau .doc créé sur la base du .dot original, bien sûr.
Donc je n'ai pas vraiment l'impression que le .dot est modifié par la
reconnexion de la base puisqu'à part le fait de retrouver le .dot dans le
vba, je ne le vois nulle part et je ne fais rien avec... Je me trompe ?


Probablement ;-)
Quand vous connectez des données à un document (modèle ou pas)
ce document conserve la liaison. En fait il faudrait voir le code
des macros automatiques du modèle pour vous dire où c'est.

Anacoluthe
« On est plus ou moins maître de son modèle. »
- Paul CÉZANNE