SelectionChange
11.08.2004 08:11:45
eres
bestimmt könnt Ihr mein beschränktes Verständnis der Ereignisse worksheet_Change und Worksheet_SelectionChange erhellen ...
Folgendes Problem: Ich habe auf einem Tabellenblatt »Beispiel« eine Zelle als Input-Feld zur Eingabe eines Pfades angelegt.
Mit Hilfe der obigen beiden Ereignisse möchte ich sicherstellen, dass in der Zelle ein gültiger Pfad steht. Dazu habe ich im Codebereich des Tabellenblatts folgendes eingetragen:
Private Sub worksheet_Change(ByVal Target As Excel.Range)
Application.EnableEvents = False
If Target.Address = "$B$2" And Target.Value <> "" Then
' Der PFAD wurde also geändert geändert
If Dir(Range("B2"), vbDirectory) = "" Then
MsgBox "Der Input-Pfad existiert nicht. !", vbCritical
Range("B2").Activate
End If
End If
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.EnableEvents = False
If Dir(Range("B2"), vbDirectory) = "" Then
MsgBox "Der Input-Pfad existiert nicht. !", vbCritical
Range("B2").Activate
End If
Application.EnableEvents = True
End Sub
Mal abgesehen davon, dass ich u.a. auch noch andere Bedingungen wie "leere Zelle" etc. abprüfen muss, verstehe ich folgendes nicht:
Wenn B2 die aktive Zelle ist und ich dann in der Zelle eine Änderung vornehme, durchläuft das Makro brav den Bereich »worksheet_Change«. Was ich dann aber absolut nicht verstehe ist, wieso er dann sofort nach dem »worksheet_Change« auch noch in den »Worksheet_SelectionChange« einsteigt, obwohl die Active Zelle nie gewechselt wurde ?
Zum Verständnis füge ich meine Beispieldatei noch bei.
https://www.herber.de/bbs/user/9486.xls
Wenn es möglich ist, gebt einem Blinden die Erleuchtung oder wenn Pfadfinder gerade online sind, macht die gute Tat doch schon jetzt am frühen Morgen.
Vielen Dank im voraus und Gruss ans Forum
eres