bonjour a tous
je suis nouveau sur le site et débute sur la vba ,mais avec quelque notion pour moi
voila j'ai a ma charge un fichier avec des vba qui a étais bidouillé de partout avec plein beug que j'ai corriger en allant
mais pour le bien du client j'ai décidé de mettre un code qui protège les onglets celons les utilisateurs avec les droits par page chose qui marche
mais voila si tu rentre utilisateur , et tu as mot passe erroné j ai pas message qui s affiche en disant erreur de code,
mais je vais directement sur la vba en question dont je cherche la solution auprès des personnes plus expérimenté sur le sujet
et autre point quand je réouvre le fichier j ai toute les onglet d affiché lorsque sur l accueil il devrait y avoir que accueil a chaque ouverture
la ligne de code:
dans le workbook:
Option Explicit
Private Sub Workbook_BeforeClose(Cancel As Boolean) 'masque toutes les feuilles avant de fermer
Dim i As Integer
Sheets("Accueil").Visible = True
Sheets("Accueil").Select
For i = 1 To Sheets.Count
If Sheets(i).Name <> "Accueil" Then Sheets(i).Visible = xlVeryHidden
Next
End Sub
Private Sub Workbook_Open() 'démasque les feuilles suivant liste de la feuille user
ouvrir
End Sub
dans la macro entrée
Sub ouvrir()
Dim Reponse As String, Cel As Range
Dim utilisateur As String, codeacces As String
utilisateur = InputBox("Saisie de votre NOM : ", "NOM", Environ("username"))
If Len(utilisateur) = 0 Then Exit Sub
codeacces = InputBox("Saisie de votre code d'accès : ", "CODE")
If Len(codeacces) = 0 Then Exit Sub
With Sheets("Admin")
Set Cel = .Columns("A").Find(utilisateur, .Range("A1").End(xlDown), xlValues, xlWhole)
If Not Cel Is Nothing Then
If Cel.Offset(0, 1).Value = codeacces Then
For iFeuille = 2 To .[E1].End(xlDown).Row
If .Cells(iFeuille, "D").Value = utilisateur Then
If .Cells(iFeuille, "E").Value = "*" Then
ToutVisible True
Else
Sheets(.Cells(iFeuille, "E").Value).Visible = True
End If
End If
Next
End If
Sheets("Accueil").Visible = False <=========> l'endroit ou sa plante quand utilisateur rentre un code erronée
Else
MsgBox "Désolé, Nom ou Code inconnu !"
End If
End With
End Sub
Sub ToutVisible(ok As Boolean)
Dim sh As Worksheet
For Each sh In Sheets
sh.Visible = True
Next
End Sub
Merci de votre aide par avance