MsgBox

Résolu/Fermé
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 - 29 août 2014 à 20:13
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 - 30 août 2014 à 03:23
Bonsoir

Je construit un formulaire et je bute sur le msgbox de validation

Dans le formulaire j'ai des texbox et des combobox
Je voudrais qu'à la validation , toutes les cases soient remplies SAUF deux texbox. (Texbox8 et 9) et le combobox 2
je me suis inspiré de ce code ( merci Via55) mais il englobe tous les textbox et combobox de l'uf ..

For Each c In Me.Controls
Select Case TypeName(c)
Case "TextBox", "ComboBox" ' dans le cas où c'est un TBox ou un CBox
If c.Value = "" Then ' si un des Tbox ou Cbx est vide: message et retour à UF
MsgBox "Validation impossible, saisie incomplète!"
Exit Sub
End If
End Select
Next c

Je sillicite votre aide pour le réecrire et mettre une execption sur les texbox 8 et 9 et le combobox 2.

Bien cordialement

3 réponses

Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
29 août 2014 à 20:38
Salut le Forum

Tu peux utiliser la propriété Tag des contrôles.
    For Each Ctrl In Me.Controls
If Ctrl.Tag = "fill" And Ctrl.Value = "" Then
MsgBox "Validation impossible, saisie incomplète!": Exit Sub
End If
Next Ctrl

Mytå
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
29 août 2014 à 21:46
Merci Myta pour ton aide

mais le code ne fonctionne pas .

j'ai essayé

For Each Ctrl In Me.Controls
If Ctrl.Tag = "" And Ctrl.Value = "" Then
MsgBox "Validation impossible, saisie incomplète!": Exit Sub
End If
Next Ctrl

mais à la validation du formulaire il me renvoie en erreur à la macro
0
Mytå Messages postés 2973 Date d'inscription mardi 20 janvier 2009 Statut Contributeur Dernière intervention 20 décembre 2016 949
30 août 2014 à 03:23
Re le Forum

Il faut remplir la propriété TAG des contrôles a être rempli avec le mot 'fill' dans mon exemple.

Mytå
0
julia Namor Messages postés 524 Date d'inscription jeudi 27 mars 2014 Statut Membre Dernière intervention 13 janvier 2024 33
29 août 2014 à 23:02
Je m'en sortie avec ce code.


Private Sub CmdRESULT_Click()

Dim ctrl As Control, ctrlerr As Control
Dim erreur As Boolean

For Each ctrl In Me.Controls
erreur = False
If textbox1.Text = "" Or textbox2.Text = "" Or textbox3.Text = "" Or ComboBox1.Value = "" Or ComboBox2.Value = "" Or ComboBox3.Value = "" Or ComboBox4.Value = "" Or COMBObox5.Value = "" Then

erreur = True
Set ctrlerr = ctrl
Exit For
End If

Next ctrl

If erreur = True Then
MsgBox "Vous n'avez pas rempli toutes les zones"
ctrlerr.SetFocus
Set ctrlerr = Nothing

End If


Merci beaucoup
0