Calcul de la somme d'une colonne

Signaler
Messages postés
5
Date d'inscription
vendredi 3 février 2006
Statut
Membre
Dernière intervention
22 février 2006
-
Messages postés
5
Date d'inscription
vendredi 3 février 2006
Statut
Membre
Dernière intervention
22 février 2006
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
81
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)
Messages postés
169
Date d'inscription
mardi 15 juillet 2003
Statut
Membre
Dernière intervention
7 avril 2008
2
ok avec Jack.

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

++++
Messages postés
5
Date d'inscription
vendredi 3 février 2006
Statut
Membre
Dernière intervention
22 février 2006

je vous remercie de votre aide.

+++
hayaa