AW: verborgene Spalte auswerten
22.06.2007 22:27:14
Peter
Hallo Daniel
Deine Lösung ist sehr interessant. Die Geschwindigkeit ist im Moment kein Problem. Ich habe versucht sie noch etwas auszubauen. Der Bereich C3:C250 (bisher war es Spalte A, aufgrund Umstellungen Spalte C) nicht immer ganz ausgefüllt ist, hat es unten mehr oder weniger NULL-Werte, die nicht weiter relevant ist. Deshalb habe ich in der Codezeile mit If noch eine zusätzliche Bedingung eingebaut, was soweit auch funktioniert hat. Damit ich immer eine aktuelle Auswertung habe, steht im Code zusätzlich Application.Volatile.
Da ich die Auswertung eigentlich gerne in der Statuszeile hätte, habe ich mir überlegt, ich könnte eine Ereignisprozedur bei der entsprechenden Tabelle einfügen, die dann ein Makro aufruft, das seinerseits mit Evaluate die Funktion Prüfung auswertet.
Wenn sich im Moment im Bereich C3:C250 etwas ändert, erhalte ich eine Fehlermeldung beim Modul Sub Check() und zwar bei Cbereich = .Range(.cells(8,3), .Cells(250,3). Weiss jemand woran das liegt? Vielleicht ist diese Kombination (Auswerten eine eigenen Funktion) nicht möglich? Falls diese Vorgehensweise grundsätzlich geht: kann ich hier application.volatile weglassen?
Ich bin auf Rückmeldungen gespannt.
Vielen Dank, Peter
Public Function Prüfung(Prüfbereich As Range, iO_Wert As Variant) As String
Application.Volatile
Dim Zelle
For Each Zelle In Prüfbereich
If Not Zelle.Value = iO_Wert And Not Zelle.Value = 0 Then Prüfung = Prüfung & Zelle.Row & ": _
" & Zelle.Text & " - "
Next
If Len(Prüfung) > 3 Then Prüfung = Left(Prüfung, Len(Prüfung) - 3)
End Function
Sub Worksheet_Change(ByVal Target As Range)
Target = Range(Cells(8, 3), Cells(1000, 3))
Call check
End Sub
Sub check()
Dim Cbereich As Range
With ActiveSheet
Cbereich = .Range(.Cells(8, 3), .Cells(250, 3))
Application.StatusBar = Evaluate ("=Prüfung(Cbereich,1)")
End With
End Sub