Démêleer l'utilisation de plusieur if puis de else

Résolu
cricri_b34 Messages postés 223 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 15 février 2006 - 4 août 2004 à 02:35
cricri_b34 Messages postés 223 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 15 février 2006 - 4 août 2004 à 17:57
bon J'ai créer un programme avec uniquement un textbox nommé: text1

et un bouton nommé command1

j'aimerais que mon programme réagisse a toute sorte de text que l'utilisateur aurait pu tapper.

donc il faut utiliser if

je comprend utiliser if, mais je comprend pas comment en utiliser un deuxième

et n'on plus comment terminer avec else:

bon, je commence:

Private Sub Command1_Click()
if text1.text = "salut" then
msgbox "salut"
End if
End Sub

ca marche super bien...
je continue en ajoutant un deuxième if:

Private Sub Command1_Click()
if text1.text = "salut" then
msgbox "salut"
if text1.text = "comment ca va" then
msgbox "bien"
End if
End Sub

ca marche pas....

quelqu'un pourrait m'espliquer pourquoi

et aussi commen utiliser else
??

merci d'avance

9 réponses

cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
4 août 2004 à 03:03
ca ne fonctionne pas comme ca
plusieurs cas de figure :
un test unique
if ....... then
...
...
end if

si tu veux refaie un if then
et bien tu devras avoir de nouveau un end if

tu peux avoir 2 solution possibles :
If ... then 'Si ... alors
...
...
Else' sinon
...
...
end if 'j'ai fini mon/mes si


tu peux avoir une multitudes de conditions :
if ... then 'si ... alors
...
...
elseif .... then ' sinon si ... alors
elseif .... then ' sinon si ... alors
end if 'fin des conditions


et derniers connu pour ma part
if ...then'si ... alors
...
...
elseif ... then ' sinon si ... alors
elseif ... then ' sinon si ... alors
else ' alors si il n'y a vraiment rien d'autre
end if 'fin des conditions


ca doit etre tout, donc un if a toujours un end if

tu peux toujours aussi faire comme ceci d'un maniere simple

if ...then
.......if.... then
.......end if
end if


je passe la methode du
if .... and ..... then
end if

ca doit etre a peu pres tout
puis si tu veux tu peux te pencher sur les "select case"..."end select"

Bonne prog, poele_a_frire@hotmail.com
liquide
3
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
4 août 2004 à 09:27
Petite correction par rapport à ce qu'a dit Liquide ! (décidément, je t'en veux !)
1 If n'a pas toujours de End If. EN effet, si la clause Then ( et éventuellement la clause Else sont sur la meme ligne, on ne doit pas mettre de End If
Ex :
If A 1 Then A2 Else A = 0


Par contre ...
If A = 1 Then
  A = 2
Else
  A = 0
End If


A noter un dernier petit conseil ... Quand tu code un If ... qui n'est pas de la première forme, (donc sur plusieurs lignes, donc avec un EndIf) Dès que tu tapes ton "If A = 1 Then", et que tu passes à la ligne suivante, tapes immédiatement après ton "End If". Retourne ensuite entre la ligne du If et celle du End If, pour coller le code de ta clause Then, et éventuellement taper une clause Else.
Cela te permettra de ne jamais oublier un End If : Cela arrive trop souvent et dans des If Then imbriqué, cela peut etre chiant à déboguer. Pour finir, ne pas oublier d'indenter correctement le code, cela facilite grandement la lecture. Cela ne se voit pas dans les ex de code sur ce site, mais le code des clause Then et Else, peut ( doit ?) être indenter d'au moins 1 niveau par rapport au If, au Else et au EndIf, qui sont sur le même niveau d'indentation.
Encore une fois ce n'est pas obligatoire, mais bien pratique

Christophe R.
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
4 août 2004 à 13:15
Salut,
J'ai l'impression qu'on oublie Select Case qui me semble plus approprié pour le cas exposé car les if, elseif plus ou moins imbriqués conduisent souvent à des prises de tête quand il faut débugger.

Ex :

Select case Text1.text
case "salut"
msgbox "salut"
case "comment ça va"
msgbox "bien"
case else
msgbox "je ne comprend pas"
end select
Cordialement

CanisLupus
3
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
4 août 2004 à 13:19
Liquide a ouvert la voie du Select Case dasn son msg, mais je ne l'ai pas relevé ! C'est effectivement une très bonne piste dans ce contexte

Christophe R.
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
4 août 2004 à 13:36
J'avais bien vu mais il ne l'avait pas développé.
Cela dit, cela n'enlève rien aux capacités pédagogiques de liquide que je salue cordialement.

CanisLupus
3
cricri_b34 Messages postés 223 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 15 février 2006
4 août 2004 à 17:21
est ce que avec un select case, c possibe d'utiliser else??

si oui... comment?

si non... ya t'il un équivalent?
3
cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
4 août 2004 à 17:24
(dsl je n'ai pas pu revenir avant, cause plantage avec vbfrance sur IE)

select case ...
case ..
case ..
case else
end select

Bonne prog, poele_a_frire@hotmail.com
liquide
3
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
4 août 2004 à 17:29
Pas besoin de else dans un select case, sauf un case else au cas ou tous les cas ne sont pas traités.

Mais, tu peux toujours insérer un if...then...else....endif dedans :

select case Tavariable
case Tavaleur1
.......
case Tavaleur2
.......
case Tavaleur3
if ........ then
.......
else
......
end if
case else
...........
end select

Cordialement

CanisLupus
3
cricri_b34 Messages postés 223 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 15 février 2006
4 août 2004 à 17:57
merci a tous...
j'suis un expert dans ça maintenant!!
3
Rejoignez-nous