Bonjour,
Après d’âpres recherches, je ne suis pas parvenu à trouver une solution, j'espère la trouver sur ce forum. je vous expose mon projet:
- sur une feuille nommée "Menu", il y a 9 boutons qui affichent un userform d'autorisation d'affichage (username & password) d'un autre userform.
-sur ce dernier, il y a un bouton pour donner à utilisateur concerné la possibilité de changer son password [pour cette partie c'est OK, je l'ai réalisé].
- les Username (col A), password (col B) et niveaux (col C) d'autorisation sont sur la feuille "Users"

Mon plus grand souci est le codage de l'userform d'autorisation d'accès constitué comme suit:
textbox1=environ("username")
textbox2=password
bouton "valider"
bouton "annuler"
bouton "changer password"

- à chaque niveau correspond 3 userforms
- niveau 3 peut accéder à tous les userforms (1 à 9)
- niveau 2 peut accéder seulement de 1 à 6
- niveau 1 ne peut accéder qu'aux 7,8 et 9
- si l'utilisateur n'existe pas le fichier se ferme

Pour cette partie je nage vraiment, d'autant que je débute en VBA. Sur la toile j'ai trouvé des exemples pour l'affichage d'onglets mais je suis pas parvenu à faire une adaptation.

Voici mon code pour le changement de password pour ceux et celles que çà intéressent.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Option Explicit
 
Dim maligne As Integer
Dim mdp As String
Dim c
Private Sub CB_Valider_Click()
mdp = TextBox1.Text
With Worksheets("Users").Range("b2:b30")
    Set c = .Find(mdp, LookIn:=xlValues)
    If Not c Is Nothing Then
        maligne = c.Row
    Else
        MsgBox "Mauvais mdp"
        Exit Sub
    End If
End With
If TextBox3.Text = TextBox2.Text Then
    Worksheets("Users").Range("b" & maligne).Value = TextBox2.Text
    UserChangePass.Hide
    End
Else
    MsgBox "Les 2 mdp ne sont pas identiques"
End If
End Sub
 
Private Sub CB_annuler_Click()
Unload Me
End Sub
Ceci est le peu de code que j'ai fait, je vous précise qu'initialement le clic sur un bouton affiche un userform, par exemple commandbutton1 affiche userfrom nommé "Consult_Campagne" et active la feuille "ConsultPV" ( execute la macro "Aller_a_Consultation_PV".

c'est à dire qu'à la validation, on appelle la macro qui s'executait par bouton.
Code d'une macro:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
Sub Aller_a_Consultation_PV()
 
    UserPass.Show  'Ici ça doit mettre Vrai ou Faux à la variable Valide
 
    If not Valide Then Exit sub
 
    Sheets("ConsultPV").Select
    Consult_Campagne
End Sub
Code de l'userform d'autorisation (userform6):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Private Sub Bt_Annuler_pwd_Click()
End
End Sub
 
Private Sub Bt_change_pwd_Click()
UserChangePass.Show
End Sub
Private Sub Bt_Valider_pwd_Click()
 
End Sub
 
Private Sub UserForm_Initialize()
  Me.TextBox1 = Environ("username")
  TextBox2.SetFocus
 
  End Sub
Je remercie tous ceux qui m'aideront à avancer dans mon projet, je ne pourrai pas mettre à disposition mon fichier car il comporte des données confidentielles. Je vous remercie pour votre compréhension.