EVENT-Makros "Worksheet_SelectionChange"
30.10.2007 15:01:05
NoNet
Hallo Wilhelm,
In puncto VBA musst Du gegenüber Java(Script) umdenken : Ein "OnClick" oder "OnBlur"-Ereignis selbst gibt es in VBA nicht, aber zumindest verwandte Events.
Beispiel : Private Sub Worksheet_SelectionChange wenn eine andere Zelle/Bereich aktiviert wird.
Dadurch kannst Du das "Onclick"-Ereignis nachbilden. WICHTIG : Der Code muss im VBA-Editor (Alt+F11) in das Klassenmodul des entsprechenden Tabellenblattes kopiert werden (z.B. in "Tabelle1") :
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'TARGET bezeichnet hier das selektierte Objekt, z.B. einzelne Zelle B5
MsgBox Target.Address
'Mit TARGET(1,1) wird die erste (linke obere) Zelle des Bereiches überprüft
'Mit INTERSECT (="Schnittpunkt") wird geprüft, ob diese Zelle im Bereich [A1:D10] liegt
If Intersect(Target(1, 1), [A1:D10]) Is Nothing Then
MsgBox "Bereich ausserhalb A1:D10 angeklickt !"
Else
MsgBox "Bereich innerhalb A1:D10 angeklickt !"
End If
End Sub
Möchtest Du hingegen nicht das Anklicken einer Zelle, sondern die Änderung einer Zelle überprüfen, musst Du das Ereignis Worksheet_Change verwenden (ebenfalls in das Klassenmodul des Tabellenblattes im VBA-Editor !) :
Private Sub Worksheet_Change(ByVal Target As Range)
'TARGET bezeichne hier die gerade geänderte Zelle oder geänderten Bereich
MsgBox Target.Address
'Auch hier kannst Du z.B. mit INTERSECT prüfen, ob die Änderung INNERHALB oder
'ausserhalb eines Bereiches erfolgte.
'Da auch mehrere Zellen gleichzeitig geändert/gelöscht werden können, empfiehlt sich,
'jede einzelne Zelle zu überprüfen :
Dim rngZelle As Range
For Each rngZelle In Target
If Not Intersect(rngZelle, [A1:D10]) Is Nothing Then
MsgBox rngZelle.Address & " innerhalb des Bereiches A1:D10 wurde geändert !"
End If
Next
'Oder einfach nur die Schnittmenge des geänderten Bereiches mit dem fixen Bereich anzeigen:
If Not Intersect(Target, [A1:D10]) Is Nothing Then
MsgBox Intersect(Target, [A1:D10]).Address
End If
End Sub
Ich hoffe, das war in etwa DAS, was Du gesucht hast.
Gruß, NoNet