Microsoft Excel

Excel und VBA: Formeln, Programmierung, Lösungen

Die Excel/VBA-Beispiele

Thema

Summe über dynamischen Bereich bilden

Gruppe

Summe

Problem

ber VBA soll eine Summe über einen dynamischen Bereich gebildet werden. Die erste Zelle ist die Zelle über der Summenformel oder bei VBA-Aufruf - die aktive Zelle, die letzte Zelle die Zelle vor der ersten leeren Zelle.

Lösung
Geben Sie die nachfolgende benutzerdefinierte Funktion in ein Standardmodul ein.

StandardModule: basMain

Sub Aufruf()
   MsgBox DynaSum(ActiveCell)
End Sub

Function DynaSum(Optional rng As Range)
   Dim dSum As Double
   Dim lRow As Long
   Dim iCol As Integer
   If rng Is Nothing Then
      Set rng = Application.Caller
   End If
   iCol = rng.Column
   lRow = rng.Row
   Do Until IsEmpty(Cells(lRow - 1, iCol))
      dSum = dSum + Cells(lRow - 1, iCol)
      lRow = lRow - 1
      If lRow = 1 Then Exit Do
   Loop
   DynaSum = dSum
End Function