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

  • Initiateur de la discussion MANUTR808
  • Date de début
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
 
Y

Yeahou

Guest
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
 
M

MANUTR808

Guest
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 +
 
Y

Yeahou

Guest
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
 
@

@+Thierry

Guest
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

  • USF_Saisie_MultiSheets-V01.01.zip
    27.4 KB · Affichages: 28
Y

yeahou

Guest
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
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 848
Membres
103 973
dernier inscrit
okoazer