conditions And dans les If - VB/VBA/VBS - Programmation
Marsh Posté le 07-03-2007 à 19:30:09
if not monObjet is nothing then
if monObjet.xx=xx then
'tu fais ce que tu veux
end if
else
'goto fin
end if
'fin:
end sub
'goto fin et fin: peuvent peut etre te servir
j'espere que ca te vas
Marsh Posté le 07-03-2007 à 20:19:02
Oui c'est bien ce que je pensais il faut imbriquer 2 If c'est ça que je trouve dommage car ça fait repeter 2 fois l'instruction Else.
Par contre j'avais pas pensé aux goto pour éviter justement de répeter 2 fois le Else.
Mais bon ça serait quand meme plus propre avec un seul If.
Marsh Posté le 08-03-2007 à 11:28:08
non la seul solution c'est les if imbriquer
tu peut pas fair un case la dessus
Marsh Posté le 08-03-2007 à 13:11:59
20stylz a écrit : If not monObjet is nothing And monObjet.xx = xx Then ... la seconde condition ne soit pas testée si la première est fausse. |
ce n'est pas déjà le cas ?
mets des parentheses dans ton test if, mais si l'une des deux conditions est fausse, ca ne rentrera pas dans la boucle.
Marsh Posté le 08-03-2007 à 16:40:38
Non le problème ce n'est pas de rentrer dans la boucle, si une des condition est fausse le then se sera pas executée. Le problème c'est le test de la seconde condition (monObjet.xx = xx) qui plante si l'objet n'existe pas.
Et malheureusement les parenthèses ne changent rien
Marsh Posté le 08-03-2007 à 17:44:28
avec un "On Error Resume Next"
non ?
autre possibilité
sub 20stylz()
If not monObjet is nothing And monObjet.xx = xx Then
on error goto fin
'ici ce que tu veux faire
end if
fin:
end sub
à tester
Marsh Posté le 07-03-2007 à 19:13:43
Bonjour à tous,
J'ai une question au sujet des If en VB :
Y a t il un moyen pour que les If se comportent comme dans les autres languages basés sur le C notamment, c'est-à-dire que dans une instruction du style : If not monObjet is nothing And monObjet.xx = xx Then ... la seconde condition ne soit pas testée si la première est fausse.
Cette instruction plantera en VB si l'objet n'existe pas car le test sur la propriété plantera. Par contre l'équivalent en C++ ou en java ne plantera pas car si l'objet n'existe pas la seconde condition ne sera pas testée.
Je ne sais pas si j'ai été clair mais en tous cas merci de vos réponses et désolé si la question a déjà été posée.