boucle for a l'interieur d'un select case possible en vb6?[RESOLU] - VB/VBA/VBS - Programmation
Marsh Posté le 07-06-2007 à 10:29:33
Oui on peut mettre une boucle For dans une clause Case de la structure de programmation Select Case... en VB6.
Mais ça ne me semble pas convenir à l'usage que tu veux en faire.
Pour peu que je l'ai compris en tout cas.
Il faudrait que tu détailles un peu ton besoin stp.
Marsh Posté le 07-06-2007 à 10:59:12
En fait ce que j'aimerais faire c'est incorporer une boucle for entre select case et le premier case voici exemple:
Code :
|
mais quand je fais ça mon programme ne se lance pas (message d'erreur) et je ne sais pas ce qui le gêne.
en ce moment chaque cas 5,10,15,20...sont ecrit explicitement mais pour la finalité de mon programme faut que je trouve une solution d'automatiser cela parce que par la suite je ne vais plus connaitre cantidad,ca va etre un parametre à renseigner au lancement du programme.
voilivoilou
en esperant avoir été clair.
merci d'avance
fabientoupeti
Marsh Posté le 07-06-2007 à 11:21:31
je viens de lire plus precisement le message d'erreur, il me dit qu'il n'est pas possible de mettre autre chose qu'un commentaire entre select case et le premier case...ça ne m'arrange pas cela.
avant a la place de l'instruction select case j'utilisais l'instruction if...elseif mais ce n'es pas non plus possible d'introduire une boucle for juste avant le elseif...
là vraiment je ne sais pas comment solutionner mon probleme??
je vais continuer à chercher mais si quelqu'un a une idee je suis preneur parce que là pour l'instant j'avoue ne pas trop savoir comment faire.
voilivoilou
merci d'avance pour les aides que vous pourrez m'apporter
fabientoupeti
Marsh Posté le 07-06-2007 à 14:23:21
Pourquoi ne pas faire un if dans la boucle for si ta boucle for est executée quelque soit le case
Code :
|
Sinon, si tu veux explicitement regarder tous les 5, essaie d'adapter un For x = To ... Step 5 ou de jouer avec les modulo.
Marsh Posté le 07-06-2007 à 14:45:16
Merci dante4024 pour ton aide
En fait je me prends la tete parce que c'est un peu plus compliqué (ou peut etre qu'à force de buter sur ce probleme je ne suis plus tres clair avec ce que je cherche).
je m'explique j'ai un fichier texte avec env 12000 lignes, la 1º colonne contient les chiffres que je veux analyser d'où t1
le truc c'est que le 5 va etre amener à changer, cela depend de ce que l'on rentre au debut du prog (normalement ça doit varier entre 1 et 5)
j'ai changé 5 par ls
Code :
|
mais avec ce prog rien ne s'ecrit dans mes fichiers texte??
quelqu'un pourrait il m'aider pour me dire où je fais une erreur parce que tout seul je ne m'en sort pas.
merci d'avance pour vos aides et merci pour celles qu vous avez pu me donner jusqu'à présent
voici la partie de prog qui fonctionne avec un nombre de case fixe (20) mais dans mon prog je ne vais pas savoir avt de le lancer le nombre de case a analyser...et mon probleme vient de là, c'est pour ça que j'aimerais automatiser l'analyser des cas
Code :
|
Marsh Posté le 07-06-2007 à 15:09:15
Si j'ai tout compris, le bout de prog faire :
Si t1 = ls * k, Alors on remplit le tableau k
ca revient à dire qu'on remplit le tableau (t1 / ls) non ? (en s'assurant que ca donne bien un entier (je ne sais pas si \ donne la division entière))
Plutot que de chercher le bon X qui marche (par ta boucle For), autant le calculer de manière directe puisque cela semble possible.
Cela donnerai juste alors :
Code :
|
Marsh Posté le 08-06-2007 à 11:14:55
merci bcp pour ton aide dante 4024, grace a toi j'ai pu trouver une solution a mon probleme!
voici le bout de prog qui fonctionne impeccable, si ca peut aider quelqu'un
Code :
|
merci encore
fabientoupeti
y a t il un truc a faire en particulier pour dire que ce probleme est resolu?
Marsh Posté le 08-06-2007 à 11:24:08
Editer le titre pour rajouter Resolu ou Repondu.
le "If X = CInt(X)" me parait bizarre par contre ^_^. On doit pouvoir faire mieux pour tester si c'est un entier mais je sais pas trop comment.
Petet mettre directement
X = CInt(LeTableau(j)(0) / ls) et zapper le if
Mais ca reste du peaufinage.
Marsh Posté le 08-06-2007 à 11:39:11
jai peur que X = CInt(LeTableau(j)(0) / ls) ne fasse pas ce que je veux, je m'explique j'ai un fichier texte avec sur chaque ligne un chiffre pour la premier colonne, ce chiffre peut etre entier ou non.
et si j'ai bien compris CInt converti ce qu'il a entre () en entier...et moi ce n'est pas ca que je veux faire.
je veux juste reperer les entiers et travailler sur leurs lignes.
voilivoilou
merci encore pour tes aides
fabientoupeti
Marsh Posté le 08-06-2007 à 14:22:41
C'est la fonction Int() tout court qu'il te faut :
If Int(X) = X Then
Marsh Posté le 07-06-2007 à 09:03:15
bonjour,
j'aimerais savoir si il etait possible de créer une boucle for à l'interieur d'un select case en vb6.
je veux faire ça parce que je ne connais pas à priori le nombre de cas que je vais devoir tester.
si cela n'est pas possible, y aurait-il une autre solution pour arriver à un résultat similaire (autres boucles...)?
merci d'avance pour vos réponses
Fabientouepti
Message édité par fabientoupeti le 08-06-2007 à 11:34:39