OVH Cloud OVH Cloud

Interdire les Auto* manuels

17 réponses
Avatar
natric
[Posted to microsoft.public.fr.word and copy sent to the cited author]

Salut,

Est-il possible de faire que les subs AutoOpen,AutoNew et AutoClose
n'apparaissent pas dans la liste accessible via Outils/Macro/Macros ou,
tout au moins, ne soient pas exécutables manuellement par l'utilisateur
?

Etant entendu que si je les mets en Function ou Private, elles ne
fonctionnent plus en auto non plus.

10 réponses

1 2
Avatar
Anacoluthe
Bonjour !

'natric' nous a écrit ...
Est-il possible de faire que les subs AutoOpen,AutoNew et AutoClose
n'apparaissent pas dans la liste accessible via Outils/Macro/Macros ou,
tout au moins, ne soient pas exécutables manuellement par l'utilisateur
Etant entendu que si je les mets en Function ou Private, elles ne
fonctionnent plus en auto non plus.


Evitez de cross-poster en français sur un NG en anglais
vous importunez ceux qui ne parlent pas notre langue.

Il est important que tout utilisateur puisse rester maître
de ce qu'il exécute ou qu'il n'exécute pas. Si vous ne voulez
pas qu'une macro automatique soit exécutée une deuxième fois
manuellement, utilisez tout simplement dedans un 'drapeau'(flag):
si le drapeau (variable booléenne) n'est pas levé la macro
s'exécute et se termine en levant le drapeau. Classique.

Anacoluthe
« Faut-il que le libéralisme aille jusqu'à interdire
d'interdire qu'on interdise ? »
- Pierre DEHAYE

Avatar
natric
[Posted to microsoft.public.fr.word and copy sent to the cited author]

In article ,
says...
Bonjour !

'natric' nous a écrit ...
Est-il possible de faire que les subs AutoOpen,AutoNew et AutoClose
n'apparaissent pas dans la liste accessible via Outils/Macro/Macros ou,
tout au moins, ne soient pas exécutables manuellement par l'utilisateur
Etant entendu que si je les mets en Function ou Private, elles ne
fonctionnent plus en auto non plus.


Evitez de cross-poster en français sur un NG en anglais
vous importunez ceux qui ne parlent pas notre langue.



Sorry pour le crosspost, j'étais pressé et ai manipé trop vite, voilà
tout.

Il est important que tout utilisateur puisse rester maître
de ce qu'il exécute ou qu'il n'exécute pas.


Sauf si les modèles en question sont partie intégrante d'un produit
logiciel complet ; c.a.d. que l'on prend tel quel ou que l'on ne prend
pas du tout. Modèle ne signifie pas modèle maison, mais peut être
considéré comme le container de code exécutable au même titre qu'une
structure de fichier au format PE ; sur le plan de la philosophie de
l'intention, pas sur le plan strictement technique hein, nous sommes
d'accord.

Si vous ne voulez
pas qu'une macro automatique soit exécutée une deuxième fois
manuellement, utilisez tout simplement dedans un 'drapeau'(flag):
si le drapeau (variable booléenne) n'est pas levé la macro
s'exécute et se termine en levant le drapeau. Classique.



Eviter la réentrance, oui bien sûr. Classique, mais inadapté à ma
question qui est comment les faire disparaitre de la liste des macros en
interface.

Anacoluthe
« Faut-il que le libéralisme aille jusqu'à interdire
d'interdire qu'on interdise ? »
- Pierre DEHAYE



Faut-il tolérer l'intolérance ?


Avatar
Anacoluthe
Bonjour !

'natric' nous a écrit ...
Eviter la réentrance, oui bien sûr. Classique, mais inadapté à ma
question qui est comment les faire disparaitre de la liste des macros en
interface.


Tant qu'à tout interdire, ben allez-y franchement :
yaka supprimer le menu des macros et n'en parlons plus :-p

Anacoluthe
« Faut-il que le libéralisme aille jusqu'à interdire
d'interdire qu'on interdise ? »
- Pierre DEHAYE

Avatar
Geo
Bonjour natric



Eviter la réentrance, oui bien sûr. Classique, mais inadapté à ma
question qui est comment les faire disparaitre de la liste des macros
en interface.


Ce ne me parait pas une question de réentrance, mais peu importe car à
première vue on n'a pas de solution globale aux deux questions posées.
On pourrait imaginer que le code s'auto supprime, c'est théoriquement
faisable (tiens ça ferait plaisir à JièL) , mais le coup d'après il n'y a
plus rien à moins de récupérer le modèle original au moment de l'arrêt de
Word, mais ça suppose un autoExit donc on tourne en rond.
Ou alors ne pas enregistrer les modifications du modèle, là aussi possible
mais avec un auto exit.
Il me semble qu'en Excel on peut cacher les macros, mais je ne me souviens
plus comment et encore moins si c'est transposable en Word.

--

A+

Avatar
Geo
Bonjour Anacoluthe


Tant qu'à tout interdire, ben allez-y franchement :
yaka supprimer le menu des macros et n'en parlons plus :-p


Et tu le supprimes dans l'AutoExec
Pas mal le coup !

Mais faudrait un AutoExec dans un modèle complémentaire pour pas toucher au
Normal.dot.
Je sais pas si ça marche.

Avatar
Anacoluthe
Bonjour !

'Geo' nous a écrit ...
Et tu le supprimes dans l'AutoExec
Pas mal le coup !


Même pas Geo !!! :-)
Dans ton modèle avec tes macros et tout et tout
tu personnalises le menu en virant ce que tu veux interdire
(dans personnaliser/commande : choisir ton modèle)
Quand ton utilisateur utilisera ton modèle et seulement
celui-là, il lui manquera le menu défendu. Voilà tout.

[HS] L'air marin non, juste l'air marrant ...

Anacoluthe
« Faut-il que le libéralisme aille jusqu'à interdire
d'interdire qu'on interdise ? »
- Pierre DEHAYE

Avatar
natric
[Posted to microsoft.public.fr.word and copy sent to the cited author]

In article <#,
says...
Tant qu'à tout interdire, ben allez-y franchement :
yaka supprimer le menu des macros et n'en parlons plus :-p




Bonne idée mais je souhaite que les subs exposées (qui donc constitue
l'interface utilisateur) le reste, même si elles sont par ailleurs
pointées en barre d'outils et menu spécifiques.

La question n'est donc pas simple et c'est bien pour ça que je viens la
poser ici ;-)

Avatar
natric
[Posted to microsoft.public.fr.word and copy sent to the cited author]

In article , says...
Ce ne me parait pas une question de réentrance, mais peu importe car à
première vue on n'a pas de solution globale aux deux questions posées.


Au sens strict, oui, tu as raison dans la mesure où les exécutions ne se
feraient pas simultanément, mais il ne faut pas toujours tout prendre au
pied de la lettre. L'essentiel est de se comprendre, sinon on va vers
les théories à la Descartes selon lesquelles chaque mot de chaque phrase
devra être explicité par des définitions elles-même composées de mots à
expliciter et ainsi de suite jusqu'à débordement de pile (par
récursivité bien sûr).

On pourrait imaginer que le code s'auto supprime, c'est théoriquement
faisable (tiens ça ferait plaisir à JièL) , mais le coup d'après il n'y a
plus rien à moins de récupérer le modèle original au moment de l'arrêt de
Word, mais ça suppose un autoExit donc on tourne en rond.


Humm, oui je vois, assez malin oui... Mais ça ne va pas dans mon cas
dans la mesure où je souhaite pouvoir réutiliser ces Auto* en auto et
juste les interdire en appels manuels.

Ou alors ne pas enregistrer les modifications du modèle, là aussi possible
mais avec un auto exit.


Ou un AutoClose contenant un Saved=True, mais de toute façon cf ci-avant
ça ne va pas.

Il me semble qu'en Excel on peut cacher les macros, mais je ne me souviens
plus comment et encore moins si c'est transposable en Word.




Oui, c'était, en quelque sorte, l'idée de Anacoluthe, mais je souhaite
cacher les Auto* en laissant accessible manuellement les sub exposées.

Ah, quelle prise de tête !

Avatar
Geo
Bonjour natric


Bonne idée mais je souhaite que les subs exposées (qui donc constitue
l'interface utilisateur) le reste, même si elles sont par ailleurs
pointées en barre d'outils et menu spécifiques.


Je suis pas sûr d'avoir tout compris.
Les macros peuvent être lancées par des menus ou des boutons même si le
menu Outil Macros a été effacé.
Tu veux que les macros puissent être lancées par les commandes de macros
sans passer par des menus ?
Faudrait aussi penser que si tu as affaire à des utilisateurs un petit peu
avertis, rien ne les empêchera de passer dans visual basic éditeur.
Reste à voir si on peut y masquer complètement les macros.

--

A+

Avatar
Anacoluthe
Bonjour !

'natric' nous a écrit ...
Ah, quelle prise de tête !


Pas la peine. Si on s'en tient /strictement/ à votre question
masquer les macros automatiques parmi d'autres macros visibles
ce n'est pas possible.
Il faudrait mieux comprendre vos motivations pour proposer
un des mille contournements (garde-fous, personnalisations,
événements, classes, modules cachés en vb, j'en passe) qui
pour l'heure ne semblent pas vous convenir :-(
Désolé, je n'arrive pas à comprendre où est la prise de tête.

Anacoluthe
« Quel est le plus long chemin d’un point à un autre ? »
- Jean TARDIEU

1 2