AW: als Formel
29.06.2009 23:16:22
Daniel
Hi
probier mal diese Formel anstelle der UDF (für "Konto" musst du noch den entsprechenden Wert bzw den Zellbezug einsetzen)
=SUMMENPRODUKT((B19:B500="Konto")*(G19:G500>0);F19:F500)
wenn du beim Makro bleiben willst, und das Makro sich aktualisieren soll, dann musst du den Zellbereich, in dem sich Wertänderungen auf das Ergebnis auswirken, irgendwo in den Formelparametern auftauchen, z.B. so:
Public Function summehaushalt(konto As Variant, Wertebereich as Range) as double
For i = 19 To 500
If Cells(i, 2) = konto Then
If Cells(i, 7) > 0 Then
summehaushalt = Cells(i, 6) + summehaushalt
End If
End If
Next i
End Function
deine Formel in Excel muss dann so aussehen: =summehaushalt("Konto";B19:G500)
dann wird akualisiert, wenn sich im angegebenen Wertebereich was ändert.
das schon beschriebene "Application.Volatile" geht natürlich auch, aber dann würde die Neuberechnung dieser Formel immer laufen, wenn sich in dem Tabellenblatt was ändert, egal wo.
Gruß, Daniel