faire une somme sur plage dynamique

goldfinger13

XLDnaute Occasionnel
Bonjour à tous je vous sollicite car je suis bloqué sur une formule.
Je souhaiter effectuer le total en ligne 17 de mon fichier la somme de deux plages ( de la ligne 1 à la ligne 5 et de la ligne 10 à la ligne 16 peut évoluer )et ce sur toutes les colonnes sachant que cela peut aller au delà de la colonne O (dynamique).
J'ai mis le fichier en question en pièce jointe merci par avance pour votre aide.
le bout de code ci dessous bloque au niveau de la déclaration des plages!

[/QUOTE]
Sub Totaliser()
Dim x As Integer
Dim dercol As Integer
Set MaPlage1 = Range(Cells(1, x), Cells(5, x)) 'c'est ici que ça coince
Set MaPlage2 = Range(Cells(10, x), Cells(16, x)) 'et là aussi

MaSomme = Application.WorksheetFunction.Sum(MaPlage1, MaPlage2)
dercol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

For x = 1 To dercol
Cells(17, x) = MaSomme

Next x
End Sub
 

Pièces jointes

  • totaliser.xlsm
    15.1 KB · Affichages: 6
Dernière édition:

goldfinger13

XLDnaute Occasionnel
Bonjour goldfinger13,

Formule en A17 à tirer vers la droite =SOMME(A1:A5;A10:A16)

A+

En fait je me suis mal exprimé je veux effectuer cette opération en VBA .
Je bloque en fait sur la déclaration de ma plage avec la colonne variable
mon fichier contient déjà un bout de code ci dessous et je vous sollicite pour le finaliser.
Sub Totaliser()
Dim x As Integer
Dim dercol As Integer
Set MaPlage1 = Range(Cells(1, x), Cells(5, x)) 'c'est ici que ça coince
Set MaPlage2 = Range(Cells(10, x), Cells(16, x)) 'et là aussi

MaSomme = Application.WorksheetFunction.Sum(MaPlage1, MaPlage2)
dercol = Cells(1, Cells.Columns.Count).End(xlToLeft).Column

For x = 1 To dercol
Cells(17, x) = MaSomme

Next x
End Sub
 

job75

XLDnaute Barbatruc
Puisque vous tenez au VBA :
VB:
Sub Totaliser()
With Intersect(ActiveSheet.UsedRange.EntireColumn, Rows(17))
    .FormulaR1C1 = "=SUM(R1C:R5C,R10C:R16C)"
    .Value = .Value 'supprime les formules
End With
End Sub
 

Pièces jointes

  • totaliser(2).xlsm
    21.6 KB · Affichages: 6

goldfinger13

XLDnaute Occasionnel
Puisque vous tenez au VBA :
VB:
Sub Totaliser()
With Intersect(ActiveSheet.UsedRange.EntireColumn, Rows(17))
    .FormulaR1C1 = "=SUM(R1C:R5C,R10C:R16C)"
    .Value = .Value 'supprime les formules
End With
End Sub
Puisque vous tenez au VBA :
VB:
Sub Totaliser()
With Intersect(ActiveSheet.UsedRange.EntireColumn, Rows(17))
    .FormulaR1C1 = "=SUM(R1C:R5C,R10C:R16C)"
    .Value = .Value 'supprime les formules
End With
End Sub

merci c'est parfait en fait j'ai plusieurs dizaines de fichiers à traiter et je veux en automatiser le traitement
 

Discussions similaires

Réponses
17
Affichages
803
Réponses
2
Affichages
140
Réponses
0
Affichages
136

Statistiques des forums

Discussions
312 095
Messages
2 085 249
Membres
102 836
dernier inscrit
Ali Belaachet