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

Zellen automatisch leeren

Forumthread: Zellen automatisch leeren

Zellen automatisch leeren
12.11.2002 08:38:09
Markus
Hallo,
versuche mit dem Code weiter unten bei Änderung der Zelle "E2" die Zelle "E3" automatisch zu leeren. Das funktioniert auch, wenn ich in der Bearbeitungsleiste den Zellenwert "E2" ändere; wenn die Zelle aber ein Drop-Down-Feld ist (über Daten/Gültigkeit/... eingrichtet) reagiert der Code nicht auf Veränderungen. Kann mir jemand sagen wo der Fehler liegt?
Danke und Gruß Markus


Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Address = "$E$2" Then
Range("E3").Value = ""
End If

End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
Re: Zellen automatisch leeren
12.11.2002 09:26:36
Hajo_Zi
Hallo Markus

ich habe Deinen Code gerade getestet ohne Probleme.

Hast Du den Code in VBA in der entsprechendenTabelle???

Gruß Hajo

Re: Zellen automatisch leeren
12.11.2002 11:32:20
Markus
Hallo Hajo,
der Code ist in der Tabelle.Das ganze ist eigenartig. Ich habe getestet, ob der Rechner auf die Veränderung reagiert, was er tut. Als Reaktion darauf leert er jedoch nicht die gewünschte Zelle. Die Kombination der beiden Anweisungen funktioniert irgendwie nicht.
Gruß Markus


Anzeige
Re: Zellen automatisch leeren
12.11.2002 11:36:51
Hajo_Zi
Hallo Markus

immer auf den letzten Beitrag Antworten dann sieht man seine Antwort.

Ich gehe och mal davon aus die gewünschte Zelle ist E3 und die soll gellerrt werden wenn sich der Inhalt von E2 ändert. Wenn E2 leer oder gefüllt ist und Du geht rauf und Drückts Enter ohne den Inhalt zu ändern wird die Aktion nicht ausgelöst.

Gruß Hajo

Anzeige
Re: Zellen automatisch leeren
12.11.2002 12:17:46
Markus
Hallo Hajo,
wenn ich nichts ändere und entsprechend nicht durch Enter bestätige erwarte ich natürlich auch keine Aktion. Das Problem besteht nach wie vor. An anderer Stelle funktioniert der Code, an meiner Problemstelle eben nicht. Gibt es eine Möglichkeit, daß ich Dir die Mappe zum "Draufschauen" mal zukommen lasse?
Gruß Markus

Anzeige
Re: Zellen automatisch leeren
12.11.2002 12:20:40
Hajo_Zi
Hallo Markus

ok schicke Sie mir mal. Klick auf meinen Namen.

Gruß Hajo

Anzeige

Infobox / Tutorial

Zellen automatisch leeren in Excel


Schritt-für-Schritt-Anleitung

Um die Zelle "E3" automatisch zu leeren, wenn sich der Wert in der Zelle "E2" ändert, kannst Du den folgenden VBA-Code verwenden. Dieser muss im entsprechenden Arbeitsblatt-Modul eingefügt werden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Suche im Projekt-Explorer nach dem Arbeitsblatt, in dem Du die Funktion nutzen möchtest.

  3. Doppelklicke auf das Arbeitsblatt, um das Codefenster zu öffnen.

  4. Füge den folgenden Code in das Fenster ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address = "$E$2" Then
           Range("E3").Value = ""
       End If
    End Sub
  5. Schließe den VBA-Editor und teste die Funktion, indem Du den Wert in "E2" änderst.

Beachte, dass dieser Code nicht funktioniert, wenn "E2" ein Drop-Down-Feld ist, das über die Datenüberprüfung erstellt wurde.


Häufige Fehler und Lösungen

  • Der Code funktioniert nicht bei Drop-Down-Feldern: Wenn Du ein Drop-Down-Feld in "E2" verwendest, reagiert der Code möglicherweise nicht auf Änderungen. Stelle sicher, dass die Datenüberprüfung korrekt eingerichtet ist. Eine alternative Methode ist die Verwendung von Worksheet_SelectionChange, aber diese kann komplizierter sein.

  • Code nicht im richtigen Modul: Vergewissere Dich, dass der Code im spezifischen Arbeitsblatt-Modul und nicht im allgemeinen Modul eingefügt wurde.

  • Excel-Version: Achte darauf, dass Du eine unterstützte Version von Excel verwendest, die VBA unterstützt (z.B. Excel 2010 oder neuer).


Alternative Methoden

  1. Verwendung von Formeln: Anstelle von VBA kannst Du auch eine Formel verwenden, um den Wert in "E3" basierend auf "E2" anzuzeigen. Zum Beispiel:

    =WENN(E2=""; ""; "")
  2. Datenüberprüfung: Stelle sicher, dass die Datenüberprüfung für "E2" korrekt gesetzt ist, um unerwartete Eingaben zu verhindern.

  3. Makros: Du kannst ein Makro erstellen, das die Zelle "E3" leert, wenn Du einen bestimmten Button drückst.


Praktische Beispiele

  • Beispiel 1: Wenn Du ein Drop-Down-Menü in "E2" hast, das die Auswahl zwischen "Ja" und "Nein" bietet, kannst Du den obigen VBA-Code anpassen, um "E3" nur zu leeren, wenn "Ja" ausgewählt wird.

  • Beispiel 2: Verwende den Code in Kombination mit anderen Zellen, um komplexere Logiken zu erstellen, bei denen mehrere Zellen gleichzeitig angepasst werden.


Tipps für Profis

  • Debugging: Wenn der Code nicht wie erwartet funktioniert, füge MsgBox-Befehle ein, um zu überprüfen, ob der Code an den richtigen Stellen ausgeführt wird.

  • Fehlerprotokollierung: Halte ein einfaches Protokoll in einer Hilfsspalte, um nachzuvollziehen, wann und warum die Zelle geleert wird.

  • Performance: Achte darauf, dass umfangreiche VBA-Codes die Leistung von Excel beeinträchtigen können. Halte den Code so einfach wie möglich.


FAQ: Häufige Fragen

1. Warum funktioniert mein Code nicht, wenn ich den Wert aus dem Drop-Down-Menü ändere?
Der Code reagiert nicht auf Änderungen in Drop-Down-Feldern, da diese eine andere Art der Ereignisauslösung verwenden. Du kannst versuchen, die Ereignisse im VBA-Code anzupassen.

2. Wo finde ich das VBA-Modul?
Das VBA-Modul findest Du unter Entwicklertools > Visual Basic, oder indem Du ALT + F11 drückst. Suche im Projekt-Explorer das entsprechende Arbeitsblatt.

3. Kann ich den Code auch für andere Zellen verwenden?
Ja, Du kannst den Code anpassen, um andere Zellen zu berücksichtigen. Ändere einfach die Adressen in den If-Bedingungen und Range-Befehlen nach Deinen Bedürfnissen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige