cathodique
XLDnaute Barbatruc
Je trouve quelques difficultés à mettre en place des procédures conditionnelles dans un formulaire.
Celui-ci me permettra d'ajouter des utilisateurs avec des droits d'accès. à l'ouverture du formulaire, le focus est mis sur Textbox1 (où l'on doit saisir l'utilisateur)
dans Textbox2 il y a un pass utilisateur générique ('0000) , dans combobox1 on sélectionne le niveau (1 à 4) suivant lequelle en textbox3 s'affiche un intitulé.
et 2 boutons (Ajouter et quitter).
Je voudrais donc dans la procédure du bouton valider faire ce qui suit:
a/ Si Textbox1=vide et Combobox1=vide, on sort de la procédure (sans fermeture du formulaire) et remettre le focus sur textbox1
b/ si textbox1<>vide et combobox1=vide, on sort de la procédure (sans fermeture du formulaire) et remettre le focus sur Combobox1
c/ si textbox1<>vide et combobox1<>vide, on vérifie en feuille(users) colonne 1 que l'utilisateur n'est pas enregistré, dans ce cas on transfert sur la feuille
Mais s'il est déjà présent, textbox1 et combobox1 sont vidés et message prévient que l'utilisateur existe.
En vous remerciant, J'ai fait quelque chose mais la première des difficultés est de rendre le focus au textbox1
Celui-ci me permettra d'ajouter des utilisateurs avec des droits d'accès. à l'ouverture du formulaire, le focus est mis sur Textbox1 (où l'on doit saisir l'utilisateur)
dans Textbox2 il y a un pass utilisateur générique ('0000) , dans combobox1 on sélectionne le niveau (1 à 4) suivant lequelle en textbox3 s'affiche un intitulé.
et 2 boutons (Ajouter et quitter).
Je voudrais donc dans la procédure du bouton valider faire ce qui suit:
a/ Si Textbox1=vide et Combobox1=vide, on sort de la procédure (sans fermeture du formulaire) et remettre le focus sur textbox1
b/ si textbox1<>vide et combobox1=vide, on sort de la procédure (sans fermeture du formulaire) et remettre le focus sur Combobox1
c/ si textbox1<>vide et combobox1<>vide, on vérifie en feuille(users) colonne 1 que l'utilisateur n'est pas enregistré, dans ce cas on transfert sur la feuille
Mais s'il est déjà présent, textbox1 et combobox1 sont vidés et message prévient que l'utilisateur existe.
En vous remerciant, J'ai fait quelque chose mais la première des difficultés est de rendre le focus au textbox1
VB:
Private Sub Btn_Valider_Click()
Dim LastLg As Long
'verifier textbox1 et combobox1 vide
If Me.TextBox1 = "" And Me.ComboBox1 = "" Then
MsgBox "Aucune Action! Veuillez saisir un nom.", vbCritical, "CHAMPS VIDES"
Exit Sub
Me.TextBox1.SetFocus
ElseIf Me.TextBox1.Text = "" Then
MsgBox "Veuillez saisir le nom de l'utilisateur!", vbCritical, "UTILISATEUR"
Exit Sub
Me.TextBox1.SetFocus
ElseIf ComboBox1.Text = "" Then
MsgBox "Veuillez selectionner le niveau d'accès de l'utilisateur!", vbCritical, "NIVEAU ACCES"
Exit Sub
ComboBox1.SetFocus
End If
'on enregistre
'Dim LastLg As long
Dim X As String
With Sheets("Users")
'trouver derniere ligne vide
LastLg = .Columns(1).Find("").Row
'on verifie que l'utilisateur n'existe pas
X = Usf_Ajout_Utilisateur.TextBox1 '.Text
Set C = .Columns(1).Cells.Find(X)
If Not C Is Nothing Then
MsgBox "Cet utilisateur existe déjà!", vbCritical
Unload Usf_Ajout_Utilisateur
' Exit Sub
Else
'on enregistre sur la feuille
.Cells(LastLg, 1) = UCase(Usf_Ajout_Utilisateur.TextBox1.Text)
.Cells(LastLg, 2) = Usf_Ajout_Utilisateur.TextBox2.Text
.Cells(LastLg, 3) = Usf_Ajout_Utilisateur.ComboBox1.Text
.Cells(LastLg, 4) = Usf_Ajout_Utilisateur.TextBox3.Text
End If
End With
MsgBox "Enregistrement terminé!", vbExclamation
Unload Me
End Sub
Pièces jointes
Dernière édition: