Utilisation de la même macro par deux utilisateurs

loupapet

XLDnaute Nouveau
Bonjour à tous,
j'aurais besoin de votre aide sur une problématique assez simple:
j'ai un fichier partagé sur réseau ait est utilisé par une dizaine de personnes.
J'ai mis en place un système de macro utilisable par tous les utilisateurs.
Le problème est qu'un utilisateur peut utiliser la macro et un autre saisir les informations à la main.
mais je ne peux coupler deux utilisateurs de la même macro en même temps.
Je souhaite donc détecter si la macro X est déjà en cours sur le fichier Z
si c'est le cas je désactive la macro et je mets une msgbox
sinon la macro peux ce lancer.

Je précise aussi que la macro appelle un userform qui traite les données.

Je vous remercie de votre aide.

Bonne journée à tous.
 

mromain

XLDnaute Barbatruc
Re : Utilisation de la même macro par deux utilisateurs

bonjour loupapet

une solution possible serait de créer une sorte de "fichier log" qui mémorisera l'utilisation de ta macro.
au début de ta macro X, tu vas écrire dans ce fichier
"macro X lancée le .. à .. par .."
et en fin de macro, tu vas écrire dans ce même fichier
"macro X achevée le .. à .. par .."

ça te permet à tout moment (en analysant la dernière ligne de ce fichier) de savoir si la macro X est en train d'être utilisée ou pas.

a+
 

loupapet

XLDnaute Nouveau
Re : Utilisation de la même macro par deux utilisateurs

Merci de ta réponse.
La réponse la plus simple que j'avais trouvée est dinsérer dans une cellule précise par exemple cells(65500, VV) un symbole où un mot.
S'il est vide, le code inscrit le code et le supprime à la fin.
Cela eviterait de lancer la macro.
Mais je souhaite une solution plutot orientée sur un code VBA project (sans passer par la worksheet).
 

mromain

XLDnaute Barbatruc
Re : Utilisation de la même macro par deux utilisateurs

Merci de ta réponse.
La réponse la plus simple que j'avais trouvée est dinsérer dans une cellule précise par exemple cells(65500, VV) un symbole où un mot.
S'il est vide, le code inscrit le code et le supprime à la fin.
Cela eviterait de lancer la macro.
Mais je souhaite une solution plutot orientée sur un code VBA project (sans passer par la worksheet).


re bonjour,

est-ce que de passer par un fichier texte (le fameux "fichier log") résoudrait ton problème ?
cela éviterait d'écrire dans une cellule de ton fichier.

a+
 
G

Guest

Guest
Re : Utilisation de la même macro par deux utilisateurs

Bonsoir,

tu peux peut-être également utiliser un nom caché dans le fichier Z.
Dans l'exemple suivant le nom est 'MacroOnOff" et contient soit "=0" si le userform est déchargé soit "=1"
Code:
Sub MaMacro()
    If Evaluate(Workbooks("Classeur4").Names("MacroOnOff").RefersTo) = 0 Then
        Workbooks("Classeur4").Names("MacroOnOff").RefersTo = "=1"
    End If
    Workbooks("Classeur4").Names("MacroOnOff").RefersTo = "=0"
End Sub

Mais peut-être qu'une variable publique serait suffisante.
Comme je ne suis pas en réseau, je ne peux pas faire de tests.

A+
 

Discussions similaires

Réponses
4
Affichages
212

Statistiques des forums

Discussions
312 429
Messages
2 088 352
Membres
103 824
dernier inscrit
frederic.marien@proximus.