MsgBox

Résolu
julia Namor Messages postés 532 Statut Membre -  
Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   -
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

  1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
     
    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
  2. julia Namor Messages postés 532 Statut Membre 33
     
    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
    1. Mytå Messages postés 4246 Date d'inscription   Statut Contributeur Dernière intervention   957
       
      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
  3. julia Namor Messages postés 532 Statut Membre 33
     
    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