Bonjour tout le monde,
J'ai crée un fichier excel avec plusieurs feuilles et j'aurai voulu protéger ces dernières avec différents mot de passe.
Par exemple que l'admin ai accès à toutes les feuilles et que les autres personnes seulement à certaines.
Pour ça j'ai crée une autre feuille "DroitsUsers" pour y renseigner le nom d'utilisateur, le mot de passe et la feuille qui pourra être visible.
Le problème c'est qu'avec mon code je n'arrive qu'à afficher seulement une feuille pour l'admin:
Private Sub Workbook_Open()
On Error Resume Next
Application.ScreenUpdating = False
'on saisit le user
User = InputBox("Veuillez saisir votre nom d'utilisateur", "Utilisateur" )
'on saisit le mot de passe
MDP = InputBox("Veuillez saisir votre mot de passe", "mot de passe" )
'on cherche le mot de passe dans la feuille DroitsUsers en fonction du user saisi
SchMDP = WorksheetFunction.VLookup(User, Sheets("DroitsUsers" ).Range("A2:B65536" ), 2, False)
'on cherche la feuille dans DroitsUsers en fonction du user saisi
SchFeuil = WorksheetFunction.VLookup(User, Sheets("DroitsUsers" ).Range("A2:C65536" ), 3, False)
'si le mdp saisi = le mdp trouvé dans la feuille DroitsUsers
If MDP = SchMDP Then
'on affiche la feuille correspondante
Sheets(SchFeuil).Visible = True
'on va dessus
Sheets(SchFeuil).Activate
End If
'on planque toutes les autres
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> SchFeuil Then Sheets(x).Visible = xlSheetVeryHidden
Next
Application.ScreenUpdating = True
End Sub
Je vous laisse le fichier ci dessous
Merci pour votre aide