Probème avec IF...THEN...ELSEIF

MisterT

XLDnaute Occasionnel
Bonjour:),
Est-ce que quelqu'un accepte de m'aider en m'informant du problème avec le code plus bas, ce serait très apprécié ?

Avec ce code, je veux qu'une fois qu'un des 3 MsgBox soit lu et cliqué OK, que la ligne suivante soit celle de TextBox12 = "".

Cela fonctionne comme le code est montré ayant seulement les 2 lignes du IF...THEN actives. Dès que je rends l'une ou l'autre des lignes ELSEIF active, la prochaine ligne lue après le clique du OK du MsgBox est celle du END IF au lieu d'être celle de TextBox12. Je ne comprens pas !!!


Code:
If TextBox6 <= 5 And (CDbl(TextBox12.Value) < 35.3 Or CDbl(TextBox12.Value) > 82.4) Then
             MsgBox " The value in should be between 35.3 Lb and 82.4 Lb"
    
         'ElseIf TextBox6 > 5 And TextBox6 <= 8 And (CDbl(TextBox12.Value) < 34.1 Or CDbl(TextBox12.Value) > 79.5) Then
            'MsgBox " The value should be between 34.1 Lb and 79.5 Lb"
    
         'ElseIf TextBox6 > 8 And (CDbl(TextBox12.Value) < 33 Or CDbl(TextBox12.Value) > 76.9) Then
            'MsgBox " The value should be between 33 Lb and 76.9 Lb"[/COLOR]
    
         TextBox12 = ""
         TextBox5 = ""
         Cancel = True
         Exit Sub
End If

Merci à celui qui prendra le temps et ses connaissances pour m'aider !
MisterT
 

Paritec

XLDnaute Barbatruc
Re : Probème avec IF...THEN...ELSEIF

Bonjour Mister T
VB:
If TextBox6 <= 5 And (CDbl(TextBox12.Value) < 35.3 Or CDbl(TextBox12.Value) > 82.4) Then
             MsgBox " The value in should be between 35.3 Lb and 82.4 Lb":goto 1
    
         ElseIf TextBox6 > 5 And TextBox6 <= 8 And  (CDbl(TextBox12.Value) < 34.1 Or CDbl(TextBox12.Value) > 79.5)  Then
            MsgBox " The value should be between 34.1 Lb and 79.5 Lb":goto 1
    
         ElseIf TextBox6 > 8 And (CDbl(TextBox12.Value) < 33 Or CDbl(TextBox12.Value) > 76.9) Then
            MsgBox " The value should be between 33 Lb and 76.9 Lb":goto 1
    
1         TextBox12 = ""
         TextBox5 = ""
         Cancel = True
         Exit Sub
End If

si c'est pas cela tu mets le fichier ce sera plus simple!!
a+
Papou:eek:
 
Dernière édition:

MisterT

XLDnaute Occasionnel
Re : Probème avec IF...THEN...ELSEIF

Merci beaucoup Papou, cela fonctionne #1, c'est très gentil !!!

Dans la même SUB j'ai plusieurs autres CONDITIONS comme celles montrées, selon toi, au niveau performance et/ou efficacité, est-ce que le GOTO est l'option à privilégier ou il serait préférable d'utiliser une PUBLIC SUB contenant uniquement ce code auquel le GOTO faisait référence comme ci-bas ?

Code:
Public Sub EFFACE_TextBox_5et12()
    TextBox12 = ""
    TextBox5 = ""
    Cancel = True
    Exit Sub
End Sub

Private Sub TextBox12_Exit(ByVal Cancel As MSForms.ReturnBoolean)
If TextBox6 <= 5 And (CDbl(TextBox12.Value) < 35.3 Or CDbl(TextBox12.Value) > 82.4) Then
        MsgBox " The value should be between 35.3 Lb and 82.4 Lb"
        EFFACE_TextBox_5et12
      ElseIf TextBox6 > 5 And TextBox6 <= 8 And (CDbl(TextBox12.Value) < 34.1 Or CDbl(TextBox12.Value) > 79.5) Then
        MsgBox " The value should be between 34.1 Lb and 79.5 Lb"
        EFFACE_TextBox_5et12
      ElseIf TextBox6 > 8 And (CDbl(TextBox12.Value) < 33 Or CDbl(TextBox12.Value) > 76.9) Then
        MsgBox " The value should be between 33 Lb and 76.9 Lb"
        EFFACE_TextBox_5et12
End if

J'ai tenté en vain de mettre de la couleur dans le code...

Merci et Bonne journée !:):)

MisterT
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Probème avec IF...THEN...ELSEIF

Re Mister t le forum
j'avais oublié de te dire que si tu utilises une macro pour vider, et que tu mets en bout de ligne call efface je ne sais plus, à la fin de cette macro tu reprendras le cours de la macro en cours et je ne pense pas que c'est ce que tu cherches
a+
papou:eek:
 

MisterT

XLDnaute Occasionnel
Re : Probème avec IF...THEN...ELSEIF

Re-bonjour Papou ! :)

En fait, oui je souhaite que le retour de la Macro EFFACE... se fasse dans la macro en cours puisqu'il y a d'autres blocs de CONDITIONS similaires à celui de l'exemple.

Donc, si j'utilise le GOTO, je devrai les identifier différemment (GOTO 1, GOTO 2, etc.) après chaque groupe de CONDITIONS. C'est pour cela que j'ai pensé à l'option de faire une Macro à part.

Qu'en penses-tu ?

Je dois quitter pour le reste de la journée et regraderai la réponse à mon retour...

Merci encore Papou !:)
MisterT
 

Paritec

XLDnaute Barbatruc
Re : Probème avec IF...THEN...ELSEIF

Re Mister t le forum
c'est sur que sans fichier pas simple de comprendre mais si tu veux utiliser des macros n'oublies pas à la fin de ta condition si tu écris Call Efface je sais plus et derrière :exit sub
comme cela tu ne reprendras pas le déroulement des autres conditions
a+
papou:eek:
 

MisterT

XLDnaute Occasionnel
Re : Probème avec IF...THEN...ELSEIF

Bonjour Papou! :)

Merci encore pour ta réponse !

Je comprends que ça ne soit pas facile à comprendre sans le fichier et surtout que c'est moi qui ai fait une erreur en disant que ça devrait reprendre le déroulement après la MACRO EFFACE...car effectivement il doit y avoir le EXIT SUB pour ne pas reprendre le déroulement des autres conditions, mon erreur, désolé !

Merci pour ton aide, très apprécié !

Bonne journée,
MisterT:eek:
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 370
Messages
2 087 693
Membres
103 641
dernier inscrit
anouarkecita2