Salut Esteban,
Voici le code de ton module EntrerFeuilles. Le bug est dû au fait que le code sélectionne la feuille "ACCUEIL" même lorsque l'identification a échoué...
Voici ton code avec la fin de ta macro placé sous une macro indépendante et à éventuellement appeler dans ta macro Entrer :
Public mdp As String
Public VarLogin As String
Sub Entrer()
If Worksheets("Login").Range("D35") = "" Or Worksheets("Login").TextBox_mdp = "" Then Exit Sub
'Déclaration des variables
Dim mdpAcces, FeuilleAcces, FeuillePrincipale As String
'On cherche le nom de l'utilisateur dans la Base de Donnée
Set TrouveNom = Worksheets("Utilisateurs").Range("Tableau_BDD[Nom]").Find(Worksheets("Login").Range("D35").Value)
'On récupère le mot de passe de l'utilisateur dans la Base De Donnée
mdpAcces = Worksheets("Utilisateurs").Range("B" & TrouveNom.Row).Value
'On récupère le numéro d'accès des feuilles
FeuilleAcces = Worksheets("Utilisateurs").Range("C" & TrouveNom.Row).Value
'On récupère le mot de passe saisie
mdpEntré = mdp
'On vide le textbox et on remet les ***
Worksheets("Login").TextBox_mdp = ""
Worksheets("Login").TextBox_mdp.PasswordChar = "*"
'Si le mot de passe entré par l'utilisateur est identique à celui dans la Base de Données
If mdpEntré = mdpAcces Then
VarLogin = TrouveNom 'mdpAcces
'On vide la cellule nom
Worksheets("Login").Range("D35") = ""
'On affiche toutes les feuilles auquel l'utilisateur à accès et on les deprotege si Accés 1 ou 2
For Each cell In Worksheets("Utilisateurs").Range("Tableau_Acces[" & FeuilleAcces & "]")
If cell.Value <> "" Then
Worksheets(cell.Value).Visible = True
'If Val(Right(FeuilleAcces, 1)) < 3 Then Worksheets(cell.Value).Unprotect "ADMIN1967"
End If
Next cell
'si admin ou responsable alors démasque les onglets et on remet les en-têtes et la barre de formule
If Val(Right(FeuilleAcces, 1)) <> 3 Then
ActiveWindow.DisplayWorkbookTabs = True
ActiveWindow.DisplayHeadings = True
ActiveWindow.DisplayFormulas = True
End If
'On sélectionne la feuille principale de l'utilisateur
FeuillePrincipale = Worksheets("Utilisateurs").ListObjects("Tableau_Acces").DataBodyRange.Cells(1, Worksheets("Utilisateurs").Range("Tableau_Acces[" & FeuilleAcces & "]").Column - 4).Value
Worksheets(FeuillePrincipale).Select
'Call ConnexionReussie '<<<<<<<<<<<<<<<<<<<<<<<<<<<
'Sinon mdp mauvais
Else
'On affiche une msgbox pour indiquer de retenter
MsgBox "Votre mot de passe est incorrect, veuillez re-essayer."
End If
'DEFILEMENT TEXTE
End Sub
Sub ConnexionReussie()
With Sheets("ACCUEIL")
.Select
t1 = "> N'hésitez pas à donner votre AVIS !... "
n = 0
Do While n < 50
t1 = Right(t1, 1) & Left(t1, Len(t1) - 1) ' défilement de droite à gauche
't1 = Right(t1, Len(t1) - 1) & Left(t1, 1) ' défilement de gauche à droite
.Range("C20") = t1
w = 0.3
temp = Timer
Do While Timer < temp + w
DoEvents
Loop
n = n + 1
Loop
End With
End Sub
En réalité, il faudrait peut-être revoir toutes les actions à faire lorsque le mot de passe est bon et tout mettre dans une macro Connexion réussie.