Problem de si [vb6]

Résolu
warent Messages postés 7 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 18 novembre 2007 - 12 avril 2007 à 16:20
warent Messages postés 7 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 18 novembre 2007 - 13 avril 2007 à 14:02
slt a tous

g fai un if mais avec plein d'attribut (je croi ke c ca )
et il y en a tellement ki veu pa me l'afficher sur une seul ligne
donc le if c ca : If tabtemp(1) 8 Or tabtemp(1) 9 Or tabtemp(1) = 10 Or tabtemp(1) = 11 Or tabtemp(1) = 20 Or tabtemp(1) = 21 Or tabtemp(1) = 22 Or tabtemp(1) = 23 Or tabtemp(1) = 32 Or tabtemp(1) = 33 Or tabtemp(1) = 34 Or tabtemp(1) = 35 Or tabtemp(1) = 44 Or tabtemp(1) = 45 Or tabtemp(1) = 46 Or tabtemp(1) = 47 Or tabtemp(1) = 56 Or tabtemp(1) = 57 Or tabtemp(1) = 58 Or tabtemp(1) = 59 Or tabtemp(1) = 68 Or tabtemp(1) = 69 Or tabtemp(1) = 70 Or tabtemp(1) = 71 Or tabtemp(1) = 80 Or tabtemp(1) = 81 Or tabtemp(1) = 82 Or tabtemp(1) = 83 Or tabtemp(1) = 92 Or tabtemp(1) = 93 Or tabtemp(1) = 94 Or tabtemp(1) = 95 Or tabtemp(1) = 104 Or tabtemp(1) = 105 Or tabtemp(1) = 106 Or tabtemp(1) = 107 Or tabtemp(1) = 116 Or tabtemp(1) = 117 Or tabtemp(1) = 118 Or tabtemp(1) = 119 Or tabtemp(1) = 128 Or tabtemp(1) = 129 Or tabtemp(1) = 130 Or tabtemp(1) = 131 Or tabtemp(1) = 140 Or tabtemp(1) = 141 Or tabtemp(1) = 142 Or tabtemp(1) = 143
Then

en fait ca c une seul ligne (g redui la variable pour ke c tienne )

et je voudrai savoir si yavai pa moyen de faire une énumération de toute les valeurs plutot ke de metre un or a chaque foi et comment faire
pour l'intant ca marche comme ca mai c pa trop lisible...
c asser urgent car c pour un pti ke je doi présenté a la fin des vac
merci

9 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 avril 2007 à 18:09
De retour après plus d'une heure 30 à taquiner les pêcheurs ...
Je croyais pourtant t'avoir mis sur le chemin !

   n = tabtemp(1) Mod 12
  If n > 7 And n < 12 Then .... (ce que tu veux)....

Voilà m'sieu
3
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 avril 2007 à 16:24
Bonjour,

Je crois deviner d'où vient le problème !
Tu as peut-être rédigé ton code en SMS également, et VB ne comprend pas le SMS (nous ne voulons pas le comprendre non plus, ma foi... il y a un règlement, ici... lis-le donc, s'il te plait)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
12 avril 2007 à 16:25
Salut,
Evite le langage SMS s'il te plait.

Select Case tabtemp(1)
   Case 8, 9, 10, 11, 20, 21, 22, 23, 32, 33, 34, 35, 44, 45, 46, 47, 56, 57, 58, 59, 68, 69, 70, 71, 80, 81, 82, 83, 92, 93, 94, 95, 104, 105, 106, 107, 116, 117, 118, 119, 128, 129, 130, 131, 140, 141, 142, 143
       'Sa devrait faire la meme chose que tout ton ton IF (mais c'est pas beaucoup plus court)
       'TON CODE ICI
End Select , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 avril 2007 à 16:29
Pendant que tu médites, quand même :
Regarde donc comment tu "avances" dans ton tableau en partant de 8 : de 12 en douze, par groupe de 4 ...
Celà devrait te donner une idée, non ? (peut être en utilisant mod, quien sabe ?... attention : Mod n'est pas du SMS, mais à lire dans ton aide en ligne).
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
warent Messages postés 7 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 18 novembre 2007
12 avril 2007 à 17:19
merci pour vos reponses
je pense que je vais faire la solution de jrivet 


parce que je ne vois pas trop comment utiliser Mod (merci pour la précision : ça part de huit et ça va de douze en douze par groupe de quatre mais ça je le savais  et désolé de te décevoir mais ça ne m'avance pas plus )
salut
(j'espère que je n'ai pas fait trop de faute...)
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 avril 2007 à 19:00
Et, pour continuer à rigoler un peu : une autre façon encore , en 1 ligne :

If InStr("/8/9/10/11/", "/" & tabtemp(1) Mod 12 & "/") then .... (tes instructions)....
Tu piges ?
0
farouk_ch Messages postés 12 Date d'inscription jeudi 22 mars 2007 Statut Membre Dernière intervention 20 février 2009
12 avril 2007 à 19:38
Salut à tous,
je veux juste améliorer un peu le code proposé par Jmfmarques:
if (tabtemps(1)>=8) and (tabtemps(1)<=143) and ((tabtemps(1)-7)%12 <=4) then
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
12 avril 2007 à 21:54
Je ne sais pas ce qu'est ici le signe %, farouk....
Mais si, sous VB.Net, c'est l'équivalent du Mod de VB6, tu te plantes !
Essaie donc avec tabtemps(1) = 19 ( qu'il ne faut pas retenir et qui le serait avec ta méthode "perfectionnée" !...

A moins que ce % signifie autre chose que je ne devine pas, bien sur ....
0
warent Messages postés 7 Date d'inscription samedi 3 février 2007 Statut Membre Dernière intervention 18 novembre 2007
13 avril 2007 à 14:02
ba finalement la solution avec le mod est pas mal du tout c'est vraiment pas bete ( une chose est sur je n'y aurai pa penser tout seul )
c'est cour, (finalement) asser simple et efficace .
la reponse d'apres :
"If InStr("/8/9/10/11/", "/" & tabtemp(1) Mod 12 & "/") then .... (tes instructions)...."
ça je ne connait vraiment pas , il va faloir que je me penche dessus.peu etre pour une prochaine fois...
en tout cas Merci
 @+
0
Rejoignez-nous