Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren

Forumthread: VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren

VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren
18.07.2025 14:37:01
Chrstn
Hallo zusammen,

bei folgendem Problem komme ich leider nicht weiter:

Wenn in Zelle I der Wert geändert wird, sollen sich die Zellen M und O der gleichen Zeile automatisch leeren.
Genauso soll sich Zelle O automatisch leeren, wenn sich der Wert in Spalte M ändert.

Das funktioniert soweit auch mit folgenden VBA- Befehlen:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

Dim Zeile As Long
Application.EnableEvents = False

On Error GoTo Ende

If Not Intersect(Target, Me.Columns("I")) Is Nothing Then
For Each cell In Intersect(Target, Me.Columns("I"))
Zeile = cell.Row
Me.Cells(Zeile, "M").ClearContents
Me.Cells(Zeile, "O").ClearContents
Next cell
End If

If Not Intersect(Target, Me.Columns("M")) Is Nothing Then
For Each cell In Intersect(Target, Me.Columns("M"))
Zeile = cell.Row
Me.Cells(Zeile, "O").ClearContents
Next cell
End If

Ende:

Application.EnableEvents = True

End Sub


Nur sollten sich die genannten Zellen wirklich erst bei einer Änderung leeren, aktuell werden die Zellen bereits geleert, wenn ich nur auf Zelle I (oder M) klicke, ohne wirklich etwas zu ändern.

Gibt es da eine Möglichkeit?

Beste Grüße
Christian

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren
18.07.2025 14:41:36
cysu11
Hi Christian,

so:

Private Sub Worksheet_Change(ByVal Target As Range)

...dein Code
End Sub


LG, Alexandra
AW: VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren
18.07.2025 14:55:57
Chrstn
Hallo Alexandra,

dachte nicht, dass es so einfach ist... aber manchmal sind es die kleinen Dinge, die den großen Unterschied ausmachen. :-D

Perfekt, vielen Dank für die superschnelle Lösung!

LG
Christian
Anzeige
AW: VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren
18.07.2025 15:20:19
daniel
naja, "anderes Event" ist jetzt keine kleinigkeit.

hier mal ein anderer Weg, wie du die Aufgabe lösen kannst.
etwas kürzer, keine Schleifen, keine Variablen:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
If Not Intersect(Target, Range("I:I")) Is Nothing Then Intersect(Intersect(Target, Range("I:I")).EntireRow, Range("M:M,O:O")).ClearContents
If Not Intersect(Target, Range("M:M")) Is Nothing Then Intersect(Intersect(Target, Range("M:M")).EntireRow, Range("O:O")).ClearContents
Application.EnableEvents = True
End Sub


Anzeige
AW: VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren
18.07.2025 18:49:12
Yal
Wenn ich das richtig sehe, sollte Target.EntireRow im zweiten Teil sogar reichen:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False
If Not Intersect(Target, Range("I:I")) Is Nothing Then Intersect(Target.EntireRow, Range("M:M,O:O")).ClearContents
If Not Intersect(Target, Range("M:M")) Is Nothing Then Intersect(Target.EntireRow, Range("O:O")).ClearContents
Application.EnableEvents = True
End Sub


@Christian: man erlaubt sich hier "Range" ohne sonstige Blatt-Bezeichner zu verwenden, weil das Blatt aktiv sein muss, um ein Ereignis "Change" auszulösen. (Es sei denn man stosst die Eingabe per Makro, aber es war in der Aufgabenstellung nicht drin)

VG
Yal
Anzeige
AW: VBA - Erst nach Änderung einer Zelle --> ander Zellen leeren
18.07.2025 19:04:20
daniel
im Prinzip ja, sollte reichen.

es ist natürlich denkbar, dass der Anwender die Zellen J4, I5, I8, K10 mit gedrückter STRG-Taste auswählt und dann über STRG+ENTER gemeinsam ändert oder mit ENTF diese Zellen leert.
dann sollten laut Definition die Zellen M4, O4, M10 und O10 nicht geleert werden und das sichere ich über das innere Intersect ab.
Ob man es rein macht oder nicht, hängt davon ab wie wahrscheinlich dieser Fall ist.
Anzeige

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige