Additions selon conditions

  • Initiateur de la discussion Initiateur de la discussion shenmicke
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

S

shenmicke

Guest
Bonjour le forum,

je pensais avoir fais quelque progrès en Excel et vba mais apparrament pas assez !
Je vous explique mon soucis.

J'ai un fichier excel (ci-joint) et je veux additionner sur certaines lignes
( 16 38 50 89 109 143 155 190 205 255 262 285 301 306 311 315 317 320 323
330 334 337 339 342 346 352 365 377 381 385 395 406 466 486 525 556 635
714 732 762 780 😡)

Sur chacune de ces lignes il y aura déjà un nombre qu'il faudra écraser par la somme des cellules de dessus (jusqu'à qu'on rencontre la dernière ligne où on a calculé une somme auparavant).

Exemple 1: pour la première somme à calculer en N16, je veux faire la somme des cellules N11 à N15.

Exemple 2: pour la somme à la cellule N50 je veux faire la somme des cellules N49 à N39.

PS : j'ai coupé une grosse partie du fichier excel afin de l'alléger

Je suppose qu'il faut stocker les lignes qu'on va utiliser comme ceci:

sub macro2()

Dim Tableau(41) As String
Dim is As Integer

Tableau(0)=16
Tableau(1)=38
Tableau(2)=50
Tableau(3)=89
Tableau(4)=109
Tableau(5)=143
Tableau(6)=155
Tableau(7)=190
Tableau(8)=205
Tableau(9)=255
Tableau(10)=262
Tableau(11)=285
...

mais j'arrive pas à faire la boucle ainsi que la condition d'arrêt pour faire la somme 🙁

Merci de m'aider
 

Pièces jointes

Dernière modification par un modérateur:
Re : Additions selon conditions

Bonjour,

essaye peut être ainsi, mais attention, pas top tes cellules fusionnées pour vba...
Code:
Option Explicit
Sub test()
Dim t() As Variant, i As Integer
t = Array(10, 16, 38, 50, 89, 109, 143, 155, 190, 205, 255, 262, 285, 301, 306, 311, _
    315, 317, 320, 323, 330, 334, 337, 339, 342, 346, 352, 365, 377, 381, 385, 395, _
    406, 466, 486, 525, 556, 635, 714, 732, 762, 780)
For i = 1 To UBound(t)
    Cells(t(i), 14).Value = Application.Sum(Range(Cells(t(i - 1) + 1, 14), Cells(t(i) - 1, 14)))
Next i
End Sub

bonne soirée
@+
 
Re : Additions selon conditions

Re,

J'espère que quelqu'un repassera par là. J'avais pensé pour régler ce problème de cellules fusionnées faire ainsi :

'17-> 24 + 26->33 = 38

Cells(38, 14).Value = Application.Sum(Range(Cells(17, 14), Cells(24, 14)), Range(Cells(26, 14), Cells(33, 14)))

'51->52 + 55->88 = 89
Cells(89, 14).Value = Application.Sum(Range(Cells(51, 14), Cells(52, 14)), Range(Cells(55, 14), Cells(88, 14)))

ça ne me remplit que la première cellule. J'ai tenté de réecrire avec une boucle en passant par ton code mais je n'y suis pas arrivé avec un :

tab2 = Array(17, 24, 26, 33, 38)


EDIT : C'est bon, j'ai compris pourquoi ça fonctionnait pas !
Merci
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
  • Question Question
XL 2013 Aide VBA
Réponses
4
Affichages
1 K
LAC736
L
T
Réponses
4
Affichages
2 K
Titi91
T
B
  • Question Question
Réponses
10
Affichages
3 K
Benwill153
B
P
Réponses
12
Affichages
2 K
P
Réponses
2
Affichages
1 K
G
Réponses
17
Affichages
3 K
Retour