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

Forumthread: Inhalt einer Zelle mit Kontrollkästchen löschen

Inhalt einer Zelle mit Kontrollkästchen löschen
Ralf
Hallo miteinander,
Ich habe ein wahrscheinlich leicht zu lösendes Problem.
Wenn der Wert eines Kontrollkästchens "falsch" ist, soll der Inhalt der Zelle $H$14 gelöscht werden.
Ich komme beim besten Willen nicht auf den Code.
Vieleicht kann mir jemand weiterhelfen.
Vielen Dank im Voraus
Ralf
Anzeige
AW: Inhalt einer Zelle mit Kontrollkästchen löschen
01.07.2010 23:50:33
fcs
Hallo Ralf,
für ein Kontrollkästchen aus den Formularsteuerelementen folgende Prozedur in ein allgemeines Modul und dem Kontrollkästchen als Makrozuweisen. Den Namen der Prozedur kannst du natürlich auch ändern.
Dann wird nach Klick auf das Kästchen ggf. der Wert gelöscht.
Gruß
Franz
Sub Kontrollkästchen1_KlickenSieAuf()
Dim oShape As Shape
Set oShape = ActiveSheet.Shapes(Application.Caller)
If Not oShape.ControlFormat.Value = 1 Then
ActiveSheet.Range("H13").ClearContents
End If
End Sub

Anzeige
AW: Inhalt einer Zelle mit Kontrollkästchen löschen
02.07.2010 00:02:46
Ralf
Hallo Franz,
es ist leider kein Formularsteuerelement sondern ein ActiveX-Steuerelement.
Mit zuweisen ist also leider nichts ;-(
Wenn ich es als "Private Sub" eingebe kommt leider eine Fehlermeldung.
Hast du noch neen Tip auf Lager ?
AW: Inhalt einer Zelle mit Kontrollkästchen löschen
02.07.2010 09:20:45
fcs
Hallo Ralf,
die bei Checkboxen haben unterschiedliche Syntax für die Eigenschaftsabfrage und unterschiedliche Werte für gewählt/nicht gewählt.
Mit ActiveX-Checkboxen vereinfacht sich die Prozedur. Diese muss dann natürlich unter dem entsprechenden Tabellenblatt-Modul angelegt werden.
Private Sub CheckBoxXXXXX_Click()
If Me.CheckBoxXXXXX = False Then
Range("H13").ClearContents
End If
End Sub
Gruß
Franz
Anzeige
AW: Inhalt einer Zelle mit Kontrollkästchen löschen
02.07.2010 11:33:50
Ralf
Hallo Franz,
sieht bei mir jetzt so aus:
  • 
    Private Sub SHZuAg4_Zellen_Leeren_Click()
    If SHZuAg4 = False Then
    Range("H14").ClearContents
    Range("N14").ClearContents
    End If
    End Sub
    

  • von der Bezeichnung des Kontrollkästchens und des Bezugs zu den Zellen müsste es passen, aber leider zut sich nichts (aber auch keine Fehlermeldung). Die Werte stehen nach wie vor in den Zellen :-(
    Ist noch irgendwas faul ?
    Anzeige
    AW: Inhalt einer Zelle mit Kontrollkästchen löschen
    02.07.2010 12:19:59
    fcs
    Hallo Ralf,
    wo hängt kann ich nicht sagen.
    Tipps:
    1. Füge falls nicht vorhanden als 1. Zeile im Code ein:
    Option Explicit
    2. Setze im Code in der 1. Zeile der Prozedur einen Haltepunkt (im Editor in der Zeile links auf den grauen Rahmen klicken) und klicke auf die Schaltfläche, um das Makro zu starten. Arbeite den Code mit Taste F8 dann zeilenweise ab. Teste ggf. auch den Wert von SHZuAg4.
    3. Setze vor den Namen der Checkbox wie in meinem Beispiel das "Me." . "Me." ist in Tabellen und Userform-Modulen zwar nicht erforderlich. Es ist eine Systemvariable, die für das Objekt steht in dem der Code steht und hilfreich, wenn man Tippfehler bei den Namen der Steuerelemente vermeiden möchte.
    Irgendwo müsste jetzt etwas auffallen oder eine Fehlermeldung kommen.
    Gruß
    Franz
    Anzeige
    AW: Inhalt einer Zelle mit Kontrollkästchen löschen
    02.07.2010 13:09:55
    Ralf
    Hallo Franz,
    hat alles nichts gebracht. Ich habe weiter oben im Code allerdings schonmal eine Abfrage für das Kästchen.
    Habe deine 2 Zeilen jetzt noch mit an diese Abfrage gehängt und nun geht es.
    Sieht jetzt so aus:
  • 
    Private Sub SHZuAg4_Click()
    If SHZuAg4 = True Then
    EtiGestJa.Visible = True
    EtiGestNein.Visible = True
    End If
    If SHZuAg4 = False Then
    Range("H14").ClearContents
    Range("N14").ClearContents
    EtiGestJa.Visible = False
    EtiGestNein.Visible = False
    End If
    End Sub
    

  • Vielen Dank nochmals für deine Hilfe
    Gruß Ralf
    Anzeige

    Forumthreads zu verwandten Themen

    Anzeige
    Anzeige
    Anzeige
    Anzeige
    Anzeige

    Infobox / Tutorial

    Inhalt einer Zelle mit Kontrollkästchen löschen


    Schritt-für-Schritt-Anleitung

    Um den Inhalt einer Zelle in Excel zu löschen, wenn ein Kontrollkästchen (Checkbox) aktiviert oder deaktiviert wird, befolge diese Schritte:

    1. Öffne Excel und gehe zu dem Arbeitsblatt, auf dem sich dein Kontrollkästchen befindet.
    2. Füge ein Kontrollkästchen hinzu:
      • Gehe zu "Entwicklertools" > "Einfügen" und wähle das entsprechende Kontrollkästchen aus.
    3. Klicke mit der rechten Maustaste auf das Kontrollkästchen und wähle „Code anzeigen“.
    4. Füge den folgenden VBA-Code ein:

      Private Sub CheckBoxXXXXX_Click()
         If Me.CheckBoxXXXXX = False Then
             Range("H14").ClearContents
             Range("N14").ClearContents
         End If
      End Sub

      Ersetze CheckBoxXXXXX mit dem tatsächlichen Namen deines Kontrollkästchens.

    5. Teste den Code, indem du das Kontrollkästchen aktivierst oder deaktivierst.

    Häufige Fehler und Lösungen

    1. Checkbox löschen Excel geht nicht:

      • Stelle sicher, dass du im richtigen Arbeitsblatt-Modul den Code eingefügt hast. Bei ActiveX-Steuerelementen ist das entscheidend.
    2. Excel Kontrollkästchen lässt sich nicht löschen:

      • Klicke mit der rechten Maustaste auf das Kontrollkästchen und wähle "Steuerelement formatieren" oder "Entwicklertools" > "Entwurf" um das Steuerelement zu aktivieren.
    3. Keine Fehlermeldung, aber die Zellen bleiben unverändert:

      • Überprüfe, ob die Namen der Kontrollkästchen und die Zellbezüge korrekt eingegeben wurden. Nutze Option Explicit um Tippfehler zu vermeiden.

    Alternative Methoden

    Wenn du die Werte von mehreren Kontrollkästchen gleichzeitig löschen möchtest, kannst du auch die Funktion excel alle kontrollkästchen löschen verwenden:

    Sub AlleKontrollkaestchenLoeschen()
        Dim oShape As Shape
        For Each oShape In ActiveSheet.Shapes
            If TypeName(oShape.OLEFormat.Object) = "CheckBox" Then
                oShape.OLEFormat.Object.Value = False
            End If
        Next oShape
        Range("H14:N14").ClearContents
    End Sub

    Diese Methode entfernt den Haken von allen Kontrollkästchen und löscht den Inhalt der Zellen H14 und N14.


    Praktische Beispiele

    Hier ist ein einfaches Beispiel für die Verwendung eines Kontrollkästchens, um Inhalte zu löschen:

    Private Sub CheckBox1_Click()
        If CheckBox1.Value = False Then
            Range("H14").ClearContents
        End If
    End Sub

    Wenn das Kontrollkästchen deaktiviert ist, wird der Inhalt von Zelle H14 gelöscht. Stelle sicher, dass das Kontrollkästchen den Namen CheckBox1 trägt.


    Tipps für Profis

    • Verwende Me.: Wenn du in Userform-Modulen arbeitest, ist es hilfreich, Me. vor den Steuerelementnamen zu setzen, um Tippfehler zu vermeiden.
    • Haltepunkt setzen: Setze Haltepunkte im Code, um zu sehen, wo es möglicherweise hakt. Nutze dazu die F8-Taste, um den Code schrittweise auszuführen.
    • Option Explicit verwenden: Dies hilft dir, alle Variablen zu deklarieren und Tippfehler zu vermeiden, was besonders bei langen VBA-Skripten nützlich ist.

    FAQ: Häufige Fragen

    1. Wie lösche ich Kontrollkästchen in Excel?
    Du kannst Kontrollkästchen löschen, indem du mit der rechten Maustaste darauf klickst und 'Löschen' wählst. Wenn dies nicht funktioniert, aktivere den Entwurfsmodus im Menü "Entwicklertools".

    2. Warum funktioniert mein VBA-Code nicht?
    Überprüfe, ob du den Code im richtigen Modul platziert hast. ActiveX-Steuerelemente benötigen ihren eigenen Code im Arbeitsblatt-Modul, während Formularsteuerelemente in allgemeinen Modulen platziert werden können.

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige