Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

faire une somme sur plage dynamique

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 !

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

Dernière édition:
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
 
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

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
 
- 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

Discussions similaires

Réponses
5
Affichages
272
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
516
Réponses
4
Affichages
203
Réponses
3
Affichages
672
Réponses
16
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…