Comment eviter plein de if ??? dans une boucle

Résolu
Signaler
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
-
bonjour , je doit faire un calcul entre 300 a 400 ligne chauque jour
dans c'est ligne j'ai des champ avec des numero entre 1 et 89
je vourais savoir si il y a une fasson plus facile que moi.
ici , je vous montre avec 4 chiffre different , je doit faire sa avec mes 89 numeros
c'est dans une base de donnée acces que je prend les données.
dans c'est ligne j'ai des departement et une case avec des prix , je voudrais faire le total de tout
par departement donc si j'ai le departement 10 qui est a 5 ? il me donne 50?
Merci d'avance , jespere que vous m'avez compris

Do Until rs.EOF = True


    If rs!numero_dep = 1 Then
    depart(1) = depart(1) + rs!total
    End If
   
    If rs!numero_dep = 5 Then
    depart(5) = depart(5) + rs!total
    End If
   
    If rs!numero_dep = 14 Then
    depart(14) = depart(14) + rs!total
    End If
   
    If rs!numero_dep = 15 Then
    depart(15) = depart(15) + rs!total
    End If
    
   
   
   
'tva 0%
If rs!tva = "0" Then
ro = ro + rs!total
End If
'tva 6%
If rs!tva = "6" Then
rob = Format(rob, "###00.00") + rs!total
End If
'tva
If rs!tva = "12" Then
rober = Format(rober, "###00.00") + rs!total
End If


If rs!tva = "21" Then
robe = robe + rs!total
End If


rs.MoveNext
Loop

6 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

tu peux utiliser Select Case :

Do Until rs.EOF = True

Select Case rs!numero_dep
    Case 1 : depart(1) = depart(1) + rs!total
    Case 5 : depart(5) = depart(5) + rs!total
    Case 14 : depart(14) = depart(14) + rs!total
    Case 15 : depart(15) = depart(15) + rs!total
End Select   
Select Case rs!tva
    Case "0" : ro = ro + rs!total
    Case "6" : rob = Format(rob, "###00.00") + rs!total
    Case "12" : rober = Format(rober, "###00.00") + rs!total
    Case "21" : robe = robe + rs!total
End Select

rs.MoveNext
Loop

@++

   Mortalino
Le mystérieux chevalier, "Provençal, le Gaulois"
Messages postés
9
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
8 août 2006

Essai en passent par une variable qui contiendra ton numero de departement



dim var as interger  <aller amuse toi bien
Messages postés
74
Date d'inscription
vendredi 14 juillet 2006
Statut
Membre
Dernière intervention
14 août 2006

bonjour !


Premièrement pourquoi tu fais un if dans :

If rs!numero_dep = 5 Then
depart(5) = depart(5) + rs!total
End If

Alors que de toute façon tu fais toujours

depart(rs!numero_dep) = depart(rs!numero_dep) + rs!total ???

Sinon il y a les Select case

Select Case rs!numero_dep
case 1 to 10
code si depart est entre 1 et 10
case 11,12,13
code si départ = 11, 12, 13
case > 14
code si depart > 14
End select

Si ce n'est pas ce que tu voulais ce serait bien d'avoir plus de détail,
PY
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
Un tres grand Merci.
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
Salut Mortalino ,

je doit faire pour 90 departement different , donc je doit faire 90 case ou il
y a un moyen de faire plus cours encore ??

Merci a toi
Messages postés
675
Date d'inscription
samedi 31 mai 2003
Statut
Membre
Dernière intervention
26 mai 2013
1
Merci ,
Mai depart( " & var & ") = depart( " & var & ") + rs!total   sa marche pas erreur syntax

donc j'ai fait sa
depart(var) = depart(var)+ rs!total 

Encore merci