Tester si des contôles ont été saisis dans mon userform

  • Initiateur de la discussion Initiateur de la discussion MANUTR808
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

MANUTR808

Guest
Bonjour le forum,

Un petit challenge !

J'ai un userform dans lequel j'ai plusieurs contrôles (textbox et combo).

J'aimerai lorsque je clique sur mon bouton de validation

1- Effectuer un contôle pour savoir si le Textbox 1, 2, 3 sont remplis (les autres sont facultatifs)
2- Si ce n'est pas le cas, afficher un message qui demande de saisir tel ou tel champ.

Exemple : si j'ai 3 textbox et que seul le N°2 est saisi le message devra m'afficher "Veuillez saisir le champ N°1 et N°3".

Est-ce faisable ? Si oui comment ?

Merci à tous
 
Bonjour MANUTR808, le forum

essaie ce code

A+

Dim Txt_Message As String
Txt_Message = ""
If textbox1.Value = "" Then
If textbox2.Value = "" And textbox3.Value = "" Then
Txt_Message = "Veuillez saisir les champs N°1, N°2 et N°3"
Else
If textbox2.Value = "" Then
Txt_Message = "Veuillez saisir les champs N°1 et N°2"
Else
If textbox3.Value = "" Then
Txt_Message = "Veuillez saisir les champs N°1 et N°3"
Else
Txt_Message = "Veuillez saisir le champs N°1"
End If

End If
End If
Else
If textbox2.Value = "" Then
If textbox3.Value = "" Then
Txt_Message = "Veuillez saisir les champs N°2 et N°3"
Else
Txt_Message = "Veuillez saisir le champ N°2"
End If
Else
If textbox3.Value = "" Then
Txt_Message = "Veuillez saisir le champ N°3"
End If
End If
End If
If Txt_Message > "" Then MsgBox Txt_Message: Exit Sub
 
C'est pas mal du tout ton code !

Le problème, c'est que j'ai du mal à le transposer dans mon code.
Ton code part de 3 textbox (d'après mon exemple) mais mon cas lui en comporte 5.

Peux-tu m'expliquer comment cela fonctionne, j'essayerai de mettre les mains dans le camboui.

Merci à toi.

A +
 
Re bonjour

voila un code plus simple ou tu pourras ajouter facilement des Textbox

A+

Dim Txt_Message As String
Txt_Message = ""

If textbox5.Value = "" Then Txt_Message = "N°5"

If textbox4.Value = "" Then
If Txt_Message = "" Then
Txt_Message = "N°4"
Else
Txt_Message = "N°4, " & Txt_Message
End If
End If

If textbox3.Value = "" Then
If Txt_Message = "" Then
Txt_Message = "N°3"
Else
Txt_Message = "N°3, " & Txt_Message
End If
End If

If textbox2.Value = "" Then
If Txt_Message = "" Then
Txt_Message = "N°2"
Else
Txt_Message = "N°2, " & Txt_Message
End If
End If

If textbox1.Value = "" Then
If Txt_Message = "" Then
Txt_Message = "N°1"
Else
Txt_Message = "N°1, " & Txt_Message
End If
End If

If Txt_Message > "" Then
MsgBox "Veuillez saisir le(s) champ(s) " & Txt_Message
Exit Sub
End If
 
Bonsoir Yeahou, Mantr808, le Forum

Comme je fais justement une démo dans un autre fils avec des Textboxes et je viens d'y adjoindre des Contrôles sur les TextBoxs...

Je vous en fais profiter, car si il y a beaucoup de TextBox la méthode de Yeahou peut vite devenir ingérable...

Bonne Fin de Journée
@+Thierry
 

Pièces jointes

Re bonjour manutr808, @+thierry, le forum

Un code moins ingérable avec un grand nombre de textbox

A+

Dim Txt_Message As String, Compteur As Integer
Txt_Message = ""
For Compteur = 5 To 1 Step -1
If Controls("textbox" & Compteur).Value = "" Then
If Txt_Message = "" Then
Txt_Message = "N°" & Compteur
Else
Txt_Message = "N°" & Compteur & ", " & Txt_Message
End If
End If
Next Compteur
If Not (Txt_Message = "") Then
MsgBox "Veuillez saisir le(s) champ(s) " & Txt_Message
Exit Sub
End If
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
712
Réponses
38
Affichages
1 K
Réponses
8
Affichages
759
Retour