Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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
 
Bonjour, MP59,
Si je comprends bien, les parenthèses changent l'ordre des priorités. J'avais essayé, mais sans parenthèses et cela ne donnait rein de concret.
Merci, je vais tester.
A+
 
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
 
Bonsoir.
Simplement :
VB:
If (TextBox202.Value = "" Xor TextBox200.Value = "") Or _
   (TextBox203.Value = "" Xor TextBox201.Value = "") Then
        MsgBox "Données erronées"
        Exit Sub: End If
 
- 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
233
Réponses
2
Affichages
169
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
651
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…