Vérification Textbox remplies avec 2 boucles

Bonjour à tous,

Ce matin je bloque sur un point crucial de mon programme. Je cherche à vérifier que toutes mes textboxs soient remplies pour rendre un test "true".

En textboxs j'ai :

  • Textbox1, Textbox2......, Textbox18
    Textbox1A, Textbox1B, Textbox1C ......., Textbox8A, Textbox8B, Textbox8C

Je passe donc par deux variables n et o car d'un côté on va jusque 18 (n) et de l'autre jusqu'à 8 (o)

Voici ma boucle :

Function Test_rempli() As Boolean
'On regarde si ttes les textboxs sont remplies
    Dim n%, o%
    Test_rempli = False
    For n = 1 To 18
    For o = 1 To 8

        If Me.Controls("TextBox" & n) = "" Or Me.Controls("TextBox" & o & "A") = "" Or Me.Controls("TextBox" & o & "B") = "" Or Me.Controls("TextBox" & o & "C") = "" Then
            Test_rempli = False
            Exit For
        Else
            Test_rempli = True
        End If
    Next o
    Next n
End Function

Je dois avoir un problème quelque part mais je ne le vois pas. C'est à dire que la vérification des texboxs + chiffre + lettre fonctionne, mais celle avec uniquement textbox+chiffre ne fonctionne pas....

Je peux éventuellement fournir un fichier très réduit si nécessaire, n'hésitez pas si je n'ai pas été très clair.

Merci d'avance à tous ceux qui prendront le temps de me lire

Kitesurf

Re,

J'ai réussi à corriger le problème par bricolage, je suis passer par deux fonctions différentes n et o puis je l'ai est rassemblé dans une fonction globale après. Ça fonctionne mais je n'ai pas trouver la solution pour l'imbrication des deux boucles... Si quelqu'un a tout de même une idée ?

Bonne journée à vous

Bonjour Kiteseurf, bonjour le forum,

Pas compris pourquoi deux variables. Il me semble qu'avec une seule ça devrait fonctionner :

Function Test_rempli() As Boolean
Dim n As Byte
Test_rempli = False
For n = 1 To 18
    If Me.Controls("TextBox" & n) = "" Or Me.Controls("TextBox" & n & "A") = "" Or Me.Controls("TextBox" & n & "B") = "" Or Me.Controls("TextBox" & n & "C") = "" Then
        Test_rempli = False
        Exit For
    Else
        Test_rempli = True
    End If
Next n
End Function

Si cela concerne TOUTES tes textboxes, une autre manière :

Function Test_rempli_2() As Boolean
Dim CTRL As Control

Test_rempli_2 = False
For Each CTRL In Me.Controls
    If TypeOf CTRL Is MSForms.TextBox Then
        If CTRL.Value = "" Then
            Test_rempli_2 = False
            Exit For
        End If
    Else
        Test_rempli_2 = True
    End If
Next CTRL
End Function

Re,

Deux variables car je n'ai pas le même nombre de textboxs Je ne vais pas jusqu'à 18 pour celles qui ont des lettres mais seulement jusqu'à 8.... Sinon ça marcherais, mais j'avais peut-être un autre truc qui déconnais ailleurs et ce serait donc pour ça que ma boucle ne marchait pas...

Vu que j'ai fais tout un montage avec une première fonction puis une deuxième et enfin l'association des deux j'ai pas envie de tout recommencer

Merci quand même Thauthème de t'y être penché, peut-être que ça fonctionne avec la double variable maintenant

Re,

Oui pardon je navet (si, si, dans ce cas on peut...) pas vu que les boucles étaient différentes. De 1 à 8 et de 1 à 18... La seconde proposition, boucle sur toutes les textboxes, ne conviendrait-elle pas ?

Si ça fonctionne, mais en fait dans mon prog en entier je verifie si les textboxs sont toutes remplies, si leurs fonds est blanc, s'il est rouge et toutes ces conditions entament d'autres procédures donc je suis parti sur un seul et même modèle mais ça fonctionne !

Merci de ton aide thauthème c'est super sympa et j'ai compris l'astuce pour la prochaine fois

Bonne journée à toi et merci encore

Rechercher des sujets similaires à "verification textbox remplies boucles"