suite =E0 une modif d'un programme je dois utiliser la fonction case
select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite
for i =3D 2 to 450
pour la colonne B
case ("B"&i) =3D "off" et case("C"& i) =3D 0 to 20 alors BZ & i =3D 1
case ("B"&i) =3D "off" et case("C"& i) =3D 21 to 30 alors BZ & i =3D 2
case ("B"&i) =3D "off" et case("C"& i) =3D 31 to 40 alors BZ & i =3D3
case ("B"&i) =3D "off" et case("C"& i) =3D 41 to 50 alors BZ & i =3D 4
case ("B"&i) =3D "off" et case("C"& i) =3D 51 to 60 alors BZ & i =3D 5
case ("B"&i) =3D "s/off" et case ("B"&i) =3D "mdr" et case("C"& i) =3D 0 to
10 alors BZ & i =3D "I"
case ("B"&i) =3D "s/off" et case ("B"&i) =3D "mdr" et case("C"& i) =3D 0 to
10 alors BZ & i =3D "P"
case ("B"&i) =3D "s/off" et case ("B"&i) =3D "mdr" et case("C"& i) =3D 0 to
10 alors BZ & i =3D "B"
case ("B"&i) =3D "s/off" et case ("B"&i) =3D "mdr" et case("C"& i) =3D 0 to
10 alors BZ & i =3D "S"
case ("D"&i) =3D "maj" et case("C"& i) =3D 0 to 10 alors BZ & i =3D "-"
case ("D"&i) =3D "maj" et case("C"& i) =3D 11 to 40 alors BZ & i =3D"N"
case ("D"&i) =3D "maj" et case("C"& i) =3D 41 to 50 alors BZ & i =3D"+"
case ("D"&i) =3D "maj" et case("C"& i) =3D 51 to 60 alors BZ & i =3D "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou =3D 0 ou vide alors CA&i
=3D "NNN"
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
billy bob
Bonjour,
tu ne peux pas effectuer un Select Case avec deux condition en même temps et elle doit toujours porter sur la même variable, il faut les imbriquer à mon avis :
exple:
Select Case cells("B"&i).value
Case "off"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = 1
Case 21 to 30 cells("BZ"&i).value = 2
Case 31 to 40 cells("BZ"&i).value = 3
Case 41 to 50 cells("BZ"&i).value = 4
Case 51 to 60 cells("BZ"&i).value = 5
End select
Case "s/off", "mdr"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = "I"
Case 21 to 30 cells("BZ"&i).value = "P"
Case 31 to 40 cells("BZ"&i).value = "B"
Case 41 to 50 cells("BZ"&i).value = "S"
End select
Case else
End select
pour la condition sur la colonne D cela ressemble plus à un if sur la valeur en colonne D puis un Select Case sur C, si tu veux qu'elle ne se déroule que lorsque la valeur en B n correspond à aucun des cas cité plus haut, tu peux l'intégrer dans Case Else.
J'espère avoir répondu à ta question
Billy Bob
On 27 fév, 10:46, magic-dd wrote:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1 case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2 case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3 case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4 case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "I" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "P" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "B" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-" case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N" case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+" case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i = "NNN"
voila en esperant trouver de l'aide
merci par avance.
Bonjour,
tu ne peux pas effectuer un Select Case avec deux condition en même
temps et elle doit toujours porter sur la même variable,
il faut les imbriquer à mon avis :
exple:
Select Case cells("B"&i).value
Case "off"
Select Case cells("C"&i).value
Case 0 to 20
cells("BZ"&i).value = 1
Case 21 to 30
cells("BZ"&i).value = 2
Case 31 to 40
cells("BZ"&i).value = 3
Case 41 to 50
cells("BZ"&i).value = 4
Case 51 to 60
cells("BZ"&i).value = 5
End select
Case "s/off", "mdr"
Select Case cells("C"&i).value
Case 0 to 20
cells("BZ"&i).value = "I"
Case 21 to 30
cells("BZ"&i).value = "P"
Case 31 to 40
cells("BZ"&i).value = "B"
Case 41 to 50
cells("BZ"&i).value = "S"
End select
Case else
End select
pour la condition sur la colonne D cela ressemble plus à un if sur la
valeur en colonne D puis un Select Case sur C,
si tu veux qu'elle ne se déroule que lorsque la valeur en B n
correspond à aucun des cas cité plus haut, tu peux l'intégrer dans
Case Else.
J'espère avoir répondu à ta question
Billy Bob
On 27 fév, 10:46, magic-dd <ciolan...@gmail.com> wrote:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case
select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite
for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1
case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2
case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3
case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4
case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "I"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "P"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "B"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-"
case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N"
case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+"
case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i
= "NNN"
tu ne peux pas effectuer un Select Case avec deux condition en même temps et elle doit toujours porter sur la même variable, il faut les imbriquer à mon avis :
exple:
Select Case cells("B"&i).value
Case "off"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = 1
Case 21 to 30 cells("BZ"&i).value = 2
Case 31 to 40 cells("BZ"&i).value = 3
Case 41 to 50 cells("BZ"&i).value = 4
Case 51 to 60 cells("BZ"&i).value = 5
End select
Case "s/off", "mdr"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = "I"
Case 21 to 30 cells("BZ"&i).value = "P"
Case 31 to 40 cells("BZ"&i).value = "B"
Case 41 to 50 cells("BZ"&i).value = "S"
End select
Case else
End select
pour la condition sur la colonne D cela ressemble plus à un if sur la valeur en colonne D puis un Select Case sur C, si tu veux qu'elle ne se déroule que lorsque la valeur en B n correspond à aucun des cas cité plus haut, tu peux l'intégrer dans Case Else.
J'espère avoir répondu à ta question
Billy Bob
On 27 fév, 10:46, magic-dd wrote:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1 case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2 case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3 case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4 case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "I" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "P" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "B" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-" case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N" case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+" case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i = "NNN"
voila en esperant trouver de l'aide
merci par avance.
billy bob
Bonjour,
tu ne peux pas effectuer un Select Case avec deux conditions en même temps et elle doit toujours porter sur la même variable, il faut les imbriquer à mon avis :
exple:
Select Case cells("B"&i).value
Case "off"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = 1
Case 21 to 30 cells("BZ"&i).value = 2
Case 31 to 40 cells("BZ"&i).value = 3
Case 41 to 50 cells("BZ"&i).value = 4
Case 51 to 60 cells("BZ"&i).value = 5
End select
Case "s/off", "mdr"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = "I"
Case 21 to 30 cells("BZ"&i).value = "P"
Case 31 to 40 cells("BZ"&i).value = "B"
Case 41 to 50 cells("BZ"&i).value = "S"
End select
Case else
End select
pour la condition sur la colonne D cela ressemble plus à un if sur la valeur en colonne D puis un Select Case sur C, si tu veux qu'elle ne se déroule que lorsque la valeur en B n correspond à aucun des cas cité plus haut, tu peux l'intégrer dans Case Else.
J'espère avoir répondu à ta question
Billy Bob
On 27 fév, 10:46, magic-dd wrote:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1 case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2 case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3 case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4 case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "I" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "P" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "B" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-" case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N" case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+" case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i = "NNN"
voila en esperant trouver de l'aide
merci par avance.
Bonjour,
tu ne peux pas effectuer un Select Case avec deux conditions en même
temps et elle doit toujours porter sur la même variable,
il faut les imbriquer à mon avis :
exple:
Select Case cells("B"&i).value
Case "off"
Select Case cells("C"&i).value
Case 0 to 20
cells("BZ"&i).value = 1
Case 21 to 30
cells("BZ"&i).value = 2
Case 31 to 40
cells("BZ"&i).value = 3
Case 41 to 50
cells("BZ"&i).value = 4
Case 51 to 60
cells("BZ"&i).value = 5
End select
Case "s/off", "mdr"
Select Case cells("C"&i).value
Case 0 to 20
cells("BZ"&i).value = "I"
Case 21 to 30
cells("BZ"&i).value = "P"
Case 31 to 40
cells("BZ"&i).value = "B"
Case 41 to 50
cells("BZ"&i).value = "S"
End select
Case else
End select
pour la condition sur la colonne D cela ressemble plus à un if sur la
valeur en colonne D puis un Select Case sur C,
si tu veux qu'elle ne se déroule que lorsque la valeur en B n
correspond à aucun des cas cité plus haut, tu peux l'intégrer dans
Case Else.
J'espère avoir répondu à ta question
Billy Bob
On 27 fév, 10:46, magic-dd <ciolan...@gmail.com> wrote:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case
select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite
for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1
case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2
case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3
case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4
case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "I"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "P"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "B"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o
10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-"
case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N"
case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+"
case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i
= "NNN"
tu ne peux pas effectuer un Select Case avec deux conditions en même temps et elle doit toujours porter sur la même variable, il faut les imbriquer à mon avis :
exple:
Select Case cells("B"&i).value
Case "off"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = 1
Case 21 to 30 cells("BZ"&i).value = 2
Case 31 to 40 cells("BZ"&i).value = 3
Case 41 to 50 cells("BZ"&i).value = 4
Case 51 to 60 cells("BZ"&i).value = 5
End select
Case "s/off", "mdr"
Select Case cells("C"&i).value
Case 0 to 20 cells("BZ"&i).value = "I"
Case 21 to 30 cells("BZ"&i).value = "P"
Case 31 to 40 cells("BZ"&i).value = "B"
Case 41 to 50 cells("BZ"&i).value = "S"
End select
Case else
End select
pour la condition sur la colonne D cela ressemble plus à un if sur la valeur en colonne D puis un Select Case sur C, si tu veux qu'elle ne se déroule que lorsque la valeur en B n correspond à aucun des cas cité plus haut, tu peux l'intégrer dans Case Else.
J'espère avoir répondu à ta question
Billy Bob
On 27 fév, 10:46, magic-dd wrote:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1 case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2 case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3 case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4 case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "I" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "P" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "B" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 t o 10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-" case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N" case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+" case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i = "NNN"
voila en esperant trouver de l'aide
merci par avance.
LE TROLL
Bonjour,
Je réponds en VB, peut être que ça marche, ça dépend ?
Tu dis: case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1
Case x and y: goto 10 Case x and y: call z case condition1 and condition2: fait_ceci
Voici ce que dit l'aide de vb pour le select case en vbA
Select Case, instruction, exemple Cet exemple utilise l'instruction Select Case pour déterminer la valeur d'une variable. La deuxième locution Case contient la valeur de la variable qui est évaluée ; seule l'instruction qui lui est associée est exécutée.
Dim Number Number = 8 ' Initialise la variable. Select Case Number ' Évalue Number. Case 1 To 5 ' Le nombre est compris entre 1 et 5 inclus. Debug.Print "Entre 1 et 5" ' La locution Case suivante est la seule qui prend la ' valeur True. Case 6, 7, 8 ' Le nombre est compris entre 6 et 8. Debug.Print "Entre 6 et 8" Case 9 To 10 ' Le nombre est 9 ou 10. Debug.Print "Supérieur à 8" Case Else ' Autres valeurs. Debug.Print "Non compris entre 1 et 10" End Select -------------------
Si tu as deux conditions à tester, il faut les réunir dans une variable texte commune en formatant les valeur numérique (0 devant par exemple), sinon, il faut mettre deux select, ou autres, un par test!
exemple, tu as un numérique maxi 3 chiffres + un alphanumérique, disons: dim x as long dim a as string
tu fais:
dim union as string x = 3 a = bonjour union = format(x,"000") & a select case union case "003bonjour": call procedureB -------------------
Par contre, ce que tu testes: ("B"&i) = "off" Ben en VB ça passerait sans doute pas, mais là je ne sais pas, théoriquement, tu ne peux tester que des résultats d'élément, une cellule (je présume), le résultat d'une variable (chiffre ou mot). Si c'est une valeur, elle se met directement = 1, mais si c'est alphanumérique, ça se met entre guillemets "un", et s'il y a déjà des guillemets, ils se double ""un"" = recherche "un"...
Manifestement, dans ton test, tu veux tester un élément fixe, et un élément indicé (0 to 20), alors on pourrait faire:
select case element_fixe case "x" for i = 0 to 20 if element_mobile(i) = ce_que_tu_veux then call ta_procedure exit For ' au retour tu sors de ta boucle, si tu veux ' ou if element(i) = ce_que_tu_veux then goto mon_label ' mais là, tu ne reviendras plus dans ta boucle next i case y ... end select
Le select case ne teste que si la condition est remplie, et uniquement celle-ci
Je ne sais pas si je t'aide ???
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "magic-dd" a écrit dans le message de news:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1 case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2 case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3 case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4 case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "I" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "P" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "B" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-" case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N" case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+" case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i = "NNN"
voila en esperant trouver de l'aide
merci par avance.
Bonjour,
Je réponds en VB, peut être que ça marche, ça
dépend ?
Tu dis:
case ("B"&i) = "off" et case("C"& i) = 0 to 20
alors BZ & i = 1
Case x and y: goto 10
Case x and y: call z
case condition1 and condition2: fait_ceci
Voici ce que dit l'aide de vb pour le select case
en vbA
Select Case, instruction, exemple
Cet exemple utilise l'instruction Select Case pour
déterminer la valeur d'une variable. La deuxième
locution Case contient la valeur de la variable
qui est évaluée ; seule l'instruction qui lui est
associée est exécutée.
Dim Number
Number = 8 ' Initialise la variable.
Select Case Number ' Évalue Number.
Case 1 To 5 ' Le nombre est compris entre 1 et 5
inclus.
Debug.Print "Entre 1 et 5"
' La locution Case suivante est la seule qui prend
la
' valeur True.
Case 6, 7, 8 ' Le nombre est compris entre 6 et
8.
Debug.Print "Entre 6 et 8"
Case 9 To 10 ' Le nombre est 9 ou 10.
Debug.Print "Supérieur à 8"
Case Else ' Autres valeurs.
Debug.Print "Non compris entre 1 et 10"
End Select
-------------------
Si tu as deux conditions à tester, il faut les
réunir dans une variable texte commune en
formatant les valeur numérique (0 devant par
exemple), sinon, il faut mettre deux select, ou
autres, un par test!
exemple, tu as un numérique maxi 3 chiffres + un
alphanumérique, disons:
dim x as long
dim a as string
tu fais:
dim union as string
x = 3
a = bonjour
union = format(x,"000") & a
select case union
case "003bonjour": call procedureB
-------------------
Par contre, ce que tu testes: ("B"&i) = "off"
Ben en VB ça passerait sans doute pas, mais là je
ne sais pas, théoriquement, tu ne peux tester que
des résultats d'élément, une cellule (je présume),
le résultat d'une variable (chiffre ou mot). Si
c'est une valeur, elle se met directement = 1,
mais si c'est alphanumérique, ça se met entre
guillemets "un", et s'il y a déjà des guillemets,
ils se double ""un"" = recherche "un"...
Manifestement, dans ton test, tu veux tester un
élément fixe, et un élément indicé (0 to 20),
alors on pourrait faire:
select case element_fixe
case "x"
for i = 0 to 20
if element_mobile(i) = ce_que_tu_veux then
call ta_procedure
exit For ' au retour tu sors de ta boucle, si
tu veux
' ou
if element(i) = ce_que_tu_veux then goto
mon_label
' mais là, tu ne reviendras plus dans ta
boucle
next i
case y ...
end select
Le select case ne teste que si la condition est
remplie, et uniquement celle-ci
Je ne sais pas si je t'aide ???
--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"magic-dd" <ciolandre@gmail.com> a écrit dans le
message de news:
09184ee3-a361-4450-8d0c-e0a3e3fba932@72g2000hsu.googlegroups.com...
bonjour
suite à une modif d'un programme je dois utiliser
la fonction case
select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je
souhaite
for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20
alors BZ & i = 1
case ("B"&i) = "off" et case("C"& i) = 21 to 30
alors BZ & i = 2
case ("B"&i) = "off" et case("C"& i) = 31 to 40
alors BZ & i =3
case ("B"&i) = "off" et case("C"& i) = 41 to 50
alors BZ & i = 4
case ("B"&i) = "off" et case("C"& i) = 51 to 60
alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et
case("C"& i) = 0 to
10 alors BZ & i = "I"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et
case("C"& i) = 0 to
10 alors BZ & i = "P"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et
case("C"& i) = 0 to
10 alors BZ & i = "B"
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et
case("C"& i) = 0 to
10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10
alors BZ & i = "-"
case ("D"&i) = "maj" et case("C"& i) = 11 to 40
alors BZ & i ="N"
case ("D"&i) = "maj" et case("C"& i) = 41 to 50
alors BZ & i ="+"
case ("D"&i) = "maj" et case("C"& i) = 51 to 60
alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0
ou vide alors CA&i
= "NNN"
Je réponds en VB, peut être que ça marche, ça dépend ?
Tu dis: case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1
Case x and y: goto 10 Case x and y: call z case condition1 and condition2: fait_ceci
Voici ce que dit l'aide de vb pour le select case en vbA
Select Case, instruction, exemple Cet exemple utilise l'instruction Select Case pour déterminer la valeur d'une variable. La deuxième locution Case contient la valeur de la variable qui est évaluée ; seule l'instruction qui lui est associée est exécutée.
Dim Number Number = 8 ' Initialise la variable. Select Case Number ' Évalue Number. Case 1 To 5 ' Le nombre est compris entre 1 et 5 inclus. Debug.Print "Entre 1 et 5" ' La locution Case suivante est la seule qui prend la ' valeur True. Case 6, 7, 8 ' Le nombre est compris entre 6 et 8. Debug.Print "Entre 6 et 8" Case 9 To 10 ' Le nombre est 9 ou 10. Debug.Print "Supérieur à 8" Case Else ' Autres valeurs. Debug.Print "Non compris entre 1 et 10" End Select -------------------
Si tu as deux conditions à tester, il faut les réunir dans une variable texte commune en formatant les valeur numérique (0 devant par exemple), sinon, il faut mettre deux select, ou autres, un par test!
exemple, tu as un numérique maxi 3 chiffres + un alphanumérique, disons: dim x as long dim a as string
tu fais:
dim union as string x = 3 a = bonjour union = format(x,"000") & a select case union case "003bonjour": call procedureB -------------------
Par contre, ce que tu testes: ("B"&i) = "off" Ben en VB ça passerait sans doute pas, mais là je ne sais pas, théoriquement, tu ne peux tester que des résultats d'élément, une cellule (je présume), le résultat d'une variable (chiffre ou mot). Si c'est une valeur, elle se met directement = 1, mais si c'est alphanumérique, ça se met entre guillemets "un", et s'il y a déjà des guillemets, ils se double ""un"" = recherche "un"...
Manifestement, dans ton test, tu veux tester un élément fixe, et un élément indicé (0 to 20), alors on pourrait faire:
select case element_fixe case "x" for i = 0 to 20 if element_mobile(i) = ce_que_tu_veux then call ta_procedure exit For ' au retour tu sors de ta boucle, si tu veux ' ou if element(i) = ce_que_tu_veux then goto mon_label ' mais là, tu ne reviendras plus dans ta boucle next i case y ... end select
Le select case ne teste que si la condition est remplie, et uniquement celle-ci
Je ne sais pas si je t'aide ???
-- Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "magic-dd" a écrit dans le message de news:
bonjour
suite à une modif d'un programme je dois utiliser la fonction case select case mais je ne m'en sort pas
donc je vais vous explique r en francais ce que je souhaite for i = 2 to 450
pour la colonne B
case ("B"&i) = "off" et case("C"& i) = 0 to 20 alors BZ & i = 1 case ("B"&i) = "off" et case("C"& i) = 21 to 30 alors BZ & i = 2 case ("B"&i) = "off" et case("C"& i) = 31 to 40 alors BZ & i =3 case ("B"&i) = "off" et case("C"& i) = 41 to 50 alors BZ & i = 4 case ("B"&i) = "off" et case("C"& i) = 51 to 60 alors BZ & i = 5
case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "I" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "P" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "B" case ("B"&i) = "s/off" et case ("B"&i) = "mdr" et case("C"& i) = 0 to 10 alors BZ & i = "S"
case ("D"&i) = "maj" et case("C"& i) = 0 to 10 alors BZ & i = "-" case ("D"&i) = "maj" et case("C"& i) = 11 to 40 alors BZ & i ="N" case ("D"&i) = "maj" et case("C"& i) = 41 to 50 alors BZ & i ="+" case ("D"&i) = "maj" et case("C"& i) = 51 to 60 alors BZ & i = "++"
si c&i ou e&i ou f&i ou g&i est non numeric ou = 0 ou vide alors CA&i = "NNN"
voila en esperant trouver de l'aide
merci par avance.
magic-dd
avec tout ca j'ai pu adapter à ma demande merci beaucoup de votre aide
@ bientot
avec tout ca j'ai pu adapter à ma demande
merci beaucoup de votre aide
avec tout ca j'ai pu adapter à ma demande merci beaucoup de votre aide
@ bientot
LE TROLL
de rien :o)
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "magic-dd" a écrit dans le message de news:
avec tout ca j'ai pu adapter à ma demande merci beaucoup de votre aide
@ bientot
de rien :o)
--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"magic-dd" <ciolandre@gmail.com> a écrit dans le
message de news:
9d256640-d6ae-4083-a3f9-80820523a889@e60g2000hsh.googlegroups.com...
avec tout ca j'ai pu adapter à ma demande
merci beaucoup de votre aide
-- Merci beaucoup, au revoir et à bientôt :o) ------ Romans, logiciels, email, site personnel http://irolog.free.fr/joe.htm ------------------------------------------------------------------------------------ "magic-dd" a écrit dans le message de news:
avec tout ca j'ai pu adapter à ma demande merci beaucoup de votre aide