OVH Cloud OVH Cloud

désactivation d'une macro

3 réponses
Avatar
t.ruellan
Bonjour,

j'ai une petite question. J'ai cr=E9=E9 une macro sur un fichier, mais
qui ne servira pas =E0 tous ses utilisateurs r=E9guli=E8rement.

Je souhaiterai donc savoir comment =E9viter =E0 ceux qui utiliseront ce
fichier mais pas la macro de devoir cliquer =E0 chaque fois =E0
l'ouverture du fichier "d=E9sactiver les macros".

La solution de baisser le niveau de s=E9curit=E9 ne me convient pas (trop
dangeureux, je ne peux pas imposer =E7a aux autres utilisateurs du
fichier)

L'id=E9e qui me semblerai la plus simple serait de d=E9sactiver les
macros automatiquement =E0 l'ouverture du fichier. De m=EAme, on pourrait
les r=E9activer en cliquant sur un bouton, ou en faitsant tout autre
chose.

Savez-vous comment je pourrais faire ?

Je vous remercie d'avance,=20

Thomas

3 réponses

Avatar
lSteph
Bonjour,

Non, si tu désactives les macros , il te faut théoriquement refermer le
fichier et le rouvrir pour les activer.
Ce n'est pas, le but de cette fonctionnalité qui concerne plutôt la
sécurité.
Dans la mesure où les utilisateurs sont sûrs des fichiers que tu leur
fournis.
Tu peux les habituer à activer les macros dès lors que la csource leur est
certaine
et de systématiquement désactiver les macros d'un fichier dont ils ne sont
pas sûr de la provenance
(d'ailleurs devraient même pas avoir ouvert un tel fichier).

Pour gèrer le reste, selon ce que tu en dis il serait préférable qu'il ne
s'agisse pas directement de l'exécution de cette macro
sur un événement, ouverture, modification...etc.... (Tu peux préciser ce
point davantage, peut-être..? ou donner le texte du code§)

Si tel n'est pas le cas, tu peux indiquer le nom de la macro qui ne sert pas
régulèrement , à ceux qui devront l'executer.
Sinon , si tu as peur que d'autres s'en servent quand même, tout en haut du
module qui la contient écris Option Private Module
elle n'apparaîtra plus dans outils macros mais pourra qd même y être tapée
et executée
( ensuite peut-être protèger le projet dans VBE mais gare aux oublis).

lSteph

a écrit dans le message de news:

Bonjour,

j'ai une petite question. J'ai créé une macro sur un fichier, mais
qui ne servira pas à tous ses utilisateurs régulièrement.

Je souhaiterai donc savoir comment éviter à ceux qui utiliseront ce
fichier mais pas la macro de devoir cliquer à chaque fois à
l'ouverture du fichier "désactiver les macros".

La solution de baisser le niveau de sécurité ne me convient pas (trop
dangeureux, je ne peux pas imposer ça aux autres utilisateurs du
fichier)

L'idée qui me semblerai la plus simple serait de désactiver les
macros automatiquement à l'ouverture du fichier. De même, on pourrait
les réactiver en cliquant sur un bouton, ou en faitsant tout autre
chose.

Savez-vous comment je pourrais faire ?

Je vous remercie d'avance,

Thomas
Avatar
t.ruellan
Bonjour,

merci de cette réponse :)

Voila pour les précisions.
Je suis en train de créer un document type (je n'en suis qu'au début)
pour que les membres de mon association remplissent facilement leurs
fiches de frais, les factures à émettre, etc...

Prenons l'exemple de la fiche de frais. C'est la première étape de
mon fichier.

Le but serait qu'à chaque changement de bureau (les mandats sont d'un
an puisqu'il s'agit d'une association d'une école), on puisse cliquer
sur un bouton qui affiche un formulaire où l'on rentre le nom du
nouveau président, celui du trésorier, l'année du mandat et les
diverses commissions qui existent dans l'association. Ces informations
seront destinées à rester les mêmes toute l'année.

Ce système a pour but d'éviter d'avoir à rentrer toutes les données
dans toutes les cases à chaque début de mandat. Je compte automatiser
le fichier au maximum, ce qui risque de rendre la mise à jour plus
difficile. Je préfèrerai qu'un formulaire se charge de rappeler aux
futurs membres ce qu'ils doivent changer, et qu'Excel fasse le reste de
la mise à jour dans tout le dossier.

Par exemple, le cas des commissions (=département communication,
département logistique... pour être explicite). L'organisation de
l'association change régulièrement (des commissions qui se créent et
qui se perdent).

Dans la fiche de frais, on utilise un menu déroulant pour choisir sa
commission. La liste des choix possibles est dans la case C29 de
l'onglet mode d'emploi. Partant du principe que les gens ont une
aversion pour la comptabilité et pour Excel, j'imagine qu'ils ne
s'amuseront pas à savoir comment marche un menu déroulant et comment
le mettre à jour correctement (c'est à dire mettre des
points-virgules entre chaque élément de la liste).

En cas de problème, la macro permetrait de toujours redonner des
paramètres par défaut (puisque les données du formulaire sont
initialisée à partir du ichier excel)

En résumé, on n'utilise pas la mise à jour réguilièrement mais
celle-ci risque de se complexifier au fur et à mesure que j'ajouterai
d'autres fichiers types, d'où l'utilité de la macro (et puis c'est la
première macro que je réalise, ça m'a amusé de la faire, ça me
ferait mal de me dire qu'elle sert à rien...)

Voici l'url du fichier : http://membres.lycos.fr/nukebox/fftest.xls
(j'ai enlevé les protections sur les feuilles et j'ai rendu visible
les infos mises à jour par la macro dans l'onglet mode d'emploi)

J'espère avoir été clair.

merci d'avance,

Thomas
Avatar
lSteph
Bonjour,
Donc si j'ai bien compris juste protèger l'accès au bouton et au menu outils
macro
(j'ai donc juste ajouté Option private module en haut de module1 et appel à
un userform2 pour contrôler l'accès à userform1 )
(le mdp d'accès "toto" est inscrit dans la propriété tag du textbox1 de
userform2 qui conditionne celui d'userform1)
(il conviendra sans doute par suite de protèger ton projet, quand tu auras
fini).

http://cjoint.com/?dsq0pRyi3Z

Cordialement.

'lSteph

'****dans module1 ajouté ceci***
Option Private Module
Sub change_mandat()
UserForm2.Show
End Sub
'''(le mdp d'accès "toto" est inscrit dans la propriété tag du textbox1 de
userform2 qui conditionne celui d'userform1)

'***code de uf2****
Private Sub CommandButton1_Click()

If TextBox1 <> TextBox1.Tag Then
Unload Me: End
Else
Unload Me
End If
UserForm1.Show
End Sub

Private Sub CommandButton2_Click()
Unload Me
End Sub

Private Sub UserForm_Initialize()
Me.TextBox1.SetFocus
End Sub

''*****

a écrit dans le message de news:

Bonjour,

merci de cette réponse :)

Voila pour les précisions.
Je suis en train de créer un document type (je n'en suis qu'au début)
pour que les membres de mon association remplissent facilement leurs
fiches de frais, les factures à émettre, etc...

Prenons l'exemple de la fiche de frais. C'est la première étape de
mon fichier.

Le but serait qu'à chaque changement de bureau (les mandats sont d'un
an puisqu'il s'agit d'une association d'une école), on puisse cliquer
sur un bouton qui affiche un formulaire où l'on rentre le nom du
nouveau président, celui du trésorier, l'année du mandat et les
diverses commissions qui existent dans l'association. Ces informations
seront destinées à rester les mêmes toute l'année.

Ce système a pour but d'éviter d'avoir à rentrer toutes les données
dans toutes les cases à chaque début de mandat. Je compte automatiser
le fichier au maximum, ce qui risque de rendre la mise à jour plus
difficile. Je préfèrerai qu'un formulaire se charge de rappeler aux
futurs membres ce qu'ils doivent changer, et qu'Excel fasse le reste de
la mise à jour dans tout le dossier.

Par exemple, le cas des commissions (=département communication,
département logistique... pour être explicite). L'organisation de
l'association change régulièrement (des commissions qui se créent et
qui se perdent).

Dans la fiche de frais, on utilise un menu déroulant pour choisir sa
commission. La liste des choix possibles est dans la case C29 de
l'onglet mode d'emploi. Partant du principe que les gens ont une
aversion pour la comptabilité et pour Excel, j'imagine qu'ils ne
s'amuseront pas à savoir comment marche un menu déroulant et comment
le mettre à jour correctement (c'est à dire mettre des
points-virgules entre chaque élément de la liste).

En cas de problème, la macro permetrait de toujours redonner des
paramètres par défaut (puisque les données du formulaire sont
initialisée à partir du ichier excel)

En résumé, on n'utilise pas la mise à jour réguilièrement mais
celle-ci risque de se complexifier au fur et à mesure que j'ajouterai
d'autres fichiers types, d'où l'utilité de la macro (et puis c'est la
première macro que je réalise, ça m'a amusé de la faire, ça me
ferait mal de me dire qu'elle sert à rien...)

Voici l'url du fichier : http://membres.lycos.fr/nukebox/fftest.xls
(j'ai enlevé les protections sur les feuilles et j'ai rendu visible
les infos mises à jour par la macro dans l'onglet mode d'emploi)

J'espère avoir été clair.

merci d'avance,

Thomas