problème de select ..... if then else .... (je ne comprend pas!!!!! ) - VB/VBA/VBS - Programmation
Marsh Posté le 27-04-2004 à 14:07:32
Question idiote: passe est-il bien déclaré en boolean, explicitement ?
Marsh Posté le 27-04-2004 à 14:11:54
Oui il est déclaré en booléen. Le problème c'est qu'il passe dans le else quand il faut et donc c'est bon mais il ne veux pas passer dans le then et mettre mon x=der_ligne_kembs_g4 ce qui laisse x=0 et lance le deboggeur.
Marsh Posté le 27-04-2004 à 15:59:42
Et tu le remets bien à False a chaque fois, après chaque passage dans la boucle?
Marsh Posté le 27-04-2004 à 16:14:38
Je crois que j'ai résolu le problème grâce à un autre forum.
Enfin pour le moment ça a l'air de marcher.
Apparemment, ce serait parce que j'avais pas mis en haut de mon module Option Explicit, mais vu que je ne sais pas à quoi ça sert la prochaine fois je le mettrais partout.
Marsh Posté le 27-04-2004 à 17:08:21
Option Explicit ça sert à forcer la déclaration des variables, alors si tu ne l'avait pas et que tu me dis que la variable "passe" était déclarée Boolean, j'ai un gros doute...
Marsh Posté le 28-04-2004 à 16:10:09
Je comprend que tu puisse avoir un doute mais bon maintenant ça marche alors tant mieux.
Marsh Posté le 28-04-2004 à 16:24:32
En mettant option explicit, il considère que la variable est obligatoirement locale, alors que sinon, tu l'as peut-être déclarée globale ailleurs?
Marsh Posté le 27-04-2004 à 13:57:38
Bonjour
J'ai un problème vraiment incompréhensible, je fais un select (d'un parametre qui peut etre g1,g2,g3,g4) et dans chaque cas je teste si le deuxieme parametre est a vrai ou faux.
Donc voici mon code:
Select Case groupe
Case "G1":
If passe Then
debx = der_ligne_G1
x = der_ligne_G1
MsgBox "argpresent"
Else
debx = der_ligne_kembs_G1
x = der_ligne_kembs_G1
End If
Case "G2":
If passe Then
debx = der_ligne_G2
x = der_ligne_G2
MsgBox "argpresent"
Else
debx = der_ligne_kembs_G2
x = der_ligne_kembs_G2
End If
Case "G3":
If passe Then
debx = der_ligne_G3
x = der_ligne_G3
MsgBox "argpresent"
Else
debx = der_ligne_kembs_G3
x = der_ligne_kembs_G3
End If
Case "G4":
If Not passe Then
MsgBox "c bon" & der_ligne_kembs_G4
debx = der_ligne_kembs_G4
x = der_ligne_kembs_G4
Else
debx = der_ligne_G4
x = der_ligne_G4
MsgBox " pas de kembs du g4"
End If
End Select
ancienx = x
MsgBox x
Et donc j'ai testé pour le g4 mais le problème serait le même pour les autres, si passe est à vrai x vaut bien der_ligne_g4 mais si jamais passe est a faux x vaut 0 (alors que j'ai testé mon der_ligne_kembs_g4 vaut toujours 1) ce qui est du je crois au fait qu'il ne passe pas dans le THEN à ce moment là.
Si quelqu'un pouvait m'aider ce serait sympa (me dire où est mon erreur ou me donner une solution équivalente) parce que là ca fait kan meme un bout de temps que je suis la dessus.
Merci.
PS: J'ai testé aussi si par hasard mon paramètre booléen n'était pas bon mais sur un autre IF qui n'est pas dans le select ça fonctionne correctement.