Private Sub Workbook_BeforeClose(Cancel As Boolean)
'on affiche la feuille ACCEUIL
Sheets("ACCEUIL").Visible = True
'on planque toutes les autres feuilles sauf Vierge
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "ACCEUIL" Then Sheets(x).Visible = xlSheetVeryHidden
Next
End Sub
Private Sub Workbook_Open()
On Error Resume Next
Application.ScreenUpdating = False
'on defini un pointeur
Pointeur = 0
'on affiche la feuille ACCEUIL
Sheets("ACCEUIL").Visible = True
'on va dessus
Sheets("ACCEUIL").Activate
'on planque toutes les autres
For x = 1 To ThisWorkbook.Sheets.Count
If Sheets(x).Name <> "ACCEUIL" Then Sheets(x).Visible = xlSheetVeryHidden
Next
'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")
'Derniere ligne du tableau de la feuille DroitsUsers pour boucler dessus
DerLigne = Sheets("DROITS").Range("A65536").End(xlUp).Row
'on boucle pour trouver les occurences, x=2 car je pars du principe que la premiere ligne _
contient les entetes de colonne
For x = 2 To DerLigne
'si ce qu'il y a dans la colonne1 (Colonne A : user) = le user saisi _
ET ce qu'il y a dans la colonne2 (Colonne B : mot de passe)
If Worksheets("DROITS").Cells(x, 1) = User And Worksheets("DROITS").Cells(x, 2) = MDP Then
'on affiche la feuille définié en colonne3 (Colonne C : Onglet autorisé)
'on affiche la feuille correspondante
FeuilleVisible = Worksheets("DROITS").Cells(x, 3)
Sheets(FeuilleVisible).Visible = True
'on va dessus
Sheets(FeuilleVisible).Activate
'on se met un pointeur pour voir si on trouve quelque chose, si on trouve rien on quittera
Pointeur = Pointeur + 1
ElseIf User = "VIP" And MDP = "MDPVIP" Then
For w = 1 To ThisWorkbook.Sheets.Count
If Sheets(w).Name <> "ACCEUIL" Then Sheets(w).Visible = True
Next
Application.ScreenUpdating = True
Exit Sub
Next x
'Si le pointeur est 0 on ferme le fichier.
If Pointeur = 0 Then
MsgBox "Utilisateur ou mot de passe non valide" & vbCrLf & vbCrLf & "Le fichier va se fermer", vbCritical + vbOKOnly, "Sécurité"
ActiveWorkbook.Close SaveChanges:=False
End If
'on planque la feuille Vierge
Sheets("ACCEUIL").Visible = 2
Application.ScreenUpdating = True
End Sub