XL 2010 Utilisateur et mots de passe via vba

RONIBO

XLDnaute Impliqué
Bonjour,

Je viens vers vous concernant un problème que je n'arrive pas résoudre.

J'ai crée un userform permettant de se connecter via nom utilisateur et mots de passe.

Je n'arrive pas à faire correspondre le mots de passe en fonction de l'utilisateur.

Exemple : Si je sélectionne BBBBB en utilisateur son mot de passe doit être Bbbbb, si un utilisateur n'a pas mémorisé son mot de passe laisser le textbox vide.

Merci d'avance.
 

Pièces jointes

  • ttti.xlsm
    31.4 KB · Affichages: 33

RONIBO

XLDnaute Impliqué
Bonjour,

Merci à vous deux :)

Je rencontre un au problème que je n'arrive pas à résoudre

Lorsque qu'un utilisateur décide de mémoriser son mots de passe en cochant la case, alors qu'il l'avait pas fait auparavant.

Ce code l'écrit sur toute la colonne F, alors qu'il devrait l'écrire sur la bonne ligne, l'utilisateur concerné, je ne vois pas mon erreur :(

Code:
    With Sheets("Paramètre du compte")
        For J = 4 To .Range("A" & Rows.Count).End(xlUp).Row
            If Me.CheckBoxMémoriser = True Then
                .Range("F" & J) = Me.TBMotPasse
            End If
        Next J
    End With

De plus, j'essaye de vérifier, si le mot de passe correspond bien à l'utilisateur, vous en pensez quoi ?

Code:
        If TBMotPasse.Value <> .Range("F" & J) Then
            MsgBox ("Le mot de passe est incorrect !"), vbInformation, "Mot de passe incorrect"
            Me.TBMotPasse = ""
            Me.TBMotPasse.BackColor = RGB(255, 0, 0)
        Else
            UserForm1.Show 0
        End If

    End With

Merci d'avance.
 

Pièces jointes

  • ttti.xlsm
    31.4 KB · Affichages: 41

gonz19

XLDnaute Occasionnel
Oui c'est logique

quand tu as For c'et pour faire une boucle
dans ton exemple tu répète ton code de la ligne 4 jusqu'a la dernière ligne vide.

Un code à essayer, mais pas testé.

Code:
Dim J As Long
J = Columns(1).Find(Me.ComboBoxUtilisateur.Value, LookIn:=xlValues).Row
Range("F" & J) = Me.TBMotPasse
 

gonz19

XLDnaute Occasionnel
Pour la deuxième question j'ai pas trop le temps de regarder mais à mon avis ton Code ne marche pas.
Ton j n'a pas de valeur. J doit correspondre à un numéro de ligne. Tu dois pouvoir utiliser le morceau de code du poste précédant. De plus il faut écrire . Range ("f" & j). Value si tu oublié le value excel ne va pas savoir quoi comparer.
Bon courage et n'hésite même si je serai sûrement pas très réactif c'est prochain jours.
 

RONIBO

XLDnaute Impliqué
Bonjour,

Merci gonz19 le bout de code fonctionne :) mais je ne comprends pas le fonctionnement :(
c'est pour cela je préfère utiliser :
Code:
    J = Me.ComboBoxUtilisateur.List(Me.ComboBoxUtilisateur.ListIndex, 1)

Mais j'ai une erreur nul.

Vous avez une idée?
 

Pièces jointes

  • ttti (1).xlsm
    34.8 KB · Affichages: 39

gonz19

XLDnaute Occasionnel
bonjour,

si dans ton exemple tu enlève le ",1" qui est inutile car tu as q'une seul colonne et que tu change le type de variable en string au lieu de long tu auras une valeur de renvoyée, mais pas celle que tu cherches. moi j'ai pas de solution à ce code.


pour cette ligne je peux expliquer :
Code:
J = Columns(1).Find(Me.ComboBoxUtilisateur.Value, LookIn:=xlValues).Row
columns(1) = colonne de recherche
.find fonction recherche
.row renvoie un numéro de ligne

j est égal au numéro de ligne de la valeur exacte de la combobox, cherché dans la colonne 1

j'espère que l'explication est presque claire.
 

gonz19

XLDnaute Occasionnel
J'ai testé le fichier par curiosités.
un EX c'est glissé avant le nom de la combobox "private sub excombobox" donc quand on clic sur connexion rien ne ce passe.
la ligne de code à pas du être modifiée partout
Code:
 J = Me.ComboBoxUtilisateur.ListIndex + 4
Ci dessus la ligne de code écrite par @pierrejean en remplacement de ma ligne de code
 

RONIBO

XLDnaute Impliqué
Merci pour les explications Gonz19 :)
Oui j'ai vu, j'ai adopté le code en fonction de mes besoins.
Merci pierrejean pour le fichier :)

Un autre problème apparu :

Dès qu'un utilisateur avait pas enregistrer son mot de passe auparavant, (exemple : utilisateur "aa", n'a pas de mot de passe)

Je saisie le mot de passe et je coche "Mémoriser le mot de passe"

J'ai le message de mot de passe incorrecte qui apparait
 

Pièces jointes

  • Ronibo.xlsm
    38.6 KB · Affichages: 39

Discussions similaires

Réponses
8
Affichages
138
Réponses
2
Affichages
152
Réponses
5
Affichages
390
Compte Supprimé 979
C
Réponses
2
Affichages
163

Statistiques des forums

Discussions
312 103
Messages
2 085 324
Membres
102 862
dernier inscrit
Emma35400