Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
796to800
796to800
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Problem mit VBA Code

Problem mit VBA Code
06.09.2006 09:56:41
Anton
Hätte da folgendes Problem:
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem mit VBA Code
06.09.2006 11:00:56
Rudi
Hallo,
du musst mit .Count() anstatt mit .CountA() arbeiten.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim RaBereich As Range
' Bereich der Wirksamkeit
On Error GoTo ERRHDL
Application.EnableEvents = False
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")
If Not Intersect(Target, RaBereich) Is Nothing Then
If WorksheetFunction.Count(RaBereich) = 0 Then
rableer
Else
rab
End If
End If
'    ActiveSheet.protect ("Passwort")
Set RaBereich = Nothing
' If WorksheetFunction.CountA([i14:i53]) = 0 Then rableer
ERRHDL:
Application.EnableEvents = True
End Sub

Gruß
Rudi
Anzeige
AW: Problem mit VBA Code
06.09.2006 11:46:07
Anton
Vielen Dank! Funktioniert so wie ich mir das vorgestellt hab. Danke!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige