Bonjour EQUIV38, oxydum ,
En complément à la réponse d'oxydum,
Soit tu utilises l'évènement change de ta feuille, la macro est alors active à chaque modif sur la plage définie:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Long, dl As Long
Dim maplage As Range
With Sheets("Feuil1")
dl = .Range("B" & Rows.Count).End(xlUp).Row
Set maplage = .Range("B2:B" & dl)
If Not Application.Intersect(Target, maplage) Is Nothing Then
cancel = True
.Range("F2") = Application.WorksheetFunction.Sum(maplage)
.Range("F2").Font.Bold = True
.Range("F2").Style = "currency"
End If
End With
End Sub
Le code est à placer dans le module de la feuille concernée.
Soit tu préfères agir toi même sur ta macro (au moyen d'un bouton où raccourci clavier),
Sub Exercice()
Dim dl As Integer 'définit la variable dl (dernière ligne)
Dim maplage As Range 'définit la variable maplage (plage à sommer)
dl = Range("B" & Rows.Count).End(xlUp).Row 'dernière ligne utilisée de la colonne B
Set maplage = Range("B1:B" & dl) 'définit la plage à sommer (de B1 à la dernière cellule)
Range("F2" ) = Application.WorksheetFunction.Sum(maplage) 'ecrit la somme en F2
Range("F2" ).Font.Bold = True
Range("F2" ).Style = "currency"
End Sub
Code à placer dans un module standard.
Cordialement,