VivoBaggio
Messages postés140Date d'inscriptionjeudi 27 octobre 2005StatutMembreDernière intervention23 janvier 2009
-
5 juil. 2007 à 14:25
VivoBaggio
Messages postés140Date d'inscriptionjeudi 27 octobre 2005StatutMembreDernière intervention23 janvier 2009
-
5 juil. 2007 à 15:31
Bonjour à tous. Voilà, j'ai un soucis au niveau d'un algo. Sur mon bas de page, je dois afficher des variables selon si elles sont renseignées. Par exemple, j'ai quatre variables appelées "Remise1, Remise2.. Remise4. Chaque variable correspond à un type d'article. Et je dois afficher ces variables dans une seule textbox. Le soucis se situe au niveau des virgules, espaces et points.
Ce qui donne en ex : "Voici les remises du jour : Remise1, Remise2, Remise3, Remise4. Bonne journée."
Les contraintes sont qu'au minimum une variable est obligatoirement affichée, que si une d'entre elle ou 2 ou 3 ont pour valeur 0, elle ne sont pas affichées, et que l'ordre des remises ne doit pas changé.1er cas : Remise1 9, Remise2 0, Remise3 = 0, Remise4 = 56
Ca nous donne : "Voici les remises du jour : Remise1, Remise4. Bonne journée."2e cas : Remise1 9, Remise2 0, Remise3 = 0, Remise4 = 0
Ca nous donne : "Voici les remises du jour : Remise1. Bonne journée."
Le point a remplacé la virgule de la Remise1.
Voilà l'algo que j'ai réalisé pour vous donner une base.
Merci d'avance.
Dim nb as integer
nb = 0
If (PERSO_ATOLSOLDEHIV_REMISE1<>0) Then
value = "-" & PERSO_ATOLSOLDEHIV_REMISE1 & "% sur points jaunes" & ", "
nb = nb + 1
else
nb = nb + 2
End If
If (PERSO_ATOLSOLDEHIV_REMISE2<>0) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE2 & "% sur points verts" & ", "
nb = nb + 1
else
nb = nb + 2
End If
If (PERSO_ATOLSOLDEHIV_REMISE3<>0) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE3 & "% sur points roses" & ", "
nb = nb + 1
End If
If (PERSO_ATOLSOLDEHIV_REMISE4<>0) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE4 & "% sur points bleus."
End If
VivoBaggio
Messages postés140Date d'inscriptionjeudi 27 octobre 2005StatutMembreDernière intervention23 janvier 2009 5 juil. 2007 à 15:31
C'est bon. Ne chercher plus pour si c'est encore le cas. J'ai réussi à m'en sortir en décomposant bien étape par étape. Pour ceux qui veulent le code, voici et merci pour ceux qui m'ont aidé :
Dim cpt as Integer
Dim i as Integer
cpt = 0
i = 1
If (PERSO_ATOLSOLDEHIV_REMISE1<>0) Then
cpt = cpt + 1
End If
If (PERSO_ATOLSOLDEHIV_REMISE2<>0) Then
cpt = cpt + 1
End If
If (PERSO_ATOLSOLDEHIV_REMISE3<>0) Then
cpt = cpt + 1
End If
If (PERSO_ATOLSOLDEHIV_REMISE4<>0) Then
cpt = cpt + 1
End If
value = ""
If (PERSO_ATOLSOLDEHIV_REMISE1<>0 AND i<>cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE1 & "% sur points jaunes" & ", "
Else If (PERSO_ATOLSOLDEHIV_REMISE1<>0 AND i=cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE1 & "% sur points jaunes" & "."
End If
End If
i = i + 1
If (PERSO_ATOLSOLDEHIV_REMISE2<>0 AND i<>cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE2 & "% sur points verts" & ", "
Else If (PERSO_ATOLSOLDEHIV_REMISE2<>0 AND i=cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE2 & "% sur points verts" & "."
End If
End If
i = i + 1
If (PERSO_ATOLSOLDEHIV_REMISE3<>0 AND i<>cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE3 & "% sur points roses" & ", "
Else If (PERSO_ATOLSOLDEHIV_REMISE3<>0 AND i=cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE3 & "% sur points roses" & "."
End If
End If
i = i + 1
If (PERSO_ATOLSOLDEHIV_REMISE4<>0 AND i<>cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE4 & "% sur points bleus" & ", "
Else If (PERSO_ATOLSOLDEHIV_REMISE1<>0 AND i=cpt) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE4 & "% sur points bleus" & "."
End If
End If
bilaloch
Messages postés556Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention31 octobre 20191 5 juil. 2007 à 14:32
Je ne comprends pas très bien ta question, premièrement. Deuxièmement, explique nous pourquoi tu nous donnes un code qui n'a pas grand chose à voir avec le reste... Enfin... Sois plus clair, je veux dire.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 5 juil. 2007 à 14:34
Faut pas forcément vouloir tout faire en même temps
Décompose ton code, et effectue les opérations comme si c'est toi qui les faisaient à la main :
Dim nb as integer
nb = 0
If (PERSO_ATOLSOLDEHIV_REMISE1<>0) Then
value = "-" & PERSO_ATOLSOLDEHIV_REMISE1 & "% sur points jaunes"
nb = nb + 1
else
nb = nb + 2
End If
If (PERSO_ATOLSOLDEHIV_REMISE2<>0) Then
if value <>"" then value = value & ", "
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE2 & "% sur points verts"
nb = nb + 1
else
nb = nb + 2
End If
if value <>"" then value = value & ", "
If (PERSO_ATOLSOLDEHIV_REMISE3<>0) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE3 & "% sur points roses"
nb = nb + 1
End If
if value <>"" then value = value & ", "
If (PERSO_ATOLSOLDEHIV_REMISE4<>0) Then
value = value & "-" & PERSO_ATOLSOLDEHIV_REMISE4 & "% sur points bleus"
End If
if value <>"" then value = value & "."
VivoBaggio
Messages postés140Date d'inscriptionjeudi 27 octobre 2005StatutMembreDernière intervention23 janvier 2009 5 juil. 2007 à 14:37
En gros, selon les remises qui sont renseignées, je les affiche avec la virgule et l'espace ou le point. Et comme je débute dans l'algorithmie, je suis loin d'être correct dans mon raisonnement