Interdire certaine macros à certains utilisateurs

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

krystof_ii

XLDnaute Occasionnel
Bonjour à tous,

j'ai un fichier pour lequel 2 types d'utilisateurs existent :
- le "préparateur" qui à 100% accès à tout,
- les "consultateurs" pour qui je dois interdire certaines macros (dont des événementielles et une lié à bouton).

Sauriez-vous comment faire ?
 
Re : Interdire certaine macros à certains utilisateurs

Bonjour,

essaye peut être en testant l'utilisateur office "Application.UserName" et ou celui de la session windows "Environ("UserName")", exemple ci dessous :
Code:
If Application.UserName <> "xxx" Or Environ("UserName") _
        <> "zzz" Then Exit Sub
bonne journée
@+
 
Re : Interdire certaine macros à certains utilisateurs

Merci Pierrot, seulement mon probleme n'est pas de détecter l'utilisateur (je ferai une boite de dialogue et stockerai le type d'utilisateur dans une cellule)
Mais c'est plutot de geler le déclenchement de certaines macros pour les "consultateurs".

Si qq'un a une idée
 
Re : Interdire certaine macros à certains utilisateurs

Bonjour krystof_ii, salut Pierrot

Comment sais-tu que celui qui ouvre le fichier est un consul(ta)teur ou un préparateur
sois tu les différencies par leur username, auquel cas tu utilises la méthode de Pierrot
ou par un autre moyen et la logique de Pierrot est toujours valable

en aucun cas une macro ne peut deviner qui est devant l'ordi
 
Re : Interdire certaine macros à certains utilisateurs

Bonjour,

krystof_ii n'a peut être pas bien compris à quoi la macro de Pierrot est destiné.

En supposant que le login du préparateur est "Pierre" et en commençant chaque macro concernée de la sorte :
Code:
Sub MaMacro

If Application.UserName <> "Pierre" Then Exit Sub
Si l'utilisateur n'est pas préparateur, alors la macro ne sera pas exécutée.

Cela correspond plutôt bien à ta demande non ?
 
Re : Interdire certaine macros à certains utilisateurs

Effectivement cela pourrait correspondre...
Je souhaiter savoir s'il existe un code pour l'intégrer à l'autoexec du type :
If utilisateur <> "Préparateur" then
macro1.desactivate
feuill1.macro2.desactivate
end if

Cela aurait été plus clair dans mon applic.

Sinon je vais me rabattre à effectuer le test utilisateur en début de chaque macro.
 
Re : Interdire certaine macros à certains utilisateurs

Salut, Attention Application.Username ne donne que le nom correspondant à : Licence d'utilisation accordée à dans le menu A propros de Microsoft Excel et Environ("USERNAME") le nom de login windows
 
Re : Interdire certaine macros à certains utilisateurs

C'est une des raisons pour lesquelles je préfère faire une boite de dialogue à l'ouverture du fichier (car l'application est sur Citrix et il existe plusieurs utilisateurs avec le meme compte) afin de demander le profil utilisateur (avec mot de passe pour le préparateur). Je stocke ensuite ce profil dans une cellule du classeur.
 
Re : Interdire certaine macros à certains utilisateurs

Bonjour,

Effectivement, si tu n'as pas strictement un compte Citrix pour chaque utilisateur, il vaut mieux procéder par mot de passe.

Je suppose que quand tu parles d'autoexe, tu veux parler de Thisworkbook_Open ?

Je ne crois pas que tu puisses désactiver une macro de la sorte. Si tu veux vraiment simplifier le code tu peux éventuellement procéder de la sorte :

- Créer une variable booléenne "AutorisationMacro".
- Après vérification de la saisie du mot de passe, tu lui donnes la valeur True ou False.
- Au début de chaque macro tu places :
Code:
If AutorisationMacro = False then Exit Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
612
Réponses
2
Affichages
458
Retour