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

Forumthread: mittels VBA Zellinhalt löschen wenn

mittels VBA Zellinhalt löschen wenn
12.03.2013 16:46:03
Michael
Hallo,
trotz intensiver Recherche komme ich einfach nicht weiter.
Ich möchte mittels VBA den Wert der Zelle F26 löschen, wenn in der Zelle C14 "Maus" steht. Ich weis dass ich das über die wenn Funktion machen könnte, aber die Zelle F26 muss beschreibbar bleiben. Im normalen "Betrieb" ist sowohl das Blatt als auch die Mappe gesperrt.
Mit diesem Code habe ich es versucht, sowohl im Arbeitsblatt als auch als Modul.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("C14").Value = "Maus" Then Range("F26") = ""
End Sub
Gruß
Michael

Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
If Range("C14")="Maus" ? owT - Gruß
12.03.2013 16:57:38
robert

sorry-vergiss es - owT - Gruß
12.03.2013 17:04:51
robert

AW: mittels VBA Zellinhalt löschen wenn
12.03.2013 16:59:56
Daniel
Hi
wie wird der Wert in C14 geändert?
schreibt der Anwender dort direkt was rein oder steht da eine Formel drin?
Gruß Daniel

Anzeige
AW: mittels VBA Zellinhalt löschen wenn
12.03.2013 17:43:56
Michael
Hallo Daniel,
der Wert in C14 wird mittels Drop-Down-Feld ausgewählt (Gültigkeit z.B. 0, Maus, Ratte, Biber).
Gruß Michael

dann muss doch Worksheet_Change klappen oT
12.03.2013 17:49:06
Matthias

AW: mittels VBA Zellinhalt löschen wenn
12.03.2013 17:52:48
Daniel
Hi
sollte so eigentlich funktionieren:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "C14" Then
If Target.Value = "Maus" Then
Application.EnableEvents = False
Range("F26").ClearContents
Application.EnableEvents = True
End If
End If
End Sub
der Blattschutz spielt keine Rolle, da du für beide Zellen ja die Eigenschaft "Gesperrt" nicht gesetzt haben solltest.
Gruß Daniel

Anzeige
mittels VBA Zellinhalt löschen wenn
12.03.2013 18:08:51
Michael
Hallo Daniel,
deinen Code werde ich dann testen, ich muss jetzt nochmal los.
Ich melde mich dann wieder. Danke
Gruß Michael

mittels VBA Zellinhalt löschen wenn
12.03.2013 18:37:30
Michael
Hallo Daniel,
dein Code funktioniert perfekt. Danke
Wie es immer so ist, wenn etwas klappt kommen die nächsten Begehrlichkeiten.
Kann man nach dem Löschen von F26 für diese Zelle auch noch den Schreibschutz setzen ?
Gruß
Michael

Anzeige
AW: mittels VBA Zellinhalt löschen wenn
12.03.2013 18:42:07
Daniel
klar kann man.
ActiveSheet.Unprotect "DeinPasswort"
Range("F26").Locked = true
ActiveSheet.Protect "DeinPasswort"

bei so Fragen hilft einem auch gerne mal der Recorder.
du musst dann halt im weiteren Bedenken, daß wenn du per Makro die Zelle bearbeiten willst, du vorher den schutz wie gezeigt aufheben und hinter her wieder aktivieren musst.
gruß Daniel

Anzeige
mittels VBA Zellinhalt löschen wenn
12.03.2013 18:48:58
Michael
Hallo Daniel,
deine Antwort klingt so einfach, aber wie genau geht es?
F26 soll beschreibbar sein, wenn aber C14 = "Maus", dann soll F26 schreibgeschützt sein.
Muss der oben genannte Code mit dem anderen zusammengefügt werden?
Gruß
Michael

AW: mittels VBA Zellinhalt löschen wenn
12.03.2013 18:52:21
Daniel
ja, natürlich muss der Code zum anderen hinzugefügt werden.
Gruß Daniel

Anzeige
mittels VBA Zellinhalt löschen wenn
12.03.2013 19:30:38
Michael
Hallo Daniel,
wäre es so richtig ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) = "C14" Then
If Target.Value = "Maus" Then
Application.EnableEvents = False
Range("F26").ClearContents
ActiveSheet.Unprotect "DeinPasswort"
Range("F26").Locked = true
ActiveSheet.Protect "DeinPasswort"
Application.EnableEvents = True
End If
End If
End Sub
Gruß
Michael

Anzeige
mittels VBA Zellinhalt löschen wenn
12.03.2013 20:36:46
Michael
Hallo Daniel,
Problem dank deiner tatkräftigen Hilfe und mit etwas probieren gelöst.
Jetzt bin ich rundherum zufrieden.
Schönen Abend und nochmals Danke
Michael

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Zellinhalt in Excel mit VBA löschen, wenn eine Bedingung erfüllt ist


Schritt-für-Schritt-Anleitung

Um den Inhalt einer Zelle in Excel zu löschen, wenn in einer anderen Zelle ein bestimmter Wert steht, kannst du VBA (Visual Basic for Applications) verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

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

  2. Wähle das Arbeitsblatt aus, auf dem du arbeiten möchtest.

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

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Target.Address(0, 0) = "C14" Then
           If Target.Value = "Maus" Then
               Application.EnableEvents = False
               Range("F26").ClearContents
               ActiveSheet.Unprotect "DeinPasswort"
               Range("F26").Locked = True
               ActiveSheet.Protect "DeinPasswort"
               Application.EnableEvents = True
           End If
       End If
    End Sub
  4. Passe "DeinPasswort" an dein tatsächliches Passwort an.

  5. Schließe den VBA-Editor und teste die Funktion, indem du den Wert in C14 änderst.


Häufige Fehler und Lösungen

Fehler 1: Der Code funktioniert nicht, wenn die Zelle C14 geändert wird.

Lösung: Stelle sicher, dass das Arbeitsblatt nicht geschützt ist oder dass du die Zellen nicht als "Gesperrt" markiert hast, bevor der Code ausgeführt wird.

Fehler 2: Der Schreibschutz wird nicht korrekt gesetzt.

Lösung: Überprüfe, ob der Code zur Deaktivierung und Aktivierung des Blattschutzes korrekt implementiert ist. Achte darauf, dass du die richtigen Passwörter verwendest.


Alternative Methoden

Wenn du kein VBA verwenden möchtest, kannst du auch die Funktion "Bedingte Formatierung" oder die WENN-Funktion nutzen, um visuelle Hinweise zu geben, wenn ein bestimmter Wert erreicht wird, anstatt den Zelleninhalt zu löschen.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du vba zelleninhalt löschen effektiv nutzen kannst:

  • Beispiel 1: Lösche den Inhalt von Zelle F26, wenn der Wert in C14 "Ratte" ist.

    If Target.Value = "Ratte" Then
      Range("F26").ClearContents
    End If
  • Beispiel 2: Leere einen Bereich, wenn in einer anderen Zelle "Biber" steht.

    If Target.Value = "Biber" Then
      Range("A1:A10").ClearContents
    End If

Tipps für Profis

  • Nutze Application.EnableEvents = False, um zu verhindern, dass der Code erneut ausgelöst wird, während du Zellen bearbeitest.
  • Verwende den Makro-Recorder, um komplexere Aufgaben zu automatisieren und den generierten VBA-Code als Ausgangspunkt zu verwenden.
  • Denke daran, dass du den Blattschutz vor dem Schreiben in geschützte Zellen aufheben musst, bevor du Inhalte änderst oder löschst.

FAQ: Häufige Fragen

1. Kann ich den Code auch für andere Zellen verwenden?
Ja, du kannst den Code leicht anpassen, indem du die Zellreferenzen änderst.

2. Was passiert, wenn ich den Blattschutz nicht setze?
Ohne Blattschutz kann jeder Benutzer die Zelle F26 jederzeit bearbeiten, was möglicherweise unerwünscht ist.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in allen modernen Excel-Versionen funktionieren, solange die VBA-Funktionalität unterstützt wird.

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