Nur veränderte Formelwerte überprüfen
05.01.2006 17:35:53
Gregor
Grundlage:
Spalte A enthält Formeln. Je nach eingabe in anderen Spalten, verändert sich der Formelwert in Spalte A in ein "x" oder "z" und umgekehrt.
Bisheriger Code:
Set bereich = Range("a2:a500")
Dim rngAct As Range, rngAll As Range, rngAll2 As Range
Dim strRng As String
For Each rngAct In bereich.Cells
If rngAct = "x" Or Then 'x einblenden
If rngAll Is Nothing Then 'EINGEBLENDETE MERKEN
Set rngAll = rngAct
Else
Set rngAll = Union(rngAll, rngAct)
End If
End If
If rngAct = "z" Then
If rngAll2 Is Nothing Then
Set rngAll2 = rngAct
Else
Set rngAll2 = Union(rngAll2, rngAct)
End If
End If
Next rngAct
rngAll.EntireRow.Hidden = False 'Zeile einblenden
rngAll2.EntireRow.Hidden = True 'Zeile ausblenden
Der obenstehende Code funktioniert so weit gut. Das Problem ist nur, dass er für ca. 500 Zeilen etwas lange durchläuft. Meine Frage. Gäbe es eine Optimierungsmöglichkeit?
Mir schwebt folgendes vor: nur die veränderten Formelwerte in Spalte A werden geprüft (nicht Zeile für Zeile, sondern nur die Werte einer Formel, die sich durch eine Eingabe verändert haben (ausgelöst durch: Worksheet_Change(ByVal Target As Range), also Zellen in Spalte A, die z.B. von "x" zu "z" geändert haben.
Vielen herzlichen Dank für deinen Input!
Grüsse
Gregor