Fonction Somme sous VBA
Résolu
ti_mouton
Messages postés
153
Statut
Membre
-
ti_mouton Messages postés 153 Statut Membre -
ti_mouton Messages postés 153 Statut Membre -
Bonjour,
Je cherche à appliquer la fonction somme à la cellule E3. Cette fonction vient récupérer des données dans différentes feuilles de calcul. Il s'agit de faire la somme des éléments contenu dans la plage de cellule (AE7 : Dernière Ligne) de chaque feuille.
Voici mon code, mais il ne fonctionne pas:
J'ai le message d'erreur suivant : Impossible de lire la propriété SUM
Merci pour votre aide
Je cherche à appliquer la fonction somme à la cellule E3. Cette fonction vient récupérer des données dans différentes feuilles de calcul. Il s'agit de faire la somme des éléments contenu dans la plage de cellule (AE7 : Dernière Ligne) de chaque feuille.
Voici mon code, mais il ne fonctionne pas:
Dim DL As Integer
DL = Sheets("BLOCS").Cells(Application.Rows.Count, 2).End(xlUp).Row
Range("E3").FormulaR1C1 = WorksheetFunction.Sum(WorksheetFunction.Sum("AE7" & DL) + WorksheetFunction.Sum(Sheets("ENVIRONNEMENT").Range("AE7" & DL)) + WorksheetFunction.Sum(Sheets("BORD. VOIRIES").Range("AE7" & DL)) + WorksheetFunction.Sum(Sheets("PDTS NEGOCIES").Range("AE7" & DL)))
J'ai le message d'erreur suivant : Impossible de lire la propriété SUM
Merci pour votre aide
2 réponses
-
Bonjour,
« la plage de cellule (AE7 : Dernière Ligne) »
La dernière ligne de quelle colonne ????-
-
-
-
-
J'ai suivi vos conseils mais j'ai toujours le même code erreur :-(
Voici la totalité du code dont je dispose (et qui a été entièrement développé par des membres du forum, que je remercie grandement !) :
Sub EffaceEtFiltreBLOCS()
Dim Plage As Range
Dim DL As Integer
DL = Sheets("BLOCS").Cells(Application.Rows.Count, 2).End(xlUp).Row
'neutralise le recalcule
Application.Calculation = xlCalculationManual
With Sheets("BLOCS")
' regroupement de tes deux plages dans une seule
Set Plage = Union(.Range(.Cells(6, 2), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 10)), .Range(.Cells(7, 11), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 40)))
'effacement des deux plage
Plage.ClearContents
End With
'remise en place du recalcule automatique
Application.Calculation = xlCalculationAutomatic
' partie liée au filtre avancé
With Sheets("Base SID")
Set Plage = .Range(.Cells(4, 1), .Cells(.Cells(.Rows.Count, 4).End(xlUp).Row, 9))
Plage.AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Sheets("BLOCS").[B1:B2], CopyToRange:=Sheets("BLOCS").[B6], Unique:=False
End With
'Mise en forme
With Sheets("BLOCS")
.Select
Range("B6:J6").Font.Bold = True
Range("B6:J6").Font.Size = 16
Range("B6:J6").Font.ColorIndex = 2
Range("B6:J6").Interior.ColorIndex = 41
Range("B6:J6").HorizontalAlignment = xlCenter
Set PlageAE = .Range(.Cells(7, 31), .Cells(.Cells(.Rows.Count, 2).End(xlUp).Row, 31))
PlageAE.FormulaR1C1 = .Cells(2, 31).FormulaR1C1
Range("E3").FormulaR1C1 = WorksheetFunction.Sum(WorksheetFunction.Sum("AE7:AE" & DL) + WorksheetFunction.Sum(Sheets("ENVIRONNEMENT").Range("AE7:AE" & DL)) + WorksheetFunction.Sum(Sheets("BORD. VOIRIES").Range("AE7:AE" & DL)) + WorksheetFunction.Sum(Sheets("PDTS NEGOCIES").Range("AE7:AE" & DL)))
End With
End Sub
Le code bug arrivé à la ligne que j'ai rajouté : Range("E3") ...
-
-
Re,
J'aurais écris :PlageAE.Formula = .Cells(2, 31).Formula Range("E3").Formula = WorksheetFunction.Sum("AE7:AE" & DL) + _ WorksheetFunction.Sum(Sheets("ENVIRONNEMENT").Range("AE7:AE" & DL)) + _ WorksheetFunction.Sum(Sheets("BORD. VOIRIES").Range("AE7:AE" & DL)) + _ WorksheetFunction.Sum(Sheets("PDTS NEGOCIES").Range("AE7:AE" & DL))
Mais en précisant le nom de la feuille pour le premier Sum !
Cordialement
Patrice