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

Zelleninhalt löschen wenn in der Nachbarzelle der

Forumthread: Zelleninhalt löschen wenn in der Nachbarzelle der

Zelleninhalt löschen wenn in der Nachbarzelle der
01.04.2016 18:06:42
Uwe

Hallo,
ich bin auf der Suche nach einer Lösung, um nach einer dynamischen Dropdown-Listen-Auswahl (1. Wert in Spalte A und in Spalte B der 2. Wert)den Wert in der Zelle 2 zu löschen, wenn Zelle 1 geändert wird. Wie wahrscheinlich bekannt, bleibt ja nach der Auswahl 1 und 2, bei einer nachträglichen Änderung der Auswahl in 1 der Wert in 2 leider unverändert.
Daher möchte ich nun ein Makro einbinden, dass bei einer Änderung in Zelle 1 den Wert in Zelle 2 löscht. Und zwar für jede Zelle innerhalb der Spalte A und B. Daher bei Änderung in A1, B1 löschen; bei Änderung in A2, B2 löschen; usw...
Lösungen die ich bisher gefunden habe beziehen sich meist auf eine bestimmte Zelle, deren Wert geändert wird und dann eine oder mehrere Zellen löscht.
Ich hoffe es ist mir gelungen, mich verständlich auszudrücken.
Schon mal vielen Dank für die Unterstützung
Uwe

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Zelleninhalt löschen wenn in der Nachbarzelle der
01.04.2016 19:02:55
Nepumuk
Hallo,
in das Modul der Tabelle:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objRange As Range, objCell As Range
    Set objRange = Intersect(Target, Columns(1))
    If Not objRange Is Nothing Then
        For Each objCell In objRange
            Call objCell.Offset(0, 1).ClearContents
        Next
        Set objRange = Nothing
    End If
End Sub

Gruß
Nepumuk

Anzeige
Zelleninhalt löschen wenn in der Nachbarzelle der
02.04.2016 08:39:40
Nepumuk
Hallo,
ich hab noch was vergessen:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim objRange As Range, objCell As Range
    Set objRange = Intersect(Target, Columns(1))
    If Not objRange Is Nothing Then
        Application.EnableEvents = False
        For Each objCell In objRange
            Call objCell.Offset(0, 1).ClearContents
        Next
        Application.EnableEvents = True
        Set objRange = Nothing
    End If
End Sub

Gruß
Nepumuk

Anzeige
AW: Zelleninhalt löschen wenn in der Na
03.04.2016 09:26:06
Uwe
Hallo Nepumuk,
vielen, vielen Dank. Habe es gerade ausprobiert und es funktioniert wie gehofft. Habe gelich die zweite Variante probiert.
Habe aber noch folgende Fragen:
- Kann man im Modul einer Tabelle (Tabellenblatt) mehrere Makros haben?
- Wenn nicht, wie kann ich dann dieses Makro auf eine weitere Spalte erweitern - a) um den Bereich Spalte C mit einzubinden und b) eine andere Spalte (sagen wir H) in Anhängigkeit von der Löschung in B (oder später B und/oder C)
zu realisieren?
Der Hintergrund ist, dass ich gerade eine Tabelle für möglichst fehlerfreie Eingabe entwerfe und mir bei der Ausarbeitung immer noch neu Ideen kommen.
Schon mal Danke für die Antworte(n) und einen schönen Sonntag
Uwe

Anzeige
AW: Zelleninhalt löschen wenn in der Na
03.04.2016 09:58:47
Nepumuk
Hallo,
du kannst nur ein Makro mit mehreren Abfragen darin haben. Aber das ist kein Problem.
Gruß
Nepumuk

AW: Zelleninhalt löschen wenn in der Na
03.04.2016 17:38:11
Uwe
Okay,
da ich auch davon keine Ahnung habe, werde ich melden wenn ich meine Vorstellungen besser konkretisieren kann bzw. mit meinen Veruschen nicht weiter komme.
Danke
Uwe

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Zelleninhalt in Excel löschen basierend auf Nachbarzellen


Schritt-für-Schritt-Anleitung

Um den Zelleninhalt in Excel zu löschen, wenn in der Nachbarzelle ein bestimmter Wert ausgewählt ist, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Anleitung:

  1. Öffne die Excel-Datei und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Im Projektfenster auf der linken Seite, suche das Arbeitsblatt, in dem du die Funktion einfügen möchtest. Doppelklicke darauf.

  3. Füge den folgenden Code in das Modul ein:

    Option Explicit
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        Dim objRange As Range, objCell As Range
        Set objRange = Intersect(Target, Columns(1)) ' Spalte A überwachen
    
        If Not objRange Is Nothing Then
            For Each objCell In objRange
                objCell.Offset(0, 1).ClearContents ' Löscht den Inhalt in Spalte B
            Next
        End If
    End Sub
  4. Schließe den VBA-Editor und teste die Funktion, indem du einen Wert in Spalte A änderst. Der entsprechende Wert in Spalte B sollte gelöscht werden.


Häufige Fehler und Lösungen

  • Excel Fehlermeldung: Push Zellen nicht leer
    Wenn du diese Fehlermeldung erhältst, stelle sicher, dass du die ClearContents-Methode korrekt verwendest und dass die Zellen, die du löschen möchtest, tatsächlich leer sind.

  • Zelleninhalt wird nicht gelöscht
    Überprüfe, ob das Makro aktiv ist und ob du in der richtigen Spalte arbeitest. Der obige Code löscht nur Inhalte in Spalte B, wenn in Spalte A Änderungen stattfinden.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du die Funktion WENN in Excel nutzen, um Zelleninhalte bedingt anzuzeigen oder zu leeren. Beispiel:

  1. In Zelle B1 könntest du folgende Formel verwenden:

    =WENN(A1="";"";B1)

Dies zeigt in B1 nur einen Wert an, wenn A1 nicht leer ist.


Praktische Beispiele

  1. Löschen basierend auf spezifischen Werten: Angenommen, du möchtest den Inhalt in Spalte B löschen, wenn in Spalte A der Wert "X" steht. Du kannst den VBA-Code wie folgt anpassen:

    If objCell.Value = "X" Then
        objCell.Offset(0, 1).ClearContents
    End If
  2. Inhalt mehrerer Zellen löschen: Wenn du auch Spalte C in die Löschaktion einbeziehen möchtest, erweitere den Code:

    objCell.Offset(0, 1).ClearContents ' Löscht B
    objCell.Offset(0, 2).ClearContents ' Löscht C

Tipps für Profis

  • Makros speichern: Achte darauf, deine Datei als .xlsm (Excel-Arbeitsmappe mit Makros) zu speichern, damit die VBA-Codes erhalten bleiben.
  • Entwickleroption aktivieren: Wenn du regelmäßig mit VBA arbeitest, aktiviere die Entwicklertools in Excel, um schnellen Zugriff auf den VBA-Editor zu haben.
  • Fehlerbehebung: Wenn du während der Nutzung auf Probleme stößt, überprüfe die Zeile, die den Fehler verursacht, und nutze die Debugging-Optionen im VBA-Editor.

FAQ: Häufige Fragen

1. Kann ich mehrere Makros im selben Modul haben?
Ja, du kannst mehrere Makros in einem Modul erstellen. Achte darauf, dass sie nicht miteinander in Konflikt stehen.

2. Wie kann ich das Makro auf andere Spalten erweitern?
Du kannst zusätzliche If-Abfragen im Code einfügen, um auch weitere Spalten zu berücksichtigen. Zum Beispiel, um Spalte C abhängig von Spalte A zu löschen, verwende objCell.Offset(0, 2).ClearContents.

3. Was tun, wenn das Makro nicht ausgeführt wird?
Überprüfe, ob die Makros in Excel aktiviert sind. Gehe zu den Excel-Optionen und aktiviere die Makros unter den Sicherheitseinstellungen.

4. Funktioniert dies in allen Excel-Versionen?
Der VBA-Code sollte in den meisten modernen Excel-Versionen, einschließlich Excel 2010 und neuer, funktionieren.

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