Automatiser des calculs

Signaler
Messages postés
18
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
28 août 2009
-
Messages postés
18
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
28 août 2009
-
bonjour,

j'ai sur une feuille excel les éléments suivants

col A

23
32
12


10
8


12
15
17


je voudrais via une macro, autmatiser le calcul de la somme de tout mes groupes de nombre de la manière suivante sachant que le nombre d'éléments dans chaque somme peut varier :

23
32
12
= sum (23;32;12)

10
8
= sum (10;8)

12
15
17
= sum (12;15;17)

Je ne sais pas trop si ce que je demande est possible. peut être avez-vous des pistes....

8 réponses

Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
Bonjour

Questions :
Les nombres sont tous dans la même colonne?
Les lignes vides sont-elles insérées la où il faudra faire les sommes?
Sinon comment sont décrits les groupes de nombre ?
Messages postés
18
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
28 août 2009

bonjour,

oui les nombres sont dans la même colonne
oui il faudrait que chaque somme se trouve dans la 1ère ligne vide sous le groupe de nombre correspondant
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
je ne vais pas aller jusqu'au bout mais je viens d'écrire et tester

La fonction CollerSomme(col,lig,maxLigne) colle la formule Somme dans toutes les lignes vides en suposant que les lignes commencent à 1 (si il existe une ligne de titre mettre 2) jusqu'a la ligne 15 ici

Il faut affiner la condition de terminaison

Sub x()
Call CollerSomme("A", 1, 15)
End Sub


Sub CollerSomme(col As String, lig As Integer, maxLigne As Integer)
Dim i As Integer, iPrecVide As Integer
iPrecVide = lig
For i = lig To maxLigne
If ActiveSheet.Cells(i, 1).Value = "" Then
ActiveSheet.Cells(i, 1).FormulaR1C1 = "=SUM(R[" & CStr(iPrecVide - i) & "]C:R[-1]C)"
iPrecVide = i + 1
End If
Next
End Sub
Messages postés
18
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
28 août 2009

oui merci c'est un excellent début
Messages postés
18
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
28 août 2009

quelquechose doit m'échapper. si je veux appliquer cette formule dans une autre colonne par exemple en colonne, je change

Sub x()
Call CollerSomme("F", 1, 15)
End Sub

mais la calcul s'effectue toujours en colonne A, je ne comprends pas.
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
oui à chaque fois qu'il y a cells(i,1) le 1 c'est la colonne A, le parametre col doit etre utilisé

donc remplacer
cells(i,1)
par
cells(i,col-Asc("A")+1)
Messages postés
672
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
2 juin 2016
1
je me trompe
par cells(i,Asc(col)-Asc("A")+1)
Messages postés
18
Date d'inscription
jeudi 16 juillet 2009
Statut
Membre
Dernière intervention
28 août 2009

merci beaucoup loulou 69