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

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

pierrejean

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

nolich

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

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
 

Sabrina_95

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

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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…