# VBA Excel -> Ereignis beim Betreten einer Zelle



## deusfalsus (10. September 2010)

Hallo,

kann ich das Ereignis abfangen, wenn im Excel eine Zelle betreten wird? Also nicht das Auswählen, sondern richtig hineingehen, um etwas am Zellinhalt zu bearbeiten.
Dabei darf es keinen Unterschied machen, ob ich per Doppelklick auf die Zelle oder durch klicken in die Eingabezeile oder durch einfach-Lostippen den Zustand herstelle.

Danke an alle, die sich die Mühe machen mir zu helfen!


----------



## Yaslaw (13. September 2010)

Direkt nicht. Aber du kannst es mit einer Kombination von 2 Events lösen
Worksheet_SelectionChange
Worksheet_Change


```
Dim oldTarget As Variant

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    oldTarget = Target
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim oldValue As Variant
    Dim newValue As Variant
   
    oldValue = getValue(oldTarget)
    newValue = getValue(Target)
   
    MsgBox "der Alte Wert: '" & oldValue & "' wird mit '" & newValue & "' überschrieben"
End Sub

Private Function getValue(ByVal Target As Variant) As Variant
    If Not IsArray(Target) Then
        'direkt ausgeben wenn ein einzelnes Feld ausgewählt ist
        getValue = Target
    Else
        'Bei einer Mehrfachauswahl den Inhalt des ersten Feldes ausgeben
        getValue = Target(1, 1)
    End If
End Function
```


----------

