Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon
programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste
Case Is >= 800
' Instruction 1
Case (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est bien
executé
Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien
executer
Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
François Picalausa
"Jean-Michel" a écrit dans le message de news:e7tVs%
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est bien executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Bonjour/soir,
Dans tu select case, tu demande à VB "Est-ce que reste = True?" En effet (reste >= 400 And reste < 800) sera vrai (True) pour 500 et l'opérateur par défaut est C'est donc la même chose que d'écrire: Select Case reste Case Is >= 800 ' Instruction 1 Case Is = (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans ce cas ci, ce que je te conseille de faire est d'employer le case Else.
Select Case reste Case Is >= 800 ' Instruction 1 Case Is < 400 ' Instruction 3 Case Else ' Instruction 2 End Select
Ou pour rester sur des test True/False, on pourrait faire: Select Case True Case reste > 800 Debug.Print "reste > 800" Case reste >= 400 And reste <= 800 Debug.Print "reste >= 400 and reste <= 800" Case reste < 400 Debug.Print "reste < 400" End Select -- François Picalausa (MVP VB) FAQ VB : http://faq.vb.free.fr MSDN : http://msdn.microsoft.com
"Jean-Michel" <jeneveuxpasdespam_coconuts@genial.net> a écrit dans le
message de news:e7tVs%23SqDHA.3612@TK2MSFTNGP11.phx.gbl
C'est en fait mon Select Case
Select Case reste
Case Is >= 800
' Instruction 1
Case (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1
est bien executé
Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien
executer
Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Bonjour/soir,
Dans tu select case, tu demande à VB "Est-ce que reste = True?"
En effet (reste >= 400 And reste < 800) sera vrai (True) pour 500 et
l'opérateur par défaut est C'est donc la même chose que d'écrire:
Select Case reste
Case Is >= 800
' Instruction 1
Case Is = (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans ce cas ci, ce que je te conseille de faire est d'employer le case Else.
Select Case reste
Case Is >= 800
' Instruction 1
Case Is < 400
' Instruction 3
Case Else
' Instruction 2
End Select
Ou pour rester sur des test True/False, on pourrait faire:
Select Case True
Case reste > 800
Debug.Print "reste > 800"
Case reste >= 400 And reste <= 800
Debug.Print "reste >= 400 and reste <= 800"
Case reste < 400
Debug.Print "reste < 400"
End Select
--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"Jean-Michel" a écrit dans le message de news:e7tVs%
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est bien executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Bonjour/soir,
Dans tu select case, tu demande à VB "Est-ce que reste = True?" En effet (reste >= 400 And reste < 800) sera vrai (True) pour 500 et l'opérateur par défaut est C'est donc la même chose que d'écrire: Select Case reste Case Is >= 800 ' Instruction 1 Case Is = (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans ce cas ci, ce que je te conseille de faire est d'employer le case Else.
Select Case reste Case Is >= 800 ' Instruction 1 Case Is < 400 ' Instruction 3 Case Else ' Instruction 2 End Select
Ou pour rester sur des test True/False, on pourrait faire: Select Case True Case reste > 800 Debug.Print "reste > 800" Case reste >= 400 And reste <= 800 Debug.Print "reste >= 400 and reste <= 800" Case reste < 400 Debug.Print "reste < 400" End Select -- François Picalausa (MVP VB) FAQ VB : http://faq.vb.free.fr MSDN : http://msdn.microsoft.com
scraper
Dans son post news:e7tVs%,
Jean-Michel a absolument tenu à nous dire :
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est bien executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Comment je pourrai faire pour que ca marche !
salut !
peut être (?) :
case else if ls <400 then instruction 3 : else instruction 2 end select
??
--
scraper
Dans son post news:e7tVs%23SqDHA.3612@TK2MSFTNGP11.phx.gbl,
Jean-Michel a absolument tenu à nous dire :
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon
programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste
Case Is >= 800
' Instruction 1
Case (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1
est bien executé
Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien
executer
Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Comment je pourrai faire pour que ca marche !
salut !
peut être (?) :
case else
if ls <400 then instruction 3 : else instruction 2
end select
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est bien executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Comment je pourrai faire pour que ca marche !
salut !
peut être (?) :
case else if ls <400 then instruction 3 : else instruction 2 end select
??
--
scraper
+The_Taco+
Pour ce genre de cas, moi j'irais avec l'opérateur IF. SELECT CASE s'utilise mieux quand le cas ne possède par d'opération logique. C'est mon opinion bien sûr!
if reste >= 800 then opérations elseif (reste >= 400 and reste < 800) then opérations else opérations end if
cheers
"Jean-Michel" a écrit dans le message de news:e7tVs%
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est
bien
executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Comment je pourrai faire pour que ca marche !
Merci d'avance !
Pour ce genre de cas, moi j'irais avec l'opérateur IF. SELECT CASE s'utilise
mieux quand le cas ne possède par d'opération logique. C'est mon opinion
bien sûr!
if reste >= 800 then
opérations
elseif (reste >= 400 and reste < 800) then
opérations
else
opérations
end if
cheers
"Jean-Michel" <jeneveuxpasdespam_coconuts@genial.net> a écrit dans le
message de news:e7tVs%23SqDHA.3612@TK2MSFTNGP11.phx.gbl...
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon
programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste
Case Is >= 800
' Instruction 1
Case (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est
bien
executé
Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien
executer
Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Pour ce genre de cas, moi j'irais avec l'opérateur IF. SELECT CASE s'utilise mieux quand le cas ne possède par d'opération logique. C'est mon opinion bien sûr!
if reste >= 800 then opérations elseif (reste >= 400 and reste < 800) then opérations else opérations end if
cheers
"Jean-Michel" a écrit dans le message de news:e7tVs%
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est
bien
executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Comment je pourrai faire pour que ca marche !
Merci d'avance !
Jean-Michel
Merci !
"François Picalausa" a écrit dans le message news:
"Jean-Michel" a écrit dans le message de news:e7tVs% > C'est en fait mon Select Case > > Select Case reste > Case Is >= 800 > ' Instruction 1 > Case (reste >= 400 And reste < 800) > ' Instruction 2 > Case Is < 400 > ' Instruction 3 > End Select > > Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 > est bien executé > Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien > executer > Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Bonjour/soir,
Dans tu select case, tu demande à VB "Est-ce que reste = True?" En effet (reste >= 400 And reste < 800) sera vrai (True) pour 500 et l'opérateur par défaut est > C'est donc la même chose que d'écrire: Select Case reste Case Is >= 800 ' Instruction 1 Case Is = (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans ce cas ci, ce que je te conseille de faire est d'employer le case
Else.
Select Case reste Case Is >= 800 ' Instruction 1 Case Is < 400 ' Instruction 3 Case Else ' Instruction 2 End Select
Ou pour rester sur des test True/False, on pourrait faire: Select Case True Case reste > 800 Debug.Print "reste > 800" Case reste >= 400 And reste <= 800 Debug.Print "reste >= 400 and reste <= 800" Case reste < 400 Debug.Print "reste < 400" End Select -- François Picalausa (MVP VB) FAQ VB : http://faq.vb.free.fr MSDN : http://msdn.microsoft.com
Merci !
"François Picalausa" <fpicalausa@chez.com> a écrit dans le message news:
O2B0VJTqDHA.488@tk2msftngp13.phx.gbl...
"Jean-Michel" <jeneveuxpasdespam_coconuts@genial.net> a écrit dans le
message de news:e7tVs%23SqDHA.3612@TK2MSFTNGP11.phx.gbl
> C'est en fait mon Select Case
>
> Select Case reste
> Case Is >= 800
> ' Instruction 1
> Case (reste >= 400 And reste < 800)
> ' Instruction 2
> Case Is < 400
> ' Instruction 3
> End Select
>
> Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1
> est bien executé
> Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien
> executer
> Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Bonjour/soir,
Dans tu select case, tu demande à VB "Est-ce que reste = True?"
En effet (reste >= 400 And reste < 800) sera vrai (True) pour 500 et
l'opérateur par défaut est > C'est donc la même chose que d'écrire:
Select Case reste
Case Is >= 800
' Instruction 1
Case Is = (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans ce cas ci, ce que je te conseille de faire est d'employer le case
Else.
Select Case reste
Case Is >= 800
' Instruction 1
Case Is < 400
' Instruction 3
Case Else
' Instruction 2
End Select
Ou pour rester sur des test True/False, on pourrait faire:
Select Case True
Case reste > 800
Debug.Print "reste > 800"
Case reste >= 400 And reste <= 800
Debug.Print "reste >= 400 and reste <= 800"
Case reste < 400
Debug.Print "reste < 400"
End Select
--
François Picalausa (MVP VB)
FAQ VB : http://faq.vb.free.fr
MSDN : http://msdn.microsoft.com
"François Picalausa" a écrit dans le message news:
"Jean-Michel" a écrit dans le message de news:e7tVs% > C'est en fait mon Select Case > > Select Case reste > Case Is >= 800 > ' Instruction 1 > Case (reste >= 400 And reste < 800) > ' Instruction 2 > Case Is < 400 > ' Instruction 3 > End Select > > Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 > est bien executé > Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien > executer > Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Bonjour/soir,
Dans tu select case, tu demande à VB "Est-ce que reste = True?" En effet (reste >= 400 And reste < 800) sera vrai (True) pour 500 et l'opérateur par défaut est > C'est donc la même chose que d'écrire: Select Case reste Case Is >= 800 ' Instruction 1 Case Is = (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans ce cas ci, ce que je te conseille de faire est d'employer le case
Else.
Select Case reste Case Is >= 800 ' Instruction 1 Case Is < 400 ' Instruction 3 Case Else ' Instruction 2 End Select
Ou pour rester sur des test True/False, on pourrait faire: Select Case True Case reste > 800 Debug.Print "reste > 800" Case reste >= 400 And reste <= 800 Debug.Print "reste >= 400 and reste <= 800" Case reste < 400 Debug.Print "reste < 400" End Select -- François Picalausa (MVP VB) FAQ VB : http://faq.vb.free.fr MSDN : http://msdn.microsoft.com
Patrice Henrio
je ne sais pas comment VB interprète les comparaisons de variable booléenne. A priori et à mon avis (400 et x<800) vaut toujours Faux
En fait dans ce cas voici ce qu'il faut coder si on ne veut pas utiliser de else
Select case reste case is>0 case 400 to 800 case is <400 end select L'ordre des case est important car les deux premières conditions valent Vrai pour reste0 et comme il semble que dans ce cas c'est la première condition qui doit se dérouler ...
"Jean-Michel" a écrit dans le message de news:e7tVs%
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est
bien
executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
Comment je pourrai faire pour que ca marche !
Merci d'avance !
je ne sais pas comment VB interprète les comparaisons de variable booléenne.
A priori et à mon avis (400 et x<800) vaut toujours Faux
En fait dans ce cas voici ce qu'il faut coder si on ne veut pas utiliser de
else
Select case reste
case is>0
case 400 to 800
case is <400
end select
L'ordre des case est important car les deux premières conditions valent Vrai
pour reste0 et comme il semble que dans ce cas c'est la première
condition qui doit se dérouler ...
"Jean-Michel" <jeneveuxpasdespam_coconuts@genial.net> a écrit dans le
message de news:e7tVs%23SqDHA.3612@TK2MSFTNGP11.phx.gbl...
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon
programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste
Case Is >= 800
' Instruction 1
Case (reste >= 400 And reste < 800)
' Instruction 2
Case Is < 400
' Instruction 3
End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est
bien
executé
Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien
executer
Mais meme si reste = 500 , l'instruction n'est pas executer !!!!
je ne sais pas comment VB interprète les comparaisons de variable booléenne. A priori et à mon avis (400 et x<800) vaut toujours Faux
En fait dans ce cas voici ce qu'il faut coder si on ne veut pas utiliser de else
Select case reste case is>0 case 400 to 800 case is <400 end select L'ordre des case est important car les deux premières conditions valent Vrai pour reste0 et comme il semble que dans ce cas c'est la première condition qui doit se dérouler ...
"Jean-Michel" a écrit dans le message de news:e7tVs%
Bonjour,
Apres de longue recherche avec mon debbug, j'ai chercher pourquoi mon programme ne marcha pas comme je le voulais :
C'est en fait mon Select Case
Select Case reste Case Is >= 800 ' Instruction 1 Case (reste >= 400 And reste < 800) ' Instruction 2 Case Is < 400 ' Instruction 3 End Select
Dans le cas ou reste est plus grand ou egale à 800, l'instruction 1 est
bien
executé Dans le cas ou reste est plus petit que 400, l'instruction 3 est bien executer Mais meme si reste = 500 , l'instruction n'est pas executer !!!!