Change-Ereignis, Dropdown oder Return
30.07.2004 15:47:41
Kerstin
in Spalte 3 können über eine Gültigkeitsliste Werte eingegeben werden, durch Dropdown oder manuelle Eingabe und Return.
Wenn hier "0" eingegeben wird, soll in der gleichen Zeile in Spalte 4 auch "0" eingetragen werden.
Mein Lösungsansatz setzte voraus, dass die Zeile der markierten Zelle als Variable (r) ermittelt wird.
Wenn der Wert manuell eingegeben wurde, ist nach dem Return die aktuelle Zeile allerdings eine Zeile tiefer als meine Ausgangszelle. Beim Eingeben über Dropdown ändert sich die Zeile nicht.
Ich habe eine Abfangung versucht, bin mit der aber nicht glücklich, weil sie nicht funktioniert, wenn in der nächsten Zeile schon Werte stehen (was zwar meistens nicht der Fall ist, aber im Fall der Fälle zu Problemen führen wird).
Hat jemand eine bessere Idee? Hier mein Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim r As Integer
If Target.Column <> 3 Then Exit Sub
If IsEmpty(Target) Then Exit Sub
If IsEmpty(ActiveCell) Then
'Anwender hat manuell eingegeben und RETURN gedrückt, die Markierung ist eine
'Zeile tiefer gerückt
r = ActiveCell.Row - 1
Else
'Anwender hat aus Dropdownliste gewählt ohne RETURN, die Markierung
'ist an ursprünglicher Stelle
r = ActiveCell.Row
End If
If Cells(r, 3).Value = 0 Then
Cells(r, 4).Value = 0
End If
End Sub