Code pour macro Somme de plages.
Cocktail
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
J'ai une colonne A dans laquelle mes cellules contiennent des chiffres (d'affaires).
Ces cellules de chiffres sont parfois séparées par des cellules vides que je veux conserver.
Ca donne ça :
12455,36
4587,84
547785,36
4587,25
4587,63
145258,65
45874,69
5821,31
689,54
457896,25
6589,30
Je voudrais savoir si l'un d'entre vous aurait l'idée d'une macro permettant de faire la somme de chaque "paquet" de cellules et décalant cette somme.
Je m'explique.
J'ai donc mes chifres dans les cellules allant de A1 à A4, une cellule vide en A5, des chiffres de A6 à A8, une cellule vide en A9 etc. Je voudrais donc la somme de A1;A4 en B5, celle de A6;A8 en B9 etc.
Merci d'avance à ceux et celles qui se casseront la tête là dessus par pur altruisme.
C
J'ai une colonne A dans laquelle mes cellules contiennent des chiffres (d'affaires).
Ces cellules de chiffres sont parfois séparées par des cellules vides que je veux conserver.
Ca donne ça :
12455,36
4587,84
547785,36
4587,25
4587,63
145258,65
45874,69
5821,31
689,54
457896,25
6589,30
Je voudrais savoir si l'un d'entre vous aurait l'idée d'une macro permettant de faire la somme de chaque "paquet" de cellules et décalant cette somme.
Je m'explique.
J'ai donc mes chifres dans les cellules allant de A1 à A4, une cellule vide en A5, des chiffres de A6 à A8, une cellule vide en A9 etc. Je voudrais donc la somme de A1;A4 en B5, celle de A6;A8 en B9 etc.
Merci d'avance à ceux et celles qui se casseront la tête là dessus par pur altruisme.
C
A voir également:
- Code pour macro Somme de plages.
- Code ascii - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Code puk bloqué - Guide
- Code de déverrouillage oublié - Guide
- Code activation windows 10 - Guide
3 réponses
Bonjour,
une macro ?
A+
une macro ?
Sub SumPartiel()
Dim i As Long
Dim T As Double, TT As Double
For i = 1 To 14
If Cells(i, 1) = "" Then
Cells(i, 2) = T: TT = TT + T: T = 0
Else
T = T + Cells(i, 1)
End If
Next i
Cells(i + 1, 1) = "Totaux"
Cells(i + 1, 2) = TT
End Sub
A+
Salut,
Il faut adapter la macro à tes besoins,
Sub Sous_Total()
Dim i As Long
Dim T As Double, TT As Double
For i = 1 To 30 ' plage de cellule à balayerde A1 à A xxxxx !
If Cells(i, 1) = "" Then
Cells(i, 1) = T: TT = TT + T: T = 0
Else
T = T + Cells(i, 1)
End If
Next i
Cells(i + 1, 2) = TT
End Sub
A+
Il faut adapter la macro à tes besoins,
Sub Sous_Total()
Dim i As Long
Dim T As Double, TT As Double
For i = 1 To 30 ' plage de cellule à balayerde A1 à A xxxxx !
If Cells(i, 1) = "" Then
Cells(i, 1) = T: TT = TT + T: T = 0
Else
T = T + Cells(i, 1)
End If
Next i
Cells(i + 1, 2) = TT
End Sub
A+
Ca marche, merci, j'aurais du comprendre tout seul la plage à balayer. Chuis vraiment un boulet.
Maintenant, j'aimerais bien ne pas avoir à spécifier une plage à balayer vu qu'elle ne sera pas toujours la même.
J'aimerais que la macro s'arrête quand par exemple elle trouve 2 cellules vides consécutives.
Et enfin, j'aimerais que cette macro puisse se réaliser sur une colonne donnée, ici en l'occurence, la colonne D, première cellule à traiter =D3
Merci déjà pour ce que vous avez fait, et merci d'avance pour le reste.
C
Maintenant, j'aimerais bien ne pas avoir à spécifier une plage à balayer vu qu'elle ne sera pas toujours la même.
J'aimerais que la macro s'arrête quand par exemple elle trouve 2 cellules vides consécutives.
Et enfin, j'aimerais que cette macro puisse se réaliser sur une colonne donnée, ici en l'occurence, la colonne D, première cellule à traiter =D3
Merci déjà pour ce que vous avez fait, et merci d'avance pour le reste.
C
'Mettre le curseur n'importe où dans la colonne à calculer...
'Tout le reste est automatique.
Sub SumPartiel()
Dim i As Long
Dim T As Double, TT As Double
Dim Col As Integer
Col = ActiveCell.Column
For i = 1 To 65000
If Cells(i, Col) = "" And Cells(i + 1, Col) = "" Then
Exit For
ElseIf Cells(i, Col) = "" Then
Cells(i, Col + 1) = T: TT = TT + T: T = 0
Else
T = T + Cells(i, Col)
End If
Next i
Cells(i + 1, Col) = "Totaux"
Cells(i + 1, Col + 1) = TT
End Sub
A+
Volà ce que ça donne en pratique
10 989,78
27 078,55
28 623,74
66 692,07
8 152,08
4 619,93
847,23
22 642,10
6 200,51
22 847,85
2 971,25
10 269,22
3 011,44
5 458,07
160,09
Totaux 66 692,07
11 879,47
27 221,48
2 246,90
4 310,73
3 501,79
23 828,32
6 902,63
3 260,41
10 400,11
4 171,41
1 624,09
2 444,07
6 179,21
6 786,83
4 087,15
3 115,17
3 814,31
2 100,77
18 071,58
18 454,17
3 947,06
8 587,19
10 898,64
8 528,79
17 912,43
6 433,65
4 510,64
7 236,58
26 566,93
J'obtiens bien la somme de mon 1er "paquet" de chiffre, cette somme est ensuite reportée à la place de ce qu'aurait du être la somme du 2ème "paquet" de chiffres et ensuite les autres "paquets ne sont pas traités.
Au fait, j'aimerais que ce truc marche sur une colonne donnée. Mes chiffres sont en fait dans la colonne D, sur mon tableau, et commencent en D3
Merci
C