E
ExcelBleu
Guest
Bonjour !
Je viens de rejoindre la communauté et pour etre franc je débute en vba,...
j'essaie de réaliser un macro qui calcule la somme d'une colone et qui positione le résultat deux lignes en dessous de la derniére valeur.
Je suis sur que mon code est long d'etre optimisé mais cela fonctionne 🙂 !
Cependant je ne sais comment faire une chose: en cas de suppression d'une cellule de la plage de selection situé au milieu de la plage, comment faire en sorte que ma somme mobile reste inchangée ?
Car ce faisant ma somme mobile ne sera plus situé a 2 lignes en dessous mais une,...
Bref voila le topic 😉
maintenant mon code:
Dim cpt As Double
Dim tmp As Double
Private Sub workbook_activate()
tmp = 0
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
cpt = Application.WorksheetFunction.Count(Range("D1😀" & Range("D65536").End(xlUp).Row))
If tmp = 0 Then
tmp = cpt
End If
If cpt > tmp Then
ActiveSheet.Cells(2 + cpt, 4).Value = Application.WorksheetFunction.sum(ActiveSheet.Range(ActiveSheet.Cells(1, 4), ActiveSheet.Cells(cpt - 1, 4)))
ActiveSheet.Cells(1 + cpt, 4).Clear
End If
If cpt < tmp Then
ActiveSheet.Cells(2 + cpt, 4).Value = Application.WorksheetFunction.sum(ActiveSheet.Range(ActiveSheet.Cells(1, 4), ActiveSheet.Cells(cpt - 1, 4)))
ActiveSheet.Cells(3 + cpt, 4).Clear
End If
If cpt = tmp Then
ActiveSheet.Cells(2 + cpt, 4).Value = Application.WorksheetFunction.sum(ActiveSheet.Range(ActiveSheet.Cells(1, 4), ActiveSheet.Cells(cpt - 1, 4)))
End If
tmp = cpt
End Sub
Je viens de rejoindre la communauté et pour etre franc je débute en vba,...
j'essaie de réaliser un macro qui calcule la somme d'une colone et qui positione le résultat deux lignes en dessous de la derniére valeur.
Je suis sur que mon code est long d'etre optimisé mais cela fonctionne 🙂 !
Cependant je ne sais comment faire une chose: en cas de suppression d'une cellule de la plage de selection situé au milieu de la plage, comment faire en sorte que ma somme mobile reste inchangée ?
Car ce faisant ma somme mobile ne sera plus situé a 2 lignes en dessous mais une,...
Bref voila le topic 😉
maintenant mon code:
Dim cpt As Double
Dim tmp As Double
Private Sub workbook_activate()
tmp = 0
End Sub
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
cpt = Application.WorksheetFunction.Count(Range("D1😀" & Range("D65536").End(xlUp).Row))
If tmp = 0 Then
tmp = cpt
End If
If cpt > tmp Then
ActiveSheet.Cells(2 + cpt, 4).Value = Application.WorksheetFunction.sum(ActiveSheet.Range(ActiveSheet.Cells(1, 4), ActiveSheet.Cells(cpt - 1, 4)))
ActiveSheet.Cells(1 + cpt, 4).Clear
End If
If cpt < tmp Then
ActiveSheet.Cells(2 + cpt, 4).Value = Application.WorksheetFunction.sum(ActiveSheet.Range(ActiveSheet.Cells(1, 4), ActiveSheet.Cells(cpt - 1, 4)))
ActiveSheet.Cells(3 + cpt, 4).Clear
End If
If cpt = tmp Then
ActiveSheet.Cells(2 + cpt, 4).Value = Application.WorksheetFunction.sum(ActiveSheet.Range(ActiveSheet.Cells(1, 4), ActiveSheet.Cells(cpt - 1, 4)))
End If
tmp = cpt
End Sub