online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon tmpusr vom 12.05.2022, 11:18 Options

Lösung

Felder zweier Spalten in Abhängigkeit zueinander löschen

Hallo allerseits,

ich habe 2 Spalten (in einer Excel 2003 Liste) auf die es ankommt:
Spalte C (Wert1) und Spalte D (Wert2).

Ich möchte gerne Folgendes erreichen:

Wenn ich in eine Zelle in Spalte C einen Wert1 eintrage, soll der
Inhalt der rechts daneben befindlichen Zelle in Spalte D - also Wert2
gelöscht werden.
Genauso umgekehrt. Bei Änderungen in Spalte D soll die links neben
der aktiven Zelle befindliche Zelle in Spalte C gelöscht werden.

Ich habe da zwar schon einen Ansatz - aber wahrscheinlich nicht der
Richtige. Der Makro-Code wird bei Änderungen (Worksheet_Change) im
Tabellenblatt ausgeführt:

---
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wird Spalte D gefüllt (oder geändert), wird im Feld (links neben der aktiven Zelle) in Spalte C der Wert gelöscht
If Target.Column = 4 Then
Target.Offset(0, -1).Value = ClearContents
'Hiermit wird wieder auf die ursprünglich bearbeitete Zelle in Spalte D (zurück)gesprungen
Target.Select
'Wird Spalte C gefüllt (oder geändert), wird im Feld (rechts neben der aktiven Zelle) in Spalte D der Wert gelöscht
ElseIf Target.Column = 3 Then
Target.Offset(0, 1).Value = ClearContents
Target.Select
End If
End Sub
---

Allerdings kommt es hierbei zu einer Kreuz-Endlosschleife, da ja
jeweils die gegenüberliegenden Werte (immer wieder) geändert werden.

Nutze ich nur einen Part davon, also z. B.

---
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wird Spalte C gefüllt (oder geändert), wird im Feld (rechts neben der aktiven Zelle) in Spalte D der Wert gelöscht
If Target.Column = 3 Then
Target.Offset(0, 1).Value = ClearContents
Target.Select
End If
End Sub
---

funktioniert es genau so wie ich es mir wünsche - allerdings
eben nur in eine Richtung und nicht in Beide.

Für Verbesserungsvorschläge oder bessere Ideen wäre ich sehr dankbar!

Liebe Grüße

Karl


Antwort schreiben

Antwort 1 von Hajo_Zi vom 12.05.2022, 11:22 OptionsLösung

Lösung
Hallo Karl,


Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count = 1 Then
        Application.EnableEvents = False
        If Target.Column = 3 Then
            Target.Offset(0, 1) = ""
        ElseIf Target.Column = 4 Then
            Target.Offset(0, -1) = ""
        End If
        Application.EnableEvents = True
    End If
End Sub


Gruß Hajo

Antwort 2 von tmpusr vom 12.05.2022, 13:12 Options

Hallo Hajo,

vielen abertausend Dank!!! So funktioniert es prächtig!

Ganz liebe Grüße

Karl

Ähnliche Themen

Makro Leere Spalten löschen ab Zeile 2
Molares  04.09.2009 - 367 Hits - 3 Antworten

Hilfe beim Löschen von Spalten
Meannine  06.10.2009 - 143 Hits - 6 Antworten

Combobox in Abhängigkeit
BenjaminM  25.05.2010 - 236 Hits - 13 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 09:21:55 2026