Excel vba identification pour userform

winieloursonaub Messages postés 8 Date d'inscription dimanche 11 juin 2006 Statut Membre Dernière intervention 15 septembre 2006 - 2 août 2006 à 18:52
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 - 3 août 2006 à 03:46
Bonjour a tous,

Voilà je suis entrain de faire un programme sur excel vba mais bon je débute alors je ne suis pas très compétente et donc j'ai besoin de votre aide.

Sur une feuille excel j'ai créer un bouton qui ouvre une fenêtre d'idendification (nom utilisateur + mot de passe) suivant la réponse je veux qu'il ouvre tel ou tel userform. Voici mon code mais à un endroit je ne sais pas.

Merci de m'aider et de m'apporter une solution si possible.

Private Sub Ok_Btn_Click()
If ID_Util = Empty Then End
' Recherche du profil
    Set Rech = Range("Users").Find(ID_Util, LookIn:=xlValues)
    If Not Rech Is Nothing Then
' Contrôle du mot de passe
        If Pwd_Util = Rech.Cells(1, 2) Then
' Si Ok mémorisation du niveau d'utilisateur
            Range("Niveau_en_cours") = Rech.Cells(1, 3)
' Ouverture du premier écran de l'application
?????????????????????????????????????????????????????????????
' Mot de passe invalide
            MsgBox ("Mot de passe invalide")
'        End
        End If
    Else
' Utilisateur inconnu
        MsgBox ("Utilisateur inconnu")
'        End
    End If
End Sub

2 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
2 août 2006 à 23:51
Premièrement, tu ne devrais jamais utiliser END qui ne termine pas un programme toujours de façon adéquate... C'est mon avis...


Ensuite, ce serait bien de savoir ce qui est inscrit dans
Range("Niveau_en_cours"). Est-ce que ç'a rapport avec le nom des
feuilles à sélectionner, ou à l'index des feuilles à sélectionner ou
quelque chose d'autre qui pourrait faciliter une réponse (?)


Dans le «Select Case», j'ai mis 1, 2, 3, mais ç'aurait pu être autre
chose puisque je ne sais ce qui y est inscrit. En fait, il faut que tu
mettes comme Case, les possibilités que tu peux retrouver dans le
Range(Niveau_en_Cours") et agir selon chaque cas.


Private Sub Ok_Btn_Click()
If Not IsEmpty(ID_Util) Then ' ou If ID_Util <> "" si c'est un textbox

' Recherche du profil

    Set Rech = Range("Users").Find(ID_Util, LookIn:=xlValues)

    If Not Rech Is Nothing Then

' Contrôle du mot de passe
'Ici j'y serais allé comme ça, mais c'est question de choix et d'habitude

'If Pwd_Util = Range(Rech.Address).Offset(0,1) then
        If Pwd_Util = Rech.Cells(1, 2) Then

' Si Ok mémorisation du niveau d'utilisateur

            Range("Niveau_en_cours") = Rech.Cells(1, 3)

' Ouverture du premier écran de l'application
    'Ici je ne sais pas ce qui est inscrit, donc comment ou quoi ouvrir
       Select Case Range("Niveau_en_cours")

          Case 1  ' ou "Feuil1" ou autre que contient Range("Niveau_en_cours")

             Sheets(1).activate

          Case 2

             Sheets("Niveau_en_cours").activate

          Case 3

             Sheets("Tu mets le nom en dur").activate

          Case Else

             'Action à faire si nécessaire...

       End select
?????????????????????????????????????????????????????????????

          Else

' Mot de passe invalide

            MsgBox ("Mot de passe invalide")

             Unload me  ' ou encore laisser affiché et vider les textbox

        End If

    Else

' Utilisateur inconnu

        MsgBox ("Utilisateur inconnu")

         Unload me  ' ou encore laisser affiché et vider les textbox

    End If

end if


End Sub


en espérant que ça puisse t'avoir aider un peu...

MPi
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
3 août 2006 à 03:46
Humm qui dit "Range("Users")", dit que tes infos se trouvent dans des cellules (donc facilement accessibles par les utilisateurs).
Tu devrais plutôt utiliser des constantes dans un module.

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
0
Rejoignez-nous