XL 2019 Simplifier des conditions formulées avec is then

  • Initiateur de la discussion Initiateur de la discussion donpopo
  • 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 !

donpopo

XLDnaute Occasionnel
Bonjour le forum,

dans une procédure, je dois tester certaines condition sur 4 textbox.

Les textbox vont deux par deux:
si une des deux est vide et l'autre remplie, alors sortir de la procédure.
Idem pour mes deux autres textbox.

J'ai écrit ce qui suit, mais cela me parait lourd et répétitif.

VB:
    If TextBox202.Value = "" And TextBox200 <> "" Then
        MsgBox "Données erronées"
        Exit Sub
    End If
    If TextBox203.Value = "" And TextBox201 <> "" Then
        MsgBox "Données erronées"
        Exit Sub
    End If
    If TextBox202.Value <> "" And TextBox200 = "" Then
        MsgBox "Données erronées"
        Exit Sub
    End If
    If TextBox203.Value <> "" And TextBox201 = "" Then
        MsgBox "Données erronées"
        Exit Sub
    End If

N'y a t'il pas une méthode plus simple et plus claire que cela ?

Merci d'avance,
donpopo
 
Bonjour donpopo,

à tester, il y aura surement mieux.

VB:
If (TextBox202.Value = "" And TextBox200 <> "") Or (TextBox202.Value <> "" And TextBox200 = "") Then
        MsgBox "Données erronées"
        Exit Sub
    End If
    If (TextBox203.Value = "" And TextBox201 <> "") Or (TextBox203.Value <> "" And TextBox201 = "") <> "" Then
        MsgBox "Données erronées"
        Exit Sub
    End If
 
Bonsoir le fil,

Si j'ai bien compris
NB: Renseignez les propriétés Tag au préalable
2 et 4 pour TextBox1 et TextBox2
3 et 5 pour TextBox3 et TextBox4
VB:
Private Sub CommandButton1_Click()
Dim c As Control, i%, j%
For Each c In Me.Controls
If TypeName(c) = "TextBox" Then
    Select Case c.Tag * 1 Mod 2
    Case 0
    a = Len(c) > 0: i = i + a
    Case 1
    b = Len(c) > 0: j = j + b
    End Select
End If
Next
If i = -1 Or j = -1 Then MsgBox "Données erronées", vbCritical, "Erreur!"
End Sub
 
- 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

Discussions similaires

Réponses
5
Affichages
232
Réponses
2
Affichages
169
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
649
Retour