Code VBA pour connexion utilisateur bug

Bonjour à tous

Dans mon projet de gestion d'adhérents, une demande de mot de passe avant lancement du logiciel est demandé.

Je débute en vba et celà fait 2 jours que je suis sur cette partie de code.

Seulement voila.. quand je le test, celà fonctionne pour le premier utilisateur et quand je le test pour le deuxième utilisateur... il me dit que les identifiants ne sont pas bon, alors que le code est le même pour le premier utilisateur..??????

idem pour l'administrateur..il ne le reconnait pas..pourtant j'utilise le même début de code que pour les utilisateurs.

Logiquement il y a une partie du code pour limiter les tentatives à 3 essais...sauf que cest en illimité...je ne vois plus pourquoi

Pour la partie "journal de connexion" tout fonctionne bien quand il valide la connexion.

le fichier est trop volumineux pour le mettre en piece jointe....

Je vous joint lle code pour ceux qui aurait envie de se tirer les cheveux comme moi depuis 2 jours....

Private Sub cmdvalider_Click()

Application.ScreenUpdating = False
With ThisWorkbook.Sheets("Login").Select

'déclaration des variables
Dim AddData As Range, Current As Range
Dim user As Variant, Code As Variant
Dim PName As Variant, AName As Variant
Dim ws As Worksheet, ws2 As Worksheet, ws3 As Worksheet, ws4 As Worksheet
Dim result As Integer
Dim TitleStr As String
Dim msg As VbMsgBoxResult
Dim Trial As Long

'affectation des varaibles
user = Me.txtutilisateur.Value
Code = Me.txtcode.Value
TitleStr = "Resaisir mot de passe"
result = 0
Set Current = Sheets("Login").Range("O2")

'Error handler
On Error GoTo errHandler:
'Destination d'enregistrement des connexions
Set AddData = Range("A" & Rows.Count).End(xlUp).Offset(1, 0)

'*****************************************
'test de connexion pour les admnistrateurs
'*****************************************
If user <> "" And Code <> "" Then
    For Each AName In Range("M3:M5")
    'mot de passe avec chiffre et lettre possible
        If AName = Code And AName.Offset(0, -1) = user Then
        MsgBox "Merci de vous êtes connecté " & user
        'enregistrement de l'administrateur
        AddData.Value = user
        AddData.Offset(0, 1).Value = Now
        'ajout de l'utilisateur actuelle dans la feuille Login
        Current.Value = user
        'Validation de la connexion si condition remplie
        result = 1
        'fermeture formulaire connexion
        '********************************************
        'Affiche toute les feuilles visible ainsi que la barre
        '*****************************************************
        Call VisibleFeuille
        ActiveWindow.DisplayWorkbookTabs = True
        Application.ScreenUpdating = True
        Sheets("Acceuil").Activate
        Unload Me

        Exit Sub
        End If
    Next AName
End If

'*****************************************
'test de connexion pour les utilisateurs
'*****************************************
If user <> "" And Code <> "" Then
    For Each PName In Sheets("Login").Range("E3:E20")
        If PName = Code And PName.Offset(0, -1) = user Then
        MsgBox "Merci de vous êtes connecté " & user
        'record user login
        AddData.Value = user
        AddData.Offset(0, 1).Value = Now
        'Add usernmae to the worksheet
        Current.Value = user
        'affichage des feuilles et cache de la barre
        Call VisibleFeuille
        ActiveWindow.DisplayWorkbookTabs = Not ActiveWindow.DisplayWorkbookTabs
        Application.ScreenUpdating = True

' A TRAITER PLUS TARD
'cache des feuilles pour utilisateur
'If PName.Offset(0, 1) <> "" Then
'Set ws = Worksheets(PName.Offset(0, 1).Value)
'ws.Visible = True
'End If

        'validation connexion si condition remplie
        result = 1
        'fermeture du formulaire
        Unload Me
        Sheets("Acceuil").Activate
        Exit Sub
        End If
    Next PName
End If

'**************************
'test des 3 tentatives
'**************************
If result = 0 Then
'incrémentation de la variable erreur
Trial = Trial + 1
'moins de 3 eereurs message
    If Trial < 3 Then msg = MsgBox("Identifiants non reconnus. Veuillez resaisir vos identifiants", vbExclamation + vbOKOnly, TitleStr)
    Me.txtutilisateur.SetFocus
    End If
    'Dernière chance et fermeture du classeur
    If Trial = 3 Then
    msg = MsgBox("Essais maximum atteind. Veuillez contacter votre administrateur", vbCritical + vbOKOnly, TitleStr)
    ActiveWorkbook.Quit = False
    End If

Exit Sub
'Error block
errHandler:
MsgBox "Une erreure est survenue " & vbCrLf & "Numéro d'erreur: " _
& Err.Number & vbCrLf & Err.Description & vbCrLf & _
"Merci de contacter votre administrateur"
End With
End Sub

merci pour les conseils que vous pourrez m'apporter


je vous joint la feuille excel qui sert d'appuie au code si celà peut vous aider

32classeur1.xlsx (13.63 Ko)
Rechercher des sujets similaires à "code vba connexion utilisateur bug"