Existe-t-il un moyen de d=C3=A9clarer une proc=C3=A9dure =C3=A0 l'=C3=A9tat=
Private suivant une condition (test sur une variable quelconque par ex) ?
Je d=C3=A9veloppe un programme pour diff=C3=A9rents utilisateurs et je voud=
rai que certains aient acc=C3=A8s =C3=A0 des proc=C3=A9dures sp=C3=A9cifiqu=
es et d=E2=80=99autres pas.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
MichD
Le 11/08/20 à 04:12, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas. Merci pour votre aide Alf
Bonjour, Si le groupe n'est pas très gros, une suggestion. Tu fais un test sur leur nom de l'usager. '------------------------------------- Sub test() 'Liste des "UserName" des usagers ayant droit à certaines macros seulement Dim Arr(), Usager As String Arr = Array("toto", "titi", "tutu", "michd") 'Tu peux en ajouter autant que tu désires 'Tu testes si l'usager qui veut exécuter la macro fait partie des personnes autorisées Usager = LCase(Environ("UserName")) If Not IsError(Application.Match(Usager, Arr, 0)) Then 'Exécution de la macro MsgBox Usager End If End Sub '------------------------------------- MichD
Le 11/08/20 à 04:12, Alf a écrit :
Bonjour à tous,
Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ?
Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas.
Merci pour votre aide
Alf
Bonjour,
Si le groupe n'est pas très gros, une suggestion. Tu fais un test sur
leur nom de l'usager.
'-------------------------------------
Sub test()
'Liste des "UserName" des usagers ayant droit à certaines macros seulement
Dim Arr(), Usager As String
Arr = Array("toto", "titi", "tutu", "michd") 'Tu peux en ajouter autant
que tu désires
'Tu testes si l'usager qui veut exécuter la macro fait partie des
personnes autorisées
Usager = LCase(Environ("UserName"))
If Not IsError(Application.Match(Usager, Arr, 0)) Then
'Exécution de la macro
MsgBox Usager
End If
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas. Merci pour votre aide Alf
Bonjour, Si le groupe n'est pas très gros, une suggestion. Tu fais un test sur leur nom de l'usager. '------------------------------------- Sub test() 'Liste des "UserName" des usagers ayant droit à certaines macros seulement Dim Arr(), Usager As String Arr = Array("toto", "titi", "tutu", "michd") 'Tu peux en ajouter autant que tu désires 'Tu testes si l'usager qui veut exécuter la macro fait partie des personnes autorisées Usager = LCase(Environ("UserName")) If Not IsError(Application.Match(Usager, Arr, 0)) Then 'Exécution de la macro MsgBox Usager End If End Sub '------------------------------------- MichD
Alf
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'ét at Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je vo udrai que certains aient accès à des procédures spécifi ques et d’autres pas. Merci pour votre aide Alf
Merci pour la réponse MichD. En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur. Mais ça ne doit pas être possible.... Dis-moi.. Merci Alf
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous,
Existe-t-il un moyen de déclarer une procédure à l'ét at Private suivant une condition (test sur une variable quelconque par ex) ?
Je développe un programme pour différents utilisateurs et je vo udrai que certains aient accès à des procédures spécifi ques et d’autres pas.
Merci pour votre aide
Alf
Merci pour la réponse MichD.
En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur.
Mais ça ne doit pas être possible....
Dis-moi..
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'ét at Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je vo udrai que certains aient accès à des procédures spécifi ques et d’autres pas. Merci pour votre aide Alf
Merci pour la réponse MichD. En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur. Mais ça ne doit pas être possible.... Dis-moi.. Merci Alf
Geo
En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur. Mais ça ne doit pas être possible....
Avec la compilation conditionnelle peut-être. Mais selon l'utilisateur ce n'est pas évident.
En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en
fonction de l'utilisateur. Mais ça ne doit pas être possible....
Avec la compilation conditionnelle peut-être.
Mais selon l'utilisateur ce n'est pas évident.
En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur. Mais ça ne doit pas être possible....
Avec la compilation conditionnelle peut-être. Mais selon l'utilisateur ce n'est pas évident.
MichD
Le 11/08/20 à 11:34, Alf a écrit :
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas. Merci pour votre aide Alf
Merci pour la réponse MichD. En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur. Mais ça ne doit pas être possible.... Dis-moi..
Eh bien là, ça, c'est facile! Exemple : '--------------------------- Sub Test(Optional D As String) End Sub '----------------------------- Il s'agit d'insérer dans la ligne de déclaration de la procédure un paramètre "As Optional" comme dans mon exemple. La macro test n'a pas besoin de tenir compte de ce paramètre "fantôme". Ainsi la procédure "Test" n'apparaîtra pas dans la liste des macros, mais elle est disponible. Dans la fenêtre Alt+F8, tu tapes le nom de la macro "Test" et tu appuies sur le bouton exécuter. MichD
Le 11/08/20 à 11:34, Alf a écrit :
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous,
Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ?
Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas.
Merci pour votre aide
Alf
Merci pour la réponse MichD.
En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur.
Mais ça ne doit pas être possible....
Dis-moi..
Eh bien là, ça, c'est facile!
Exemple :
'---------------------------
Sub Test(Optional D As String)
End Sub
'-----------------------------
Il s'agit d'insérer dans la ligne de déclaration de la procédure un
paramètre "As Optional" comme dans mon exemple. La macro test n'a pas
besoin de tenir compte de ce paramètre "fantôme". Ainsi la procédure
"Test" n'apparaîtra pas dans la liste des macros, mais elle est disponible.
Dans la fenêtre Alt+F8, tu tapes le nom de la macro "Test" et tu appuies
sur le bouton exécuter.
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas. Merci pour votre aide Alf
Merci pour la réponse MichD. En fait, je voulais que la macro n'apparaisse pas quand on tape Alt+F8, en fonction de l'utilisateur. Mais ça ne doit pas être possible.... Dis-moi..
Eh bien là, ça, c'est facile! Exemple : '--------------------------- Sub Test(Optional D As String) End Sub '----------------------------- Il s'agit d'insérer dans la ligne de déclaration de la procédure un paramètre "As Optional" comme dans mon exemple. La macro test n'a pas besoin de tenir compte de ce paramètre "fantôme". Ainsi la procédure "Test" n'apparaîtra pas dans la liste des macros, mais elle est disponible. Dans la fenêtre Alt+F8, tu tapes le nom de la macro "Test" et tu appuies sur le bouton exécuter. MichD
MichD
Si tu utilises mon approche, le code de la macro peut être dans n'importe quel module et la ligne de code pour appeler la macro est Call test est suffisante peu importe le module dans lequel tu te trouves. Si tu utilises l'expression "Private", si tu veux appeler la macro d'un autre module, tu dois alors utiliser : Application.Run "Test" Si tu appelles une macro située dans le même module, il n'y a pas de différence Call Test est suffisant pour les 2 méthodes. Si tu utilises seulement l'appel de la fenêtre des macros "alt+F11, il n'y a pas de différences, non plus. MichD
Si tu utilises mon approche, le code de la macro peut être dans
n'importe quel module et la ligne de code pour appeler la macro est
Call test est suffisante peu importe le module dans lequel tu te trouves.
Si tu utilises l'expression "Private", si tu veux appeler la macro d'un
autre module, tu dois alors utiliser :
Application.Run "Test"
Si tu appelles une macro située dans le même module, il n'y a pas de
différence Call Test est suffisant pour les 2 méthodes. Si tu utilises
seulement l'appel de la fenêtre des macros "alt+F11, il n'y a pas de
différences, non plus.
Si tu utilises mon approche, le code de la macro peut être dans n'importe quel module et la ligne de code pour appeler la macro est Call test est suffisante peu importe le module dans lequel tu te trouves. Si tu utilises l'expression "Private", si tu veux appeler la macro d'un autre module, tu dois alors utiliser : Application.Run "Test" Si tu appelles une macro située dans le même module, il n'y a pas de différence Call Test est suffisant pour les 2 méthodes. Si tu utilises seulement l'appel de la fenêtre des macros "alt+F11, il n'y a pas de différences, non plus. MichD
Michel__D
Bonjour, Le 11/08/2020 à 20:11, Alf a écrit :
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas. Merci pour votre aide Alf
Merci à tous, Une précision MichD, je ne vois pas la différence avec Private qui fait aussi disparaitre la macro quand on tape Alt+F8. Par contre, que ce soit avec ta méthode ou avec Private, la macro est disponible. Ce que je ne savais pas. Peut-être ta méthode présente-t-elle un autre avantage ?....
Relis la dernière réponse MichD qui te donne la différence. (Private cela veut dire heu... ben Private et ici c'est par rapport au Module)
Bonjour,
Le 11/08/2020 à 20:11, Alf a écrit :
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous,
Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ?
Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas.
Merci pour votre aide
Alf
Merci à tous,
Une précision MichD, je ne vois pas la différence avec Private qui fait aussi disparaitre la macro quand on tape Alt+F8.
Par contre, que ce soit avec ta méthode ou avec Private, la macro est disponible. Ce que je ne savais pas.
Peut-être ta méthode présente-t-elle un autre avantage ?....
Relis la dernière réponse MichD qui te donne la différence.
(Private cela veut dire heu... ben Private et ici c'est par rapport au Module)
Le mardi 11 août 2020 10:12:46 UTC+2, Alf a écrit :
Bonjour à tous, Existe-t-il un moyen de déclarer une procédure à l'état Private suivant une condition (test sur une variable quelconque par ex) ? Je développe un programme pour différents utilisateurs et je voudrai que certains aient accès à des procédures spécifiques et d’autres pas. Merci pour votre aide Alf
Merci à tous, Une précision MichD, je ne vois pas la différence avec Private qui fait aussi disparaitre la macro quand on tape Alt+F8. Par contre, que ce soit avec ta méthode ou avec Private, la macro est disponible. Ce que je ne savais pas. Peut-être ta méthode présente-t-elle un autre avantage ?....
Relis la dernière réponse MichD qui te donne la différence. (Private cela veut dire heu... ben Private et ici c'est par rapport au Module)