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

scoubidou35

XLDnaute Occasionnel
Si tu vas dans la feuille "BD" et que tu mets une alerte sur par exemple voiture 2 en sélectionnant 2 dans la colonne alerte et en mettant en date
et que du lance la macro elle ne lira que la première alerte (pour la voiture 1) et l'alerte de la voiture 2 n'est pas affichée.
Dis moi si je ne suis pas assez clair.
Merci
 

scoubidou35

XLDnaute Occasionnel
Je vais rencontrer tout mon code car à force de faire des essais j'ai du modifier un code. A moins que j'ai fait une mauvaise manip pour le module car c'est la première fois que j'utilise un module. Je me suis mis sur la feuille sommaire et puis enregistrer une macro puis j'ai copié ton code. C'est bien comme ça ? Et je suis allé dans visual basic dans la feuille login et j'ai mis rajouté message_alerte dans le code.
 

cp4

XLDnaute Barbatruc
Je vais rencontrer tout mon code car à force de faire des essais j'ai du modifier un code. A moins que j'ai fait une mauvaise manip pour le module car c'est la première fois que j'utilise un module. Je me suis mis sur la feuille sommaire et puis enregistrer une macro puis j'ai copié ton code. C'est bien comme ça ? Et je suis allé dans visual basic dans la feuille login et j'ai mis rajouté message_alerte dans le code.
Je t'ai joint un fichier modifié sur ce post
ce fichier
 

cp4

XLDnaute Barbatruc
Ne sachant pas exactement les manipulations que tu effectues.
Moi, j'ai fait apparaitre la feuille BD (elle était non visible), j'ai sélectionné 2 dans la liste déroulante et j'ai mis une date.
Je suis retourné sur la feuille Login, j'ai mis jb et pass 2, et quand je valide. j'ai bien 2 messages qui apparaissent.

Je ne peux t'aider plus que ça.

Bonne soirée.
 

cp4

XLDnaute Barbatruc
Remplace la macro qui est dans le module1 par celle-ci
VB:
Option Explicit

Sub Message_Alerte()
'pour les alertes machines
    Dim alerte As Range, alertemachine As Range, Valeur As String, Date1 As Date
    Dim role As String

    With Worksheets("BD")
        For Each alertemachine In .Range("A4:A" & .Range("A" & Rows.Count).End(xlUp).Row) '.Row '.Range("Alerte_Machine")
            If .Visible = True And alertemachine.Offset(0, 5) = "2" Then
            Valeur = alertemachine
            Date1 = alertemachine.Offset(0, 6)
                MsgBox "ATTENTION : Controle Technique pour " & Valeur & " à faire avant le : " & Date1 & ".", vbInformation, "INFORMATION MATERIEL"
            End If
        Next
    End With
End Sub
 

Statistiques des forums

Discussions
312 331
Messages
2 087 359
Membres
103 528
dernier inscrit
hplus