Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Wert löschen bei Änderung eines anderen Wertes

Forumthread: Wert löschen bei Änderung eines anderen Wertes

Wert löschen bei Änderung eines anderen Wertes
Ralf-Eckhard
Hallo.
Ich habe hier mit der Recherche zu meinem Anliegen leider nichts gefunden.
Ich habe in einer Zelle (Bsp.: A11) einen Wert stehen. In einer anderen Zelle der gleichen Zeile (Bsp: D11) ist ein Datum eingetragen. Wenn ich nun dieses Datum in D11 ändere oder lösche, möchte ich daß automatisch der Wert in A11 gelöscht wird. Mit welchem Code läßt sich das realisieren (wenn überhaupt möglich)?
Danke schonmal im voraus für Eure Hilfe.
lg,
Ralf-Eckhard
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert löschen bei Änderung eines anderen Wertes
09.08.2009 11:47:55
{Boris}
Hi Ralf-Eckhard,
in das Klassenmodul des entsprechenden Tabellenblattes einfügen:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo Errorhandler
With Target
If .Count = 1 And .Column = 4 Then
Application.EnableEvents = False
Cells(.Row, 1).ClearContents
End If
End With
Errorhandler:
Application.EnableEvents = True
End Sub
Bei irgendeiner einzelnen Änderung in Spalte D wird der zugehörige Eintrag in Spalte A gelöscht.
Grüße Boris
Anzeige
AW: Wert löschen bei Änderung eines anderen Wertes
09.08.2009 11:56:18
Tino
Hallo,
versuche es mal mit diesem Code.
kommt als Code in die Tabelle
Option Explicit 
 
Private Sub Worksheet_Change(ByVal Target As Range) 
Dim rngZelle As Range 
 
If Not Intersect(Selection, Union(Columns(4), Rows(11))) Is Nothing Then 
    For Each rngZelle In Union(Target.Rows(11), Target.Columns(4)) 
      If rngZelle.Address = "$D$11" Then 
       Application.EnableEvents = False 
        Range("A11").Value = "" 
       Application.EnableEvents = True 
      End If 
    Next rngZelle 
End If 
End Sub 
 
Gruß Tino
Anzeige
AW: Wert löschen bei Änderung eines anderen Wertes
09.08.2009 12:17:20
Ralf-Eckhard
Danke Boris, danke Tino.
Beides funktioniert - jetzt muß ich mir nur noch eins aussuchen :-))
Vielen Dank für die schnelle Hilfe und noch 'nen schönen Sonntag.
Ralf-Eckhard
nicht ganz,...
09.08.2009 12:47:03
Tino
Hallo,
kleine Korrektur.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngZelle As Range
 
If Not Intersect(Range("D11"), Target) Is Nothing Then

Set rngZelle = Union(Target.Rows(11 - Target.Row + 1), Target.Columns(4 - Target.Column + 1))
    
    For Each rngZelle In rngZelle
      If rngZelle.Address = "$D$11" Then

            Application.EnableEvents = False
             Range("A11").Value = ""
            Application.EnableEvents = True

        Exit For
      End If
    Next rngZelle

End If
End Sub
Gruß Tino
Anzeige
;
Anzeige

Infobox / Tutorial

Wert löschen bei Änderung eines anderen Wertes in Excel


Schritt-für-Schritt-Anleitung

Um den Wert in einer Zelle automatisch zu löschen, wenn ein Datum in einer anderen Zelle geändert wird, kannst du den folgenden VBA-Code verwenden. Dieser Code muss in das Klassenmodul des entsprechenden Arbeitsblatts eingefügt werden.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle im Projektfenster das Arbeitsblatt aus, in dem du die Funktion implementieren möchtest.
  3. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    On Error GoTo Errorhandler
    With Target
        If .Count = 1 And .Column = 4 Then
            Application.EnableEvents = False
            Cells(.Row, 1).ClearContents
        End If
    End With
Errorhandler:
    Application.EnableEvents = True
End Sub
  1. Schließe den VBA-Editor und teste die Funktion, indem du ein Datum in der Spalte D änderst.

Häufige Fehler und Lösungen

  • Fehler: Der Wert in der Zelle A11 wird nicht gelöscht, wenn das Datum in D11 geändert wird.

    • Lösung: Stelle sicher, dass der Code im richtigen Arbeitsblatt-Modul eingefügt wurde. Überprüfe die Spalten- und Zeilenangaben im Code.
  • Fehler: Eine Fehlermeldung wird angezeigt, wenn das Datum gelöscht wird.

    • Lösung: Füge eine Fehlerbehandlung im Code hinzu, wie im obenstehenden Beispiel gezeigt.

Alternative Methoden

Eine andere Möglichkeit, das gleiche Ergebnis zu erzielen, ist die Verwendung des folgenden Codes, der etwas flexibler ist:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim rngZelle As Range

    If Not Intersect(Range("D11"), Target) Is Nothing Then
        Application.EnableEvents = False
        Range("A11").Value = ""
        Application.EnableEvents = True
    End If
End Sub

Dieser Code funktioniert ebenfalls, wenn das Datum in D11 geändert wird.


Praktische Beispiele

Angenommen, du hast folgende Zellen:

  • A11: Ein Wert, der gelöscht werden soll.
  • D11: Ein Datum, das geändert werden kann.

Wenn du den Code korrekt implementierst, wird der Wert in A11 automatisch gelöscht, sobald du eine Änderung in D11 vornimmst.


Tipps für Profis

  • Verwende Application.EnableEvents = False, um zu verhindern, dass der Code erneut ausgelöst wird, während du Änderungen vornimmst.
  • Teste den Code in einer sicheren Umgebung, bevor du ihn in wichtigen Arbeitsblättern verwendest.
  • Du kannst den Code erweitern, um weitere Zellen oder Bedingungen zu berücksichtigen, die das Löschen von Werten betreffen.

FAQ: Häufige Fragen

1. Frage
Kann ich diesen Code auch für andere Zellen verwenden?
Antwort: Ja, du kannst die Zellreferenzen im Code anpassen, um andere Zellen zu integrieren.

2. Frage
Funktioniert dieser Code in Excel 2016?
Antwort: Ja, dieser VBA-Code funktioniert in Excel 2016 und auch in neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige