Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Wenn Zelle A1 beschrieben dann Zelle A2 leeren... | Herbers Excel-Forum


Betrifft: Wenn Zelle A1 beschrieben dann Zelle A2 leeren... von: Vogel Michael
Geschrieben am: 16.12.2009 08:23:48

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

  

Betrifft: Dafür gibt es keine Funktion von: Erich G.
Geschrieben am: 16.12.2009 08:35:44

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?


  

Betrifft: AW: Dafür gibt es keine Funktion von: Vogel Michael
Geschrieben am: 16.12.2009 08:44:33

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


  

Betrifft: mit Gültigkeit von: WF
Geschrieben am: 16.12.2009 08:51:47

Hi,

Gültigkeitsbedingung in A1: =A2=""
und in A2: =A1=""

Salut WF


  

Betrifft: AW: mit Gültigkeit von: Vogel Michael
Geschrieben am: 16.12.2009 09:10:12

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.


  

Betrifft: dann lösch halt bei ner Fehlermeldung von: WF
Geschrieben am: 16.12.2009 09:29:04

automatisch löschen geht nur per VBA.

Salut WF


  

Betrifft: Vorschlag von: Erich G.
Geschrieben am: 16.12.2009 08:57:56

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


  

Betrifft: AW: Vorschlag von: Vogel Michael
Geschrieben am: 16.12.2009 09:24:35

Hi,

hier kommt die Meldung nur wenn ich beide lösche. Ansonsten passiert nichts.


  

Betrifft: AW: Wenn Zelle A1 beschrieben dann Zelle A2 leeren... von: Hajo_Zi
Geschrieben am: 16.12.2009 09:38:53

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
GrußformelHomepage


  

Betrifft: AW: Wenn Zelle A1 beschrieben dann Zelle A2 leeren... von: Vogel Michael
Geschrieben am: 16.12.2009 10:19:02

Funktioniert ;-)