Problème de décalage dans l'exécution de ma procédure VBA

scoubidou35

XLDnaute Occasionnel
Bonsoir,

Je suis en train de voir pour créer un fichier qui en fonction de la personne ne pourra accéder ou pas au feuille du classeur. en fonction de son rôle.
L'admin lui aura accès à tous le classeur
mais les utilisateurs auront un accès limité tout comme les visiteurs
Pour ouvrir le classeur je vous mets les login et password pour pouvoir travailler dans le classeur
login /password / role /nom /prenom

bl / 12/ Administrateur / LERMITE / Bernard
jb / 2/ Utilisateur / BREILLE / Jean
pd/ 3/ Utilisateur/ DURAND / Paul
js/ 4/ Visiteur / SELAIRE/ Jacques

Mon problème est que lorsque j'ouvre par exemple le compte de jb j'arrive bien au sommaire, j'ai bien mon alerte machine mais en haut à droite le message "bonjour Jean Breille (utilisateur)" ne s'affiche que lorsque j'ai cliqué sur OK du message d'alerte.
Et si je ferme tout pour rouvrir et que cette fois ci j'utilise le compte de bl l'administrateur le nom précédent est visible jusqu'au moment que je clique sur OK du message d'alerte.
Quelqu'un peut il m'aider pour que le message soit syncho avec l'ouverture du compte.
J'espère que j'ai été clair, mais j'en doute un peu donc si vous avez des questions, je reste à votre disposition.
Merci
 

Pièces jointes

  • CLASSEUR PROTEGE - 1.xlsm
    52.3 KB · Affichages: 11

cp4

XLDnaute Barbatruc
Bonjour,

Mets-toi dans le code et utilise la touche F8, tu suivras le déroulement de tes lignes de code. Les lignes s’exécutent dans un certain ordre d'où l'affichage sur la feuille vient après la msgbox.

Bonne journée.
 
Dernière édition:

cp4

XLDnaute Barbatruc
Rajoute ce code pour vider le nom de l'utilisateur avant la fermeture du fichier.
VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Sheets("SOMMAIRE").Range("F3") = ""
End Sub
A la prochaine ouverture, il n'y aura pas de nom. Ensuite, base sur la procédure du post#2 pour position l'affichage de l'utilisateur sur la feuille.
 

cp4

XLDnaute Barbatruc
Bonjour Bebere
Je viens de regarder le fichier...hélas! ce ne résout pas le problème et même m'en rajoute 2 de plus car le message d'alerte reviens à chaque fois que l'on passe sur la feuille "SOMMAIRE" et en plus il apparait même sur la page "LOGIN".

cp4 je vais regarder et te tiens au courant.
Merci à vous deux pour le temps passé.
Salut Bebere;).

Je trouve que le fichier de Bebere fonctionne bien. Pourquoi, ne résout-il pas ton problème?!
Ensuite, est-ce si important de dire bonjour à l'utilisateur?
Concentre-toi sur la finalité de ton fichier. Ces petites "Customisations" ne sont d'aucune utilité et
rajoutent des tracasseries qui n'amènent rien au fichier. Enfin, c'est mon avis.;)
 

scoubidou35

XLDnaute Occasionnel
Bonjour Bebere
Je viens de regarder le fichier...hélas! ce ne résout pas le problème et même m'en rajoute un de plus car le message d'alerte apparait même sur la page "LOGIN".
Mais je viens de m'apercevoir qu'avec mon code, les messages d'alerte sont bien dirigé sur la page "sommaire" du fichier mais le problème est qu'a chaque fois que je retourne sur cette feuille...à chaque fois le message d'alerte s'affiche. Comment faire pour qu'il ne s'affiche qu'une fois à l'ouverture du fichier sur la feuille "sommaire" et qu'il ne réapparaissent que si l'on a quitter le fichier.

cp4 je vais regarder mais je ne trouve pas la solution
Merci à vous deux pour le temps passé.
 

scoubidou35

XLDnaute Occasionnel
Merci Bebere, ca me fait avancer mais il me reste un problème que je n'arrive pas à régler. Je suis depuis ce matin dessus mais en vain.
quand il y a une alerte, elle s'affiche bien sur la page "Sommaire" mais si tu vas sur un autre onglet et que tu reviens au "sommaire" le message d'alerte s'affiche encore. Comment faire pour que le message d'alerte s'affiche mais qu'une fois vue il ne réapparait que si je ferme le compte ou le fichier.

Merci encore pour le temps que tu passes à m'aider
 

cp4

XLDnaute Barbatruc
quand il y a une alerte, elle s'affiche bien sur la page "Sommaire" mais si tu vas sur un autre onglet et que tu reviens au "sommaire" le message d'alerte s'affiche encore.
Sur le module de code de la feuille sommaire, tu as mis une procédure qui se déclenche quand justement la feuille sommaire est activée. à chaque fois que active cette feuille le message apparaitra.
VB:
Private Sub Worksheet_Activate()
'pour les alertes machines
    Dim alerte As Range
    Dim role As String
    With Worksheets("BD")
        For Each alertemachine In .Range("Alerte_Machine")
            Valeur = .Cells(alertemachine.Row, 1)
            Date1 = .Cells(alertemachine.Row, 7)
            If .Visible = True And alertemachine = "2" Then
                MsgBox "ATTENTION : Controle Technique pour " & Valeur & " à faire avant le : " & Date1 & ".", vbInformation, "INFORMATION MATERIEL"
            Else
                Exit Sub
            End If
        Next
    End With
End Sub
 

Statistiques des forums

Discussions
312 196
Messages
2 086 098
Membres
103 116
dernier inscrit
kutobi87