Problem mit VBA Code
06.09.2006 09:56:41
Anton
Ich habe immer das Problem, dass ich wenn beispielsweise drei "*" in diesem Bereich sind (und keine Zahl) und der Rest leer war, dann ist das Sub "Rab" aufgerufen worden statt "Rableer".
Sobald in einer der ca. 50 Zellen dieses Bereich eine Zahl eingeben wird, dann soll "rab" aufgerufen werden. Egal was ich sonst eingebe wie z.B. "*" oder nichts, dann soll "rableer" aufgerufen werden.
Beispiel: im Bereich hat eine Zelle die Zahl 10, eine andere ein "*" und der Rest ist leer. Hier sollte dann das Sub "Rab" aufgerufen werden, da mindestens eine Zahl im Bereich ist.
Weiters Beispiel: Im Bereich sind vier Zellen mit "*" und der Rest ist leer. Sub "Rableer" soll aufgerufen werden, da nirgendes eine Zahl.
Könnte mir jemand den Code anpassen?
Bitte um Hilfe.
Private Sub Worksheet_Change(ByVal Target As Range)
'* H. Ziplies *
'* 18.04.05 *
'* erstellt von Hajo.Ziplies@web.de *
'* <a href="http://home.media-n.de/ziplies/">http://home.media-n.de/ziplies/</a> *
Dim RaBereich As Range, RaZelle As Range
' Bereich der Wirksamkeit
Set RaBereich = Range("i14:i53")
' noch mehr Bereiche
' Set RaBereich = Union(Range("C7:I26"), Range("L7:R26"), Range("U7:AA26"), Range("AD7:AJ26"))
' ActiveSheet.Unprotect ("Passwort")
For Each RaZelle In Range(Target.Address)
If Not Intersect(RaZelle, RaBereich) Is Nothing Then
If RaZelle.Value <> 0 Then Call rab
If WorksheetFunction.CountA([i14:i53]) = 0 Then rableer
'End If
End If
Next RaZelle
' ActiveSheet.protect ("Passwort")
Set RaBereich = Nothing
' If WorksheetFunction.CountA([i14:i53]) = 0 Then rableer
End Sub
Sub rab()
ActiveSheet.Range("n1").Value = "Rab."
End Sub
Sub rableer()
ActiveSheet.Range("n1").ClearContents
End Sub