Note: The other languages of the website are Google-translated. Back to English

Wie lösche ich bestimmte Zelleninhalte, wenn sich der Wert einer anderen Zelle in Excel ändert?

Angenommen, Sie möchten einen Bereich bestimmter Zelleninhalte löschen, wenn der Wert einer anderen Zelle geändert wird. Wie können Sie dies tun? Dieser Beitrag zeigt Ihnen eine Methode zur Lösung dieses Problems.

Löschen Sie den angegebenen Zelleninhalt, wenn sich der Wert einer anderen Zelle mit dem VBA-Code ändert


Löschen Sie den angegebenen Zelleninhalt, wenn sich der Wert einer anderen Zelle mit dem VBA-Code ändert

Wie im folgenden Screenshot gezeigt, wird der Inhalt in Zelle C2: C1 automatisch gelöscht, wenn der Wert in Zelle A3 geändert wird. Bitte gehen Sie wie folgt vor.

1. Im Arbeitsblatt löschen Sie den Zelleninhalt basierend auf anderen Zellenänderungen. Klicken Sie mit der rechten Maustaste auf die Registerkarte Blatt und wählen Sie Code anzeigen aus dem Kontextmenü. Siehe Screenshot:

2. In der Öffnung Microsoft Visual Basic für Applikationen Fenster, kopieren Sie den VBA-Code und fügen Sie ihn in das Code-Fenster ein.

VBA-Code: Löscht den angegebenen Zelleninhalt, wenn sich der Wert einer anderen Zelle ändert

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("A2")) Is Nothing Then
        Range("C1:C3").ClearContents
    End If
End Sub

Hinweis: Im Code ist B2 die Zelle, auf der Sie den Zellinhalt löschen, und C1: C3 ist der Bereich, aus dem Sie den Inhalt löschen. Bitte ändern Sie sie nach Bedarf.

3. Drücken Sie die Taste Andere + Q Tasten zum Schließen der Microsoft Visual Basic für Applikationen Fenster.

Dann können Sie Inhalte im Bereich C1 sehen: C3 wird automatisch gelöscht, wenn sich der Wert in Zelle A2 wie im folgenden Screenshot ändert.


In Verbindung stehende Artikel:


Die besten Tools für die Office-Produktivität

Kutools for Excel löst die meisten Ihrer Probleme und erhöht Ihre Produktivität um 80%

  • Wiederverwendung: Schnell einfügen komplexe Formeln, Diagramme und alles, was du vorher benutzt hast; Zellen verschlüsseln mit Passwort; Mailingliste erstellen und E-Mails senden ...
  • Super Formelriegel (leicht mehrere Textzeilen und Formeln bearbeiten); Layout lesen (leichtes Lesen und Bearbeiten einer großen Anzahl von Zellen); In gefilterten Bereich einfügen...
  • Zellen / Zeilen / Spalten zusammenführen ohne Daten zu verlieren; Inhalt geteilter Zellen; Kombinieren Sie doppelte Zeilen / Spalten... doppelte Zellen verhindern; Bereiche vergleichen...
  • Wählen Sie Duplizieren oder Eindeutig Reihen; Wählen Sie Leere Zeilen (alle Zellen sind leer); Super Find und Fuzzy Find in vielen Arbeitsmappen; Zufällige Auswahl ...
  • Exakte Kopie Mehrere Zellen ohne Änderung der Formelreferenz; Referenzen automatisch erstellen zu mehreren Blättern; Aufzählungszeichen einfügen, Kontrollkästchen und mehr ...
  • Text extrahieren, Text hinzufügen, Nach Position entfernen, Leerzeichen entfernen;; Paging-Zwischensummen erstellen und drucken; Inhalt und Kommentare zwischen Zellen konvertieren...
  • Superfilter (Speichern und Anwenden von Filterschemata auf andere Blätter); Erweiterte Sortierung nach Monat / Woche / Tag, Häufigkeit und mehr; Spezialfilter fett, kursiv ...
  • Kombinieren Sie Arbeitsmappen und Arbeitsblätter;; Tabellen basierend auf Schlüsselspalten zusammenführen; Daten in mehrere Blätter aufteilen; Batch-Konvertierung von xls, xlsx und PDF...
  • Mehr als 300 leistungsstarke Funktionen. Unterstützt Office / Excel 2007-2021 und 365. Unterstützt alle Sprachen. Einfache Bereitstellung in Ihrem Unternehmen oder Ihrer Organisation. 30-tägige kostenlose Testversion mit allen Funktionen. 60 Tage Geld-zurück-Garantie.
kte tab 201905

Office Tab Bringt die Oberfläche mit Registerkarten in Office und erleichtert Ihnen die Arbeit erheblich

  • Aktivieren Sie das Bearbeiten und Lesen von Registerkarten in Word, Excel und PowerPoint, Publisher, Access, Visio und Project.
  • Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters und nicht in neuen Fenstern.
  • Steigert Ihre Produktivität um 50 % und reduziert jeden Tag Hunderte von Mausklicks für Sie!
officetab unten
Kommentare (38)
Noch keine Bewertungen. Bewerten Sie als Erster!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Der Code zum Löschen einer Zelle, wenn sich eine andere ändert, funktioniert großartig !!!! Aber ich brauche es, um umgekehrt zu funktionieren ... Wie ist dieser Code geschrieben??


Danke für Ihre Hilfe
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Lieber Scott,
Was meinst du mit umgekehrt arbeiten? Wenn Sie den Inhalt bestimmter Zellen (C1: C3) manuell löschen, dann den Inhalt der Zelle A2 automatisch löschen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, das funktioniert nur für eine Zelle mit fester Quelle (A2). Wie funktioniert dies dynamisch, z. B. wenn die Quelle eine variable Zelle ist? ich habe versucht zu schreiben
A=aktiveZelle.Zeile
If Not Intersect(Target, Range("A"& A)) is Nothing Then
Range("C1:C3").ClearContents
End If

Dies sollte in Bezug auf Activecell (dh Auswahl) funktionieren, funktioniert jedoch nicht
dank
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Guten Tag,
Bitte versuchen Sie den folgenden VBA-Code. Danke für deinen Kommentar.

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
If (Not Intersect(Target, Rows(1)) Is Nothing) And (Target.Count = 1) Then
Range("C1:C3").ClearContents
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, ich suche nach einer Möglichkeit, eine Reihe von Datenzellen zu löschen, wenn ein "x" in eine bestimmte Zelle eingegeben wird. Ich habe die obige Formel verwendet und sie hat für diese eine Zeile perfekt funktioniert. Das Problem ist, dass ich es auf viele Zeilen erweitern muss. Wenn zum Beispiel ein "x" in "D13" eingegeben wird, muss der Bereich J:13 - v:13 gelöscht werden. Ich brauche das auch, wenn ein x in "D14" eingegeben wird, wie in Ich brauche den Bereich d: 14 - v: 14, um gelöscht zu werden. Gibt es eine Möglichkeit das zu schreiben? Danke für Ihre Hilfe!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, das funktioniert bei mir nicht. Es ändert sich nichts, aber auch keine Fehler. Irgendwelche Tipps?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Guten Tag,
Entschuldigung für die Unannehmlichkeiten. Würden Sie Ihre Office-Version bereitstellen? Vielen Dank für Ihren Kommentar.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Wie verweise ich im Fall von A2 auf eine Zelle aus einem anderen Arbeitsblatt?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
geht das irgendwie ohne VBA?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Sonia,
Habe außer VBA keine Lösung gefunden. Vielen Dank für Ihren Kommentar.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Welchen VBA-Code verwende ich, wenn ich eine Tabelle habe und mehrere Leerzeichen benötige?

Meine Tabelle ist B3:E7. Wenn der Inhalt in Spalte B gelöscht wird, möchte ich, dass die Daten in Spalte C, D, E für diese Zeile gelöscht werden. Ich habe das Folgende für Zeile 3, möchte aber dasselbe in Zeile 4,5,6, 7, XNUMX und XNUMX.

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
If Not Intersect(Target, Range("B3")) ist Nothing Then
Range("C3:E3").ClearContents
End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Was ist mit einem, um einfach den Inhalt einer beliebigen Zelle mit einem Doppelklick zu löschen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo, wie wiederholen Sie den Code für mehr als eine Zelle im Beispiel, dh wenn ich den Inhalt der Zellen a4 und a5 lösche, möchte ich den Inhalt von b4:z4 bzw. b5:z5 löschen, ich muss dies tun Für eine große Tabelle mit 1000 Zeilen wird jeder Rat sehr geschätzt
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Julian, ich suche auch nach dem gleichen, bitte lassen Sie mich wissen, wenn Sie eine Lösung dafür haben.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Bitte ändern Sie die Nummern entsprechend
Dim i als ganze Zahl
Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
Für i = 2 Um 10
Suchbereich = "A" & i
contentrange = "B" & i & ":" & "C" & i
If Not Intersect(Target, Range(lookrange)) is Nothing Then
Range(inhaltsbereich).ClearContents
End If
Weiter ich
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo sagarsrinivas0312, vielen Dank für diesen Code. Ich suche schon eine Woche nach dieser Lösung!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Das ist großartig, danke. Wie mache ich das mehrmals ... so löschen Sie andere Zellen basierend auf einer anderen Spalte?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
riusciresti a scrivermelo in modo che debba solo fare copia ed incolla?
non riesco veramente a farlo funzionare

Vielen Dank
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Ich versuche, zusätzliche Zellen in Spalte A und B zu löschen, wenn ich leere Zellen in Spalte C des Blatts mit dem Namen "Verkauft" finde und das Makro vom Blatt mit dem Namen "Rechnung" ausgeführt wird.

Ich habe den folgenden Code von einer Hilfeseite erhalten, bekomme aber nicht meinen gewünschten.
bitte helft mir dabei. Screenshot angehängt, was ich will.

Summe löschen()

Dim g so lang
Für g = 2 zu ActiveSheet.UsedRange.Rows.Count
If Cells(g, "C").Value = "" Then
Cells(g, "A").ClearContents
Cells(g, "B").ClearContents

End If
Weiter
Endsumme
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Dies scheint nicht zu funktionieren, wenn die angegebenen Zelleninhalte von einer Zelle auf einem anderen Blatt gesteuert werden? gibt es dafür eine Lösung?
Beispiel mit Ihren Zellennamen
Wenn Zelle "A2" (=sheet1[@[a5]] ist und sich diese Nummer auf Sheet 1 ändert, dann ändert sich der Inhalt von A2, es löscht den Inhalt im angegebenen Bereich nicht.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Privates Unterarbeitsblatt_Activate ()
If Range("S2") <> Range("A2").Value Then
Bereich("S2") = Bereich("A2").Wert
Range("d2:g2").ClearContents
End If
'S2' kann durch jede Zelle außerhalb des Datenbereichs ersetzt werden. Was der VBA tut, aktualisiert automatisch die Daten für 'S2', dann steuern die zu aktualisierenden Daten den von Ihnen angegebenen Bereich und ob er gelöscht wird oder nicht.
Dies ist die einzige Möglichkeit, die ich gefunden habe, um dies erfolgreich zu tun, wenn referenzierte Zellen sowohl innerhalb als auch außerhalb des Arbeitsblatts verwendet werden.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Nicht ganz das, was ich brauche, aber ich komme dorthin. Ich habe eine leere Zelle E3. Ich habe Daten in B3. Wenn ich Daten in E3 einfüge, wird B3 gelöscht, wenn sie mit B3 identisch sind. Ich hoffe, Sie können mir helfen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Ist es möglich, bestimmte Zellinhalte zu löschen, wenn die Auslösezelle eine bestimmte Zahl enthält? Sagen wir, WENN Zelle A1 = 1, dann Zellen A2:A4 löschen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Bonjour tout le monde,

Besoin d'aide, j'ai besoin d'effacer le contenu d'une cellule de la Colonne "I" si la cellule (de la même ligne) de la Colonne "O" =0, sur environ 2000 lignes avec des titres tout le 10 lignes environ.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Ich suche nur nach einer einfachen Möglichkeit, es so zu machen, dass, wenn "B2" "Ja" aus der Datenvalidierungsliste ausgewählt hat, Zelle B3 ihre Daten löschen würde ... und umgekehrt: Wenn "B3" "Ja" aus der ausgewählt hat Datenvalidierungsliste, Zelle "B2" würde ihre Daten löschen.

Grundsätzlich gilt B2 or B3 kann sagen "Ja"(aus der Datenvalidierungsliste) aber niemals gleichzeitig, man sollte den anderen löschen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Jeff,
Der folgende VBA-Code kann Ihnen einen Gefallen tun. Bitte versuchen Sie es.
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220721
If Target.Cells.Count > 1 Then Exit Sub
    If (Not Intersect(Target, Range("B2")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B3").ClearContents
        Else
        If (Not Intersect(Target, Range("B3")) Is Nothing) And (Target.Value = "Yes") Then
        Range("B2").ClearContents
    End If
    End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Buongiorno, avrei bisogno di cancellare una serie di caselle (un rettangolo, quindi su più righe e colonne) in base al valore di un'altra cella. es: se la cella A2 è inferiore di 12, il quadrato con vertici opposto C2 : F4 venga cancellato.
Vielen Dank
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Pietro,
Sorry ich verstehe deine Frage nicht ganz. Haben Sie etwas dagegen, einen Screenshot Ihrer Daten hochzuladen?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Помогите с решением, VBA не знаю. Мне нужно при изменении ячейки удалить данные из другой и чтобы это дейстовало на весь столбец.
Меняю А2 удаляется из G2, меняю А3 удаляется из G3, меняю A6 удаляется из G6 и т.д.

Private Sub Worksheet_Change (ByVal-Ziel als Bereich)
If Not Intersect(Target, Range("A2")) ist Nothing Then
Range("G2").ClearContents
End If
End Sub


Данный код хорош для одной ячейки, а как его размножить на все ячейки столбца?
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Наталья,
Der folgende VBA-Code kann Ihnen helfen, das Problem zu lösen. Bitte versuchen Sie es.

Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20221013
    Dim xRight As Range
    Dim KeyCells As Range
    Set KeyCells = Range("A:A")
    Set xRight = Target.Offset(0, 6)
    If Not Application.Intersect(KeyCells, Range(Target.Address)) Is Nothing Then
        xRight.ClearContents
    End If
End Sub
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,

Zu Punkt 3.
Die Taste "Andere" Finde ich nicht auf meiner Windows Tastatur. Ich Habe Strg, Alt, Tab... allerdings sterben Taste Andere gibt es auf meiner Tastatur leider nicht.

Lieben Gruß Mathias
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Mathias,
Wenn Sie die entsprechende Taste auf der Tastatur nicht finden können. Sie können einfach auf die klicken Sie sparen Knopf im Microsoft Visual Basic-Anwendungsfenster um den Code zu speichern und dieses Fenster dann manuell zu schließen.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo,
Der folgende Code funktioniert wie angekündigt, aber die folgenden Probleme treten auf:

Erstens werden beim Ändern der Größe der Zieltabelle alle Tabellendaten gelöscht UND alle Kopfzeilen außer Spalte 1 werden in „Spalte1, Spalte2 usw.“ umbenannt. UND die Arbeitsmappe speichert sich automatisch selbst und beendet das Rückgängigmachen.

Zweitens erhalte ich beim Löschen einer Tabellenzeile einen "Laufzeitfehler 1004 (Method Offset of object Range failed.


Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("F3:F500")) Is Nothing Then
     Target.Offset(0, 1).ClearContents
    ElseIf Not Intersect(Target, Range("G3:G500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
        Target.Offset(0, 2).ClearContents
    ElseIf Not Intersect(Target, Range("H3:H500")) Is Nothing Then
        Target.Offset(0, 1).ClearContents
    End If
End Sub


Irgendeine Idee, was falsch sein könnte?

Vielen Dank im Voraus!
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hola, estoy trabajando una base de datas en OFFICE ONLINE a traves of ONEDRIVE, quiero que al PONER "CANCELADO" o "NOSHOW" elimine el content of the fila seleccionada.
Dieser Kommentar wurde vom Moderator auf der Website minimiert
Hallo Engel,
Der VBA-Code funktioniert nicht in Office Online. Entschuldigung für die Unannehmlichkeiten.
Es sind noch keine Kommentare vorhanden
Mehr laden

Folgen Sie uns

Copyright © 2009 - www.extendoffice.com. | Alle Rechte vorbehalten. Unterstützt von ExtendOffice. | Sitemap
Microsoft und das Office-Logo sind Marken oder eingetragene Marken der Microsoft Corporation in den USA und / oder anderen Ländern.
Geschützt durch Sectigo SSL