Automatiser des calculs

juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 13 août 2009 à 09:46
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009 - 14 août 2009 à 12:38
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

cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
13 août 2009 à 11:36
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 ?
0
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009
13 août 2009 à 12:30
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
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
13 août 2009 à 12:46
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
0
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009
13 août 2009 à 14:57
oui merci c'est un excellent début
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009
14 août 2009 à 10:10
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.
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
14 août 2009 à 12:06
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)
0
cs_loulou69 Messages postés 672 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 juin 2016 1
14 août 2009 à 12:06
je me trompe
par cells(i,Asc(col)-Asc("A")+1)
0
juanito37 Messages postés 18 Date d'inscription jeudi 16 juillet 2009 Statut Membre Dernière intervention 28 août 2009
14 août 2009 à 12:38
merci beaucoup loulou 69
0
Rejoignez-nous