Calcul de la somme d'une colonne

hayaa1982 Messages postés 5 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 22 février 2006 - 13 févr. 2006 à 15:36
hayaa1982 Messages postés 5 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 22 février 2006 - 15 févr. 2006 à 11:37
Bonjour,
Je souhaiterai effectuer le calcul de la somme d'une colonne en fonction des élements se trouvant dann les autres.
Voilà un exemple de code tout simple mais il ne fonctionne.
Je ne sais pas d'ou vient l'erreur.

Dim val As Currency
Dim n As Integer


n = ThisWorkbook.Sheets("Feuil1").Cells(60000, 13).End(xlUp).Row
For i = 2 To n


If ThisWorkbook.Sheets("Feuil1").Cells(i, 1) = "Interne" Then ' selection de interne ou externe
If ThisWorkbook.Sheets("Feuil1").Cells(i, 2) = "OPTION AVENUE" Then 'selection de l'option
If ThisWorkbook.Sheets("Feuil1").Cells(i, 7) <= "31/12/05" Then 'selection de la plage de date
val = val + ThisWorkbook.Sheets("Feuil1").Cells(i, 13)'calcul de la somme de la colonnes

End If
End If
End If
Next i


MsgBox val 'affichage du résultat final

merci beaucoup de votre aide.
hayaa.

3 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
13 févr. 2006 à 17:30
Salut
Je ne suis pas un as du VBA de Excel, mais, à tout hasard (amélioration) :

With ThisWorkbook.Sheets("Feuil1")
n = .Cells(60000, 13).End(xlUp).Row
For i = 2 To n
If UCase(.Cells(i, 1)) = "INTERNE" And _
UCase(.Cells(i, 2)) = "OPTION AVENUE" And _
DateValue(.Cells(i, 7)) <= DateValue("31/12/05") Then
maVal = maVal + Val(.Cells(i, 13)) 'calcul de la somme de la colonnes
End If
Next i
End With
MsgBox maVal 'affichage du résultat final

-1- "val" est un mot clé, une instruction, donc il doit planté, faute de paramètre à cette instruction
-2- J'ai ajouté le With qui permet d'alléger la syntaxe
-3- J'ai collapsé les If en un seul (moins performant que ta structure si tu as beaucoup de lignes)
-4- J'ai ajouté le UCase pour comparer en majuscule les chaines (au cas où saisie pas exactement bonne)
-5- J'ai ajouté DateValue car je ne sais pas si Excel sait faire des comparaisons de dates mieux que VB

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
kalobit Messages postés 169 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 7 avril 2008 2
14 févr. 2006 à 10:32
ok avec Jack.

à voir aussi le type currency. Je ne suis pas sure que ce soit très approprié.

++++
0
hayaa1982 Messages postés 5 Date d'inscription vendredi 3 février 2006 Statut Membre Dernière intervention 22 février 2006
15 févr. 2006 à 11:37
je vous remercie de votre aide.

+++
hayaa
0
Rejoignez-nous