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

Wenn Zelle A1 beschrieben dann Zelle A2 leeren...

Forumthread: Wenn Zelle A1 beschrieben dann Zelle A2 leeren...

Wenn Zelle A1 beschrieben dann Zelle A2 leeren...
Vogel
Hi,
mir fehlt absolut nicht ein wie die Funtion heißt.
Also,
wenn ich in Zelle A1 etwas schreibe, dann soll es mir Zelle A2 löschen.
Schreibe ich dann aber in Zelle A2 etwas, dann soll es mir Zelle A1 löschen.
Gruß Michael
Anzeige
Dafür gibt es keine Funktion
16.12.2009 08:35:44
Erich
Hi Michael,
was soll passieren, wenn gleichzeitig A1 und A2 geändert werden?
(Das geht z. B., indem man die Werte von zwei Zellen in den Bereich A1:A2 kopiert.)
Eine solche "Funktion" gibt es nicht. Das programmiert man in VBA, als Ereignismakro.
Einen Vorschlag will ich gern machen - nach deiner Antwort.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
P.S.: VBA gut?
Anzeige
AW: Dafür gibt es keine Funktion
16.12.2009 08:44:33
Vogel
Hi,
das beide Zelle beschrieben werden, darf es nicht geben.
Es kann immer nur A1 oder A2 mit dem Text "X" beschrieben sein.
VBA-Eigentlich nur mit Copy&Paste und ab und zu manuel etwas abändern.
Gruß Michael
mit Gültigkeit
16.12.2009 08:51:47
WF
Hi,
Gültigkeitsbedingung in A1: =A2=""
und in A2: =A1=""
Salut WF
Anzeige
AW: mit Gültigkeit
16.12.2009 09:10:12
Vogel
Hi,
die Lösung ist fast richtig. Wenn aber jemand was in A1 schreibt, soll der Wert in A2 gelöscht werden!! Jetzt kommt aber nur eine Fehlermeldung.
dann lösch halt bei ner Fehlermeldung
16.12.2009 09:29:04
WF
automatisch löschen geht nur per VBA.
Salut WF
Vorschlag
16.12.2009 08:57:56
Erich
Hi Michael,
probier mal (Prozedur gehört in das Modul der Tabelle, in der sie wirken soll):

Private Sub Worksheet_Change(ByVal Target As Range)
Dim rngB As Range
Set rngB = Intersect(Target, Cells(1, 1).Resize(2))
If Not rngB Is Nothing Then
If rngB.Count = 2 Then
MsgBox "Es darf nur eine Zelle geändert werden."
ElseIf rngB.Count = 2 Then
Application.EnableEvents = False
If rngB.Row = 1 Then
Cells(2, 1).ClearContents ' oder Clear
Else
Cells(1, 1).ClearContents ' oder Clear
End If
Application.EnableEvents = True
End If
End If
End Sub
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Vorschlag
16.12.2009 09:24:35
Vogel
Hi,
hier kommt die Meldung nur wenn ich beide lösche. Ansonsten passiert nichts.
AW: Wenn Zelle A1 beschrieben dann Zelle A2 leeren...
16.12.2009 09:38:53
Hajo_Zi
Hallo Volker,
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Address = "$A$1" And Target  "" Then
Range("A2") = ""
ElseIf Target.Address = "$A$2" And Target  "" Then
Range("A1") = ""
End If
Application.EnableEvents = True
End Sub

Anzeige
AW: Wenn Zelle A1 beschrieben dann Zelle A2 leeren...
16.12.2009 10:19:02
Vogel
Funktioniert ;-)
Anzeige

Infobox / Tutorial

Zelle A1 beschrieben? So leere Zelle A2!


Schritt-für-Schritt-Anleitung

Um die Funktionalität zu erreichen, dass Zelle A2 automatisch geleert wird, wenn Zelle A1 beschrieben wird (und umgekehrt), benötigst du ein VBA-Makro. Folgende Schritte führst du aus:

  1. Öffne dein Excel-Dokument.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Doppelklicke auf das Arbeitsblatt, in dem du die Funktion haben möchtest (z.B. "Tabelle1").

  4. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       Application.EnableEvents = False
       If Target.Address = "$A$1" And Target <> "" Then
           Range("A2") = ""
       ElseIf Target.Address = "$A$2" And Target <> "" Then
           Range("A1") = ""
       End If
       Application.EnableEvents = True
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Teste die Funktion, indem du in Zelle A1 oder A2 etwas schreibst.


Häufige Fehler und Lösungen

  • Fehlermeldung beim Löschen: Wenn du eine Fehlermeldung erhältst, stelle sicher, dass das Makro korrekt eingefügt wurde und dass die Ereignisse in VBA aktiviert sind (Application.EnableEvents = True).

  • Beide Zellen beschrieben: Der Code sorgt dafür, dass immer nur eine Zelle beschrieben ist. Wenn du versuchst, in beide Zellen gleichzeitig etwas einzutragen, wird das nicht funktionieren.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du auch mit Gültigkeitsregeln arbeiten, um sicherzustellen, dass in A1 und A2 nicht gleichzeitig etwas steht:

  1. Gehe zu Zelle A1.
  2. Wähle "Daten" > "Datenüberprüfung".
  3. Setze die Regel auf =A2="".
  4. Wiederhole den Vorgang für Zelle A2 mit der Regel =A1="".

Diese Methode verhindert jedoch nicht das manuelle Löschen und ist nicht so effektiv wie VBA.


Praktische Beispiele

Angenommen, du möchtest eine einfache Eingabeüberprüfung für eine Liste erstellen. Du kannst die oben genannten VBA-Methoden nutzen, um zu gewährleisten, dass immer nur eine der beiden Zellen (A1 oder A2) beschrieben ist. Wenn du beispielsweise in A1 "X" eingibst, wird A2 automatisch geleert.

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Address = "$A$1" And Target <> "" Then
        Range("A2") = ""
    ElseIf Target.Address = "$A$2" And Target <> "" Then
        Range("A1") = ""
    End If
    Application.EnableEvents = True
End Sub

Tipps für Profis

  • Ereignismakros: Stelle sicher, dass du die Application.EnableEvents-Eigenschaft verwendest, um zu verhindern, dass das Makro in eine Endlosschleife gerät, wenn Zellen geleert werden.

  • Erweiterte Validierung: Du kannst die Logik erweitern, um mehr Bedingungen hinzuzufügen, wie z.B. die Validierung von Inhalten in den Zellen.


FAQ: Häufige Fragen

1. Kann ich diese Methode auch für andere Zellen verwenden?
Ja, du kannst den VBA-Code anpassen, um auch andere Zellen zu überwachen. Ersetze einfach die Zelladressen im Code.

2. Funktioniert das in allen Excel-Versionen?
Ja, die vorgeschlagene Methode funktioniert in den meisten Excel-Versionen, die VBA unterstützen.

3. Gibt es eine Möglichkeit, diese Funktion ohne VBA zu implementieren?
Ja, du kannst die Gültigkeitsregeln verwenden, um sicherzustellen, dass nur eine Zelle beschrieben wird, jedoch ist dies weniger flexibel als ein VBA-Makro.

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