Excel Colorsum Ergebnis automatisch aktualisieren lassen?
Moin, ich habe in Excel über Visual Basics folgenden Code eingefügt:
Function ColorSum(ByRef Source As Range, ByVal Color As Integer, Optional ByVal ForeOrBack As Boolean = -1) As Double
Dim rng As Range, dblSum As Double
Application.Volatile
If Color < 0 Or Color > 56 Then Color = IIf(ForeOrBack, -4142, -4105)
For Each rng In Source
If IsNumeric(rng) Then
If ForeOrBack Then
If rng.Interior.ColorIndex = Color Then dblSum = dblSum + rng
Else
If rng.Font.ColorIndex = Color Then dblSum = dblSum + rng
End If
End If
Next
ColorSum = dblSum
End Function
Dies hat die Funktion, dass ich zahlen zusammen rechnen kann anhand der Farbe. Das Funktioniert auch alles so weit. Nur weiß ich nicht wie ich es hinkriege dass sich das Ergebnis automatisch aktualisiert nachdem ich die Farbe z.B. von rot auf grün umändere. Dann sollte eigentlich aus summe X eine summe heraus kommen die um 1 weniger ist. Dies sehe ich aber erst dann, nachdem ich in die Spalte gehe (wo die Formel ist) und die Entertaste drücke. Geht das auch ohne das ich es Manuell aktualisieren muss?
1 Antwort
Du musst hier leider ein Change-Ereignis laufen lassen. Leider der nachteil bei benutzerdefinierten Funktionen. Bau die ein Change-Ereignis auf die Quelldaten der Summe und lass mit Application.Calculate einmal durchrechnen.
Alternativ F9 drücken
Oh ich korrigiere mich. Bei mir funktioniert es ohne Change ereignis. War in früheren Excelversionen nicht so.
Wo hast du das Makro drin? In einem eigenen Modul? Sind unter Formeln die Berechnungen auf Automatisch gestellt?