VBA excel : Somme d'une plage variable [Fermé]

Messages postés
6
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2010
- - Dernière réponse :  yoyo - 31 oct. 2012 à 09:46
Bonjour,

Je souhaite effectuer une somme sur une colonne depuis la 1ère ligne jusqu'à la ligne juste avant cette somme.
Le hic c'est que cette somme peut se réaliser à la ligne 52, 70, 12, selon une sélection préalable.
Pouvez-vous me donner THE code, please !
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
1859
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
27 novembre 2019
534
2
Merci
Voila un exemple qui calcule la somme de la colonne A jusqu'a la ligne selectionnée -1 et qui inscrit la somme dans cette cellule :

Somlig = Selection.Row
Somme = 0
For lig = 1 To Somlig - 1
    Somme = Somme + Cells(lig, 1)
Next lig
Cells(Somlig, 1) = Somme


A+

Dire « Merci » 2

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 67130 internautes nous ont dit merci ce mois-ci

Messages postés
1859
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
27 novembre 2019
534
1
Merci
Bonjour,

Voici un exemple pour la colonne A :

=SOMME(INDIRECT("A1:A"&LIGNE()-1))

A+
Messages postés
6
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2010
1
1
Merci
Merci, ça m'a l'air super simple mais je suis tellement mauvais que je ne comprends pas le mesage d'erreur quand j'essaie de la lancer:
"Erreur de Compilation: Sub ou Fonction non définie" en pointant sur LIGNE (?)
Il suffit d'écrire dans VBA la formule en anglais et ça marche : ActiveCell.FormulaR1C1 = "=SUM(INDIRECT(""A1:A""&ROW()-1))"
Messages postés
1859
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
27 novembre 2019
534
0
Merci
Pourtant LIGNE est une fonction de base dans mon Excel 2003.
Messages postés
1859
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
27 novembre 2019
534
0
Merci
Euh ! au temps pour moi je viens de voir que tu es en VBA et j'ai fait une réponse en fonctions Excel !!!
Tu veux faire la somme dans VBA jusqu'a une cellule selectionnée au préallable ?
Messages postés
6
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2010
1
0
Merci
que je mette colonne, row ou autre, cela produit le même message d'erreur...
j'ai essayé sur Xls 2003 et 2007, même message...
cela vient-il d'un langage français qu'il ne reconnait pas si j'ai tout fait jusqu'ici en anglais ? (dans c cas là, peut-être le code devient légèrement différent car changer en row et sum ne suffit pas...)
Messages postés
6
Date d'inscription
vendredi 26 février 2010
Statut
Membre
Dernière intervention
1 mars 2010
1
0
Merci
ah oui, c'est en vba...
lol
je veux faire la somme jusqu'à la ligne sous la cellule du calcul, où qu'elle soit.
Messages postés
456
Date d'inscription
mardi 2 février 2010
Statut
Membre
Dernière intervention
12 juillet 2012
15
0
Merci
Je ne sais pas si tu as compris ce qu'il voulait pilas31 ni même si ton code amène à ce que cocomarc souhaite mais je pense qu'il veut un code qui lui calcule la somme d'un colonne qui peut s'arréter a n'importe quelle ligne. Si c'est sur la colonne A, la derniere cellule du calcul peut etre A31 ou A566 ou encore A2. IL veut donc une formule qui inscrira la valeur de cette juste en dessous de la derniere cellule du calcul. Pour les exemples que j'ai pris, les résultats seront donc affichés en A32, A567 ou A3.
Messages postés
1859
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
27 novembre 2019
534
0
Merci
Bonjour enark78,

Je pense avoir compris, j'ai juste pas vu au début que c'était du VBA (pourtant dans le titre !).
Oui, mon code fait bien ce que tu décris.
Ce que je ne sais pas c'est de quelle manière cocomarc veux choisir la ligne de somme. Dans mon exemple c'est tout simplement la ligne qui est selectionnée dans excel qui est prise.

A+