Microsoft 365 formule =SOMME.SI(A2:A17;A1;D2:D17) Flexible en VBA

iliess

XLDnaute Occasionnel
Bonjour
je souhaite affecter en VBA a la cellule D18 la formule suivante :
VB:
=SOMME.SI(A2:A17;A1;D2:D17)
Svp comment je peux remplacer la dernier ligne (17) par la variable LastRow pour rendre ma formule flexible.

Code:
Sub Somme_si_flexible_Formula2Local()
Dim LastRow As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row
Range("D" & LastRow + 1).Formula2Local = "=SOMME.SI(A2:A17;A1;D2:D17)"
End Sub


Code:
Sub Somme_si_flexible_FormulaR1C1()
Dim LastRow As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row
Range("D" & LastRow + 1).FormulaR1C1 = "=SUMIF(R[-16]C[-3]:R[-1]C[-3],R[-17]C[-3],R[-16]C:R[-1]C)"
End Sub


Salutation
 
Solution
Bonjour à tous

@iliess

Je te propose

VB:
Sub Somme_si_flexible_Formula2Local()
Dim LastRow As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row
Range("D" & LastRow + 1).FormulaLocal = "=SOMME.SI(A2:A" & LastRow & ";A1;D2:D" & LastRow & ")"
End Sub

Merci de ton retour

Phil69970

XLDnaute Barbatruc
Bonjour à tous

@iliess

Je te propose

VB:
Sub Somme_si_flexible_Formula2Local()
Dim LastRow As Long
LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, 4).End(xlUp).Row
Range("D" & LastRow + 1).FormulaLocal = "=SOMME.SI(A2:A" & LastRow & ";A1;D2:D" & LastRow & ")"
End Sub

Merci de ton retour
 

Discussions similaires

Réponses
2
Affichages
117

Statistiques des forums

Discussions
312 215
Messages
2 086 329
Membres
103 182
dernier inscrit
moutassim.amine