Effectuer une somme à l'aide d'une macro

Sabrina_95

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

  • EXCEL.xls
    19 KB · Affichages: 154
  • EXCEL.xls
    19 KB · Affichages: 156
  • EXCEL.xls
    19 KB · Affichages: 156

Pierrot93

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

nolich

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

Bonjour Sabrina_95, bonjour à toutes et à tous :)

Sabrina_95 à dit:
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.

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

Sabrina_95

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

Pierrot93

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

nolich

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

@+
 

Discussions similaires

Statistiques des forums

Discussions
312 361
Messages
2 087 603
Membres
103 604
dernier inscrit
CAROETALEX59