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

Effectuer une somme à l'aide d'une macro

  • Initiateur de la discussion Initiateur de la discussion Sabrina_95
  • 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

Sabrina_95

Guest
Bonjour,

j'ai un fichier que j'ai mis en pièce jointe. Je souhaite effectuer la somme par colonne mais la ligne où doit s'afficher la somme varie en fonction de la recette que je choisis. Cependant, la somme doit commencer toujours à partir de la même cellule, seule la ligne de la somme n'est pas la même. Pourriez-vous m'indiquer une macro permettant de réaliser cela.

Merci
 

Pièces jointes

Re : Effectuer une somme à l'aide d'une macro

Bonjour Sabrina

en espérant avoir compris ton problème :

Code:
Dim ligne As Integer
ligne = 8
Range("C9").Value = WorksheetFunction.Sum(Range("C4:C" & ligne))

bon après midi
@+
 
Re : Effectuer une somme à l'aide d'une macro

bonjour Sabrina

Salut Pierrot

Autre version:
Public Ligne As Integer
Code:
Sub somme()
Ligne = 6
Range("C9").FormulaLocal = "=SOMME(C4:C" & Ligne & ")"
End Sub
 
Re : Effectuer une somme à l'aide d'une macro

Bonjour Sabrina_95, bonjour à toutes et à tous 🙂


Essaie ceci :

Code:
Sub test()
'
Dim Ligne As Long
Dim Total As Integer
'
  Ligne = 8
  Total = Application.WorksheetFunction.Sum(Range("C4:C" & Ligne))
End Sub

@+

EDIT : Salut Pierrot et Pierre-Jean 🙂
 
Re : Effectuer une somme à l'aide d'une macro

Je vous remercie mais le problème qui se pose, c'est que la dernière ligne n'est pas fixe. Il faut rechercher la dernière ligne. Par conséquent, la ligne des totaux varie à chaque fois que je choisis une nouvelle recette.

Cordialement
Sabrina
 
Re : Effectuer une somme à l'aide d'une macro

Aussi, je voudrais répéter la sommer sur les autres colonnes. Or, les formules proposées ne me permettent de le faire que sur la colonne C.

Merci
 
Re : Effectuer une somme à l'aide d'une macro

Bonjour Sabrina

en considérant le tableau dant ton exemple...

Code:
Option Explicit
Sub test()
Dim i As Byte
For i = 3 To 6
    Cells(9, i).Value = WorksheetFunction.Sum(Cells(4, i).Resize(5))
Next i
End Sub

bonne journée
@+
 
Re : Effectuer une somme à l'aide d'une macro

Re sabrina_95, Pierrot et Pierre-Jean, bonjour à toutes et à tous 🙂

Peut-être une solution comme celle-ci (très proche de celle de Pierrot) mais tu peux modifier l'endroit où se trouve la ligne "Total" et le nombre de colonnes à utiliser :

Code:
Sub CalculeTotal()
'
Dim LigneTotal As Long
Dim Colonne As Long
Dim i As Integer
'
  ' On détermine la dernière ligne en fonction du
  ' nombre d'ingrédients présents en ligne B et
  ' on la sauvegarde dans la variable LigneTotal
  LigneTotal = Range("B65536").End(xlUp).Row
  
  ' Si la ligne trouvée ne contient pas "Total"
  ' en colonne B, on incrémente LigneTotal et
  ' on inscrit la valeur "Total" dans cette
  ' ligne calculée
  If Cells(LigneTotal, "B") <> "Total" Then
    LigneTotal = LigneTotal + 1
    Cells(LigneTotal, "B") = "Total"
  End If
  
  ' Enfin, avec la ligne sur laquelle est écrit
  ' "Total" en colonne B, on scanne toutes les
  ' colonnes de C à F, i.e. 3 à 6 (celles qui
  ' ont pour titre "A", "B", "C" et "D" et on
  ' fait le total des lignes 4 à (LigneTotal - 1)
  For i = 3 To 6
    With Application.WorksheetFunction
      Cells(LigneTotal, i) = .Sum(Range(Cells(4, i), Cells(LigneTotal - 1, i)))
    End With
  Next i
End Sub

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

Réponses
3
Affichages
248
Réponses
5
Affichages
198
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…