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: