OVH Cloud OVH Cloud

Info - Pour la prochaine fois

6 réponses
Avatar
Clément Marcotte
Bonjour,

La prochaine fois que quelqu'un voudra qu'une macro s'exécure sans que
personne ne puisse faire autre chose que d'entrer des données dans un
UserForm ou une InputBox, dites lui de mettre:

Application.interactive = false

et

application.interectavive = true

dès que ce n'est plus nécessaire.

En mettant inrteractive à False, on empêche toute utilisation du
clavier (sauf Ctrl-Alt-Del) et de la souris à l'extérieur de la boîte
de dialogue appelée par la macro, pour tous les classeurs de
l'instance Excel en cours. Avec cela, oubliez d'utiliser les menus ou
les raccourcis-clavier pour "Contouner" la macro. Même que la croix
de fermeture de l'UserForm ferme l'userForm, mais ne remet pas
interactive à true, même si le bouton de commande qui remet
Interactive à true est mis à Cancel = true. Même que Ctrl-Break est
inopérant, autant dans Excel que dans VBE.

Quand cela vous arrive, la seule porte de sortie est Ctrl-Alt-Delete
et tuer l'application.

Pour peu que j'ai pu voir la relance d'Excel, remet automatiquement
interactive à True.

Ces tests ont été menés avec Excel 2002 et Win 98 SE.

6 réponses

Avatar
Clément Marcotte
Merci à Dominique Maniez et à son livre "Formation à VBA pour Word,
Excel et PowerPoint", paru chez Microsoft Press.
J'avais déjà lu le livre, mais je n'avais pas vraiment porté attention
à cela.

À première vue, pour peu qu'application.interactive = False soit mise
dans le WorkBook_Open d'un classeur particulier, plus vraiment besoin
de protéger systématiquement les feuilles de ce classeur, et
d'enlever/remettre la protection à tout bout de champ pour
"travailler".



"Clément Marcotte" a écrit dans le
message de news:
Bonjour,

La prochaine fois que quelqu'un voudra qu'une macro s'exécure sans
que

personne ne puisse faire autre chose que d'entrer des données dans
un

UserForm ou une InputBox, dites lui de mettre:

Application.interactive = false

et

application.interectavive = true

dès que ce n'est plus nécessaire.

En mettant inrteractive à False, on empêche toute utilisation du
clavier (sauf Ctrl-Alt-Del) et de la souris à l'extérieur de la
boîte

de dialogue appelée par la macro, pour tous les classeurs de
l'instance Excel en cours. Avec cela, oubliez d'utiliser les menus
ou

les raccourcis-clavier pour "Contouner" la macro. Même que la croix
de fermeture de l'UserForm ferme l'userForm, mais ne remet pas
interactive à true, même si le bouton de commande qui remet
Interactive à true est mis à Cancel = true. Même que Ctrl-Break est
inopérant, autant dans Excel que dans VBE.

Quand cela vous arrive, la seule porte de sortie est Ctrl-Alt-Delete
et tuer l'application.

Pour peu que j'ai pu voir la relance d'Excel, remet automatiquement
interactive à True.

Ces tests ont été menés avec Excel 2002 et Win 98 SE.



Avatar
LSteph
Bonjour Clément,

Merci pour cette description détaillée.
Cela ressemble un peu au paramêtre de Protect userinterfaceonly...
mais qui ne protège pas de l'utilisation d'une autre macro.
(Vais tester )

J'en profite pour te souhaiter une Bonne Année .

lSteph

"Clément Marcotte" a écrit dans le message
de news:
Bonjour,

La prochaine fois que quelqu'un voudra qu'une macro s'exécure sans que
personne ne puisse faire autre chose que d'entrer des données dans un
UserForm ou une InputBox, dites lui de mettre:

Application.interactive = false

et

application.interectavive = true

dès que ce n'est plus nécessaire.

En mettant inrteractive à False, on empêche toute utilisation du
clavier (sauf Ctrl-Alt-Del) et de la souris à l'extérieur de la boîte
de dialogue appelée par la macro, pour tous les classeurs de
l'instance Excel en cours. Avec cela, oubliez d'utiliser les menus ou
les raccourcis-clavier pour "Contouner" la macro. Même que la croix
de fermeture de l'UserForm ferme l'userForm, mais ne remet pas
interactive à true, même si le bouton de commande qui remet
Interactive à true est mis à Cancel = true. Même que Ctrl-Break est
inopérant, autant dans Excel que dans VBE.

Quand cela vous arrive, la seule porte de sortie est Ctrl-Alt-Delete
et tuer l'application.

Pour peu que j'ai pu voir la relance d'Excel, remet automatiquement
interactive à True.

Ces tests ont été menés avec Excel 2002 et Win 98 SE.



Avatar
Clément Marcotte
Bonjour,



J'en profite pour te souhaiter une Bonne Année .


Bonne année, à toi aussi et à tout le monde

Avatar
FxM
Bonsoir Clément,

A bien relire ce fil, cette info est super-intéressante pour des esprits
mal intentionnés qui tiennent à prendre la main sur une machine pour des
choses plus ou moins avouables.

Raison de plus pour ne pas mettre le niveau sécurité macros à bas et
valider (ou refuser) les messages d'information.

@+
FxM




Clément Marcotte wrote:

Bonjour,

La prochaine fois que quelqu'un voudra qu'une macro s'exécure sans que
personne ne puisse faire autre chose que d'entrer des données dans un
UserForm ou une InputBox, dites lui de mettre:

Application.interactive = false

et

application.interectavive = true

dès que ce n'est plus nécessaire.

En mettant inrteractive à False, on empêche toute utilisation du
clavier (sauf Ctrl-Alt-Del) et de la souris à l'extérieur de la boîte
de dialogue appelée par la macro, pour tous les classeurs de
l'instance Excel en cours. Avec cela, oubliez d'utiliser les menus ou
les raccourcis-clavier pour "Contouner" la macro. Même que la croix
de fermeture de l'UserForm ferme l'userForm, mais ne remet pas
interactive à true, même si le bouton de commande qui remet
Interactive à true est mis à Cancel = true. Même que Ctrl-Break est
inopérant, autant dans Excel que dans VBE.

Quand cela vous arrive, la seule porte de sortie est Ctrl-Alt-Delete
et tuer l'application.

Pour peu que j'ai pu voir la relance d'Excel, remet automatiquement
interactive à True.

Ces tests ont été menés avec Excel 2002 et Win 98 SE.



Avatar
LSteph
Bonsoir FxM,
A bien relire ce fil, cette info est super-intéressante pour des esprits
mal intentionnés
C'est la prudence qui parle, bien sûr mais toutefois, si je puis me

permettre
pour les raisons inverses c'est encore plus intéressant de le savoir et de
garder à l'esprit que l'on doit savoir quel fichier (ou de qui) l'on fait
entrer sur son PC.
En l'occurence, je verrais cela d'abord comme utilisable à bon essient,
pour préserver des routines délicates d'une mauvaise manipulation...
ou pour celui qui voudrait simplement renforcer la sécurité des macros
d'un classeur. Ou même plus précisément pour empêcher, lorsqu'on gère
des classeurs et macros utilisés entre plusieurs postes d'éviter justement
qu'un quidam vienne prendre la main et semer la pagaille.
Aussi, d'accord avec toi pour éviter toute mauvaise intention.
Je note au passage le livre amicalement suggèré par Clément .


J'en profite aussi pour te souhaiter une Bonne Année.

Meilleurs souhaits.

lSteph




"FxM" a écrit dans le message de news:
%
Bonsoir Clément,

A bien relire ce fil, cette info est super-intéressante pour des esprits
mal intentionnés qui tiennent à prendre la main sur une machine pour des
choses plus ou moins avouables.

Raison de plus pour ne pas mettre le niveau sécurité macros à bas et
valider (ou refuser) les messages d'information.

@+
FxM




Clément Marcotte wrote:

Bonjour,

La prochaine fois que quelqu'un voudra qu'une macro s'exécure sans que
personne ne puisse faire autre chose que d'entrer des données dans un
UserForm ou une InputBox, dites lui de mettre:

Application.interactive = false

et

application.interectavive = true

dès que ce n'est plus nécessaire.

En mettant inrteractive à False, on empêche toute utilisation du
clavier (sauf Ctrl-Alt-Del) et de la souris à l'extérieur de la boîte
de dialogue appelée par la macro, pour tous les classeurs de
l'instance Excel en cours. Avec cela, oubliez d'utiliser les menus ou
les raccourcis-clavier pour "Contouner" la macro. Même que la croix
de fermeture de l'UserForm ferme l'userForm, mais ne remet pas
interactive à true, même si le bouton de commande qui remet
Interactive à true est mis à Cancel = true. Même que Ctrl-Break est
inopérant, autant dans Excel que dans VBE.

Quand cela vous arrive, la seule porte de sortie est Ctrl-Alt-Delete
et tuer l'application.

Pour peu que j'ai pu voir la relance d'Excel, remet automatiquement
interactive à True.

Ces tests ont été menés avec Excel 2002 et Win 98 SE.





Avatar
Clément Marcotte
Bonjour,

Effectivement, comme tout outils existant, c'est à l'utilisateur de
veiller à rester dans les limites de l'acceptable. (Évidemment, ceci
dit, j'ai de grosses réserves quand les lobbies des armes, utilisent
cette raison pour s'opposer au contrôle des armes à feu.) Évidemment,
avant d'utiliser cette affaire-là, il serait judicieux, voire
impératif, de désactiver la croix de fermeture de l'UserForm, compte
tenu des effets indésirables de son utilisation, dans ce cas précis.

Je pense aussi à toutes les "pirouettes" qu'il faut faire pour
protéger, déprotéger et reprotéger les données pour réussir certaines
opérations.

Cependant, dans la mesure, où le Ctrl-Alt-Delete n'a pas été désactivé
ou intercepté par une macro indélicate, il y a un certain moyen de
"limiter les dégâts". Mais encore, cela n'excuse pas d'utiliser cet
outil à outrance, juste pour jouer au "Maître" qui refuse toute
réaction de ses "disciples".



"FxM" a écrit dans le message de
news:%
Bonsoir Clément,

A bien relire ce fil, cette info est super-intéressante pour des
esprits

mal intentionnés qui tiennent à prendre la main sur une machine pour
des

choses plus ou moins avouables.

Raison de plus pour ne pas mettre le niveau sécurité macros à bas et
valider (ou refuser) les messages d'information.

@+
FxM




Clément Marcotte wrote:

Bonjour,

La prochaine fois que quelqu'un voudra qu'une macro s'exécure sans
que


personne ne puisse faire autre chose que d'entrer des données dans
un


UserForm ou une InputBox, dites lui de mettre:

Application.interactive = false

et

application.interectavive = true

dès que ce n'est plus nécessaire.

En mettant inrteractive à False, on empêche toute utilisation du
clavier (sauf Ctrl-Alt-Del) et de la souris à l'extérieur de la
boîte


de dialogue appelée par la macro, pour tous les classeurs de
l'instance Excel en cours. Avec cela, oubliez d'utiliser les
menus ou


les raccourcis-clavier pour "Contouner" la macro. Même que la
croix


de fermeture de l'UserForm ferme l'userForm, mais ne remet pas
interactive à true, même si le bouton de commande qui remet
Interactive à true est mis à Cancel = true. Même que Ctrl-Break
est


inopérant, autant dans Excel que dans VBE.

Quand cela vous arrive, la seule porte de sortie est
Ctrl-Alt-Delete


et tuer l'application.

Pour peu que j'ai pu voir la relance d'Excel, remet
automatiquement


interactive à True.

Ces tests ont été menés avec Excel 2002 et Win 98 SE.