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

Forumthread: Checkboxen nur in ausgewählten Zeilen löschen

Checkboxen nur in ausgewählten Zeilen löschen
03.01.2005 14:07:43
EL-JUNGO
Brauche unbedingt HILFE!!!
Hallo erstmal!
Habe eine Tabelle mit mehreren Kontrollkästchen (Checkbox).
Wenn ich z.B eine Zeile makiere die gelöscht werden soll, überschreiben sich die Kontrollkästchen.
Habe nun ein Makro gefunden, dass per Buttonclick alle im Dokument befindlichen Kontrollkästchen löscht!
Möchte aber nur einen ausgewählten Bereich löschen! Wenn es geht auch noch die Inhalte. Also mit ClearContents oder wie die Funktion heißt!
Hier der Code, den ich bisher habe!!

Sub CommandButton1_Click()
Dim Sh As Object
With Sheets("Oktober")
For Each Sh In ActiveSheet.Shapes
If InStr(Sh.Name, "Check") > 0 Then Sh.Delete
Next
End With
End Sub

Hey im voraus schonmal tausendfacher dank für jede Antwort!
EL-JUNGO
Anzeige

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Checkboxen nur in ausgewählten Zeilen löschen
03.01.2005 14:34:00
Josef
Hallo ? (realnames sind hier üblich und erwünscht!)
Versuch's mal so:

Sub CommandButton1_Click()
Dim oObj As OLEObject
Selection.ClearContents
With Sheets("Oktober")
For Each oObj In ActiveSheet.OLEObjects
If TypeName(oObj.Object) = "CheckBox" And _
Not Intersect(Selection, oObj.TopLeftCell.Range("A1")) Is Nothing Then oObj.Delete
Next
End With
End Sub

Gruß Sepp
Anzeige
AW: Checkboxen nur in ausgewählten Zeilen löschen
03.01.2005 14:41:54
Christoph
Danke für die schnelle Antwort!
Aber bei deiner Lösung wird nur der Zelleninhalt gelöscht. Also praktisch nur die Schrift und ohne die Kontrollkästchen.
Aber ist schonmal gut, da dass markierte gelöscht wird!
AW: Checkboxen nur in ausgewählten Zeilen löschen
03.01.2005 14:49:34
Josef
Hallo Christoph!
Dann sind deine CheckBoxen nicht genau auf den Zellen ausgerichtet!
Probier mal

Intersect(Selection, oObj.TopLeftCell.Range("A1"))

zu ändern in

Intersect(Selection, oObj.TopLeftCell.Range("A2"))

Gruß Sepp
Anzeige
AW: Checkboxen nur in ausgewählten Zeilen löschen
Christoph
Hallo Sepp.
Funktioniert leider immer noch nicht!
Gruß zurück
AW: Checkboxen nur in ausgewählten Zeilen löschen
03.01.2005 15:00:11
Josef
Hallo Christoph!
Deine Checkboxen sind auf "Steuerelemente" oder "Formular" ?
Gruß Sepp
AW: Checkboxen nur in ausgewählten Zeilen löschen
Christoph
Also hab jetzt gerade mal nachgeschaut. Ja meine checkboxen sind "Steuerelemnte"
Muss noch dazu sagen, dass ich das Dokument nicht entworfen habe!
Habe nur von meinem Chef die Anweisung bekommen, dass ich versuchen soll, damit das ausgewählte gelöscht wird.
MFG
Anzeige
AW: Checkboxen nur in ausgewählten Zeilen löschen
03.01.2005 15:09:01
Josef
Hallo Christoph!
Dann versuchen wir noch,

Intersect(Selection, oObj.LinkedCell.Range("A1"))

Gruß Sepp
Korrektur!
03.01.2005 15:12:24
Josef
Hallo !
So muss es heisen!

Intersect(Selection, Range(oObj.LinkedCell))

Gruß Sepp
Anzeige
AW: Korrektur!
03.01.2005 15:22:13
Christoph
Hallo.
Habe es ausprobiert. Der Interrupter bringt mir die Fehlermeldung
--> Methode "Linked Cell" für Objekt OLEObject ist Fehlgeschlagen. Ich denke mal deshalb, da die einzelnen Kontrollkästchen mit keiner Zelle verknüpft sind.
Oder?
MFG
AW: Korrektur!
03.01.2005 15:24:08
Josef
Hallo Christoph!
Kannst du das entsprechende Tabellenblatt hochladen?
Gruß Sepp
Anzeige
AW: Korrektur!
Christoph
Ja klar!
Schau dir es mal an! Hab vorher noch ein anderes Makro versucht das mit einem Button verknüpft wurde. Hat auch nicht funktioniert!
AW: Korrektur!
Christoph
Du das Tabellenblatt ist größer als die vorgeschriebenen 300kb!
1,6mb
Hab zeilen gelöscht und es ist immer noch so groß!
MFG
Zippen! o.T.
03.01.2005 15:38:46
Josef
Gruß Sepp
Anzeige
AW: Zippen! o.T.
Christoph
Verdammt gute Idee! :-)
AW: Zippen! o.T.
03.01.2005 16:04:20
Josef
Hallo Christoph!
Die Checkboxen sind aus "Formular" !

Sub CommandButton1_Click()
Dim rng As Range
Dim oObj As Shape
On Error GoTo ERRORHANDLER
Application.ScreenUpdating = False
For Each rng In Selection
rng = "" 'wegen der verbundenen Zellen!
Next
With Sheets("Oktober")
For Each oObj In ActiveSheet.Shapes
If oObj.Name Like ("Check Box*") And _
Not Intersect(Selection, oObj.TopLeftCell.Range("A1")) Is Nothing Then oObj.Delete
Next
End With
ERRORHANDLER:
Application.ScreenUpdating = True
End Sub

Gruß Sepp
Anzeige
*grinz*
Christoph
Hallo Sepp!
Hey vielen Dank! SUPER Hilfe echt!
Es funktioniert einwandfrei!
Vielen Dank!!!
Gruß Christoph
AW: Korrektur!
Christoph
Hat glaub net funktioniert!
Mom....
AW: Korrektur!
03.01.2005 15:36:26
Josef
Hallo Christoph!
Nach dem Hochladen musst du über "Pfad zur Datei" den link kopieren und
in deine Nachricht einfügen!
Wichtig ist auch ein kurzer Dateiname one sonderzeichen und keine
zu tiefe Verschachtelung des Pfades!
Gruß Sepp
Anzeige
Danke
Christoph
Hey DANKE SEPP! FUNKTIONIERT SUPER!
Echt super Hilfe Danke!!
Hab jetzt noch eine Frage. Ich will den Rest vom Dokument noch aufschieben.
Hab was versucht, aber es schiebt lediglich immer nur eine Zeile auf. Da aber immer im grunde genommen 4 verbundene Zeilen (4Zeile zu einer 1 verbunden) gelöscht werden!
Hast du eine Idee?
Dann währe es wirklich perfekt.
Wenn nicht ist es auch schon perfekt!
Echt danke nochmal!
Gruß Christoph
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Checkboxen in Excel gezielt löschen


Schritt-für-Schritt-Anleitung

Um bestimmte Kontrollkästchen (Checkboxen) in Excel zu löschen, ohne die Inhalte der Zellen zu verlieren, kannst Du folgendes VBA-Makro verwenden. Dieses Beispiel geht davon aus, dass Deine Kontrollkästchen als "Formular" Steuerelemente eingestellt sind:

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

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

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

    Sub CommandButton1_Click()
       Dim rng As Range
       Dim oObj As Shape
       On Error GoTo ERRORHANDLER
       Application.ScreenUpdating = False
       For Each rng In Selection
           rng = "" 'wegen der verbundenen Zellen!
       Next
       With Sheets("Oktober")
           For Each oObj In ActiveSheet.Shapes
               If oObj.Name Like ("Check Box*") And _
               Not Intersect(Selection, oObj.TopLeftCell.Range("A1")) Is Nothing Then oObj.Delete
           Next
       End With
    ERRORHANDLER:
       Application.ScreenUpdating = True
    End Sub
  4. Schließe den VBA-Editor und wechsle zurück zu Excel.

  5. Wähle die Zeilen mit den Checkboxen aus, die Du löschen möchtest.

  6. Gehe zu Entwicklertools und klicke auf den Button, den Du mit dem Makro verknüpft hast.

Jetzt solltest Du in der Lage sein, die gewünschten Checkboxen gezielt zu entfernen, ohne dass der Zelleninhalt überschrieben wird.


Häufige Fehler und Lösungen

  • Fehler: "Methode 'Linked Cell' für Objekt OLEObject ist fehlgeschlagen."

    • Ursache: Die Checkboxen sind nicht mit einer Zelle verknüpft. Überprüfe, ob die Checkboxen korrekt verknüpft sind.
  • Fehler: Checkboxen lassen sich nicht löschen.

    • Lösung: Stelle sicher, dass Du die Checkboxen als "Formular" Steuerelemente verwendest. Wenn sie als "Steuerelemente" konfiguriert sind, kann das Löschen schwierig sein.
  • Fehler: Der Code löscht nur Zelleninhalt.

    • Lösung: Überprüfe die Intersect-Funktion im Code. Stelle sicher, dass die Checkboxen genau auf den Zellen ausgerichtet sind.

Alternative Methoden

Neben dem VBA-Makro kannst Du auch manuell Checkboxen in Excel löschen:

  1. Rechtsklick auf die Checkbox: Klicke mit der rechten Maustaste auf die Checkbox und wähle "Löschen".
  2. Entwicklertools verwenden: Aktiviere die Entwicklertools, wähle die Checkboxen aus und drücke die Entf-Taste.

Wenn Du viele Checkboxen auf einmal entfernen möchtest, kannst Du auch Strg + A verwenden, um alle Elemente auszuwählen und dann löschen.


Praktische Beispiele

Angenommen, Du hast eine Liste von Aufgaben mit Checkboxen zur Statusverfolgung. Wenn Du die erledigten Aufgaben löschen möchtest:

  • Wähle die Zeilen mit den erledigten Aufgaben aus.
  • Führe das oben beschriebene Makro aus, um sowohl die Checkboxen als auch die Inhalte zu löschen.

Ein weiteres Beispiel ist das Löschen von Checkboxen in einer Tabelle, in der viele Kontrollkästchen verwendet werden. Mit dem Makro kannst Du gezielt nur die gewünschten Checkboxen entfernen, ohne die restlichen Daten zu beeinträchtigen.


Tipps für Profis

  • Verknüpfungen nutzen: Verknüpfe Deine Checkboxen mit Zellen, um deren Status leichter zu überwachen. So kannst Du schnell herausfinden, welche Aufgaben erledigt sind.
  • Makros speichern: Speichere häufig verwendete Makros in Deiner Arbeitsmappe, um sie bei Bedarf effizienter nutzen zu können.
  • Testumgebung: Teste Makros immer in einer Kopie Deiner Datei, um ungewollte Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Frage
Warum lassen sich meine Excel-Checkboxen nicht löschen?
Antwort: Möglicherweise sind die Checkboxen nicht korrekt verknüpft oder sie sind als "Steuerelemente" konfiguriert, was das Löschen erschwert.

2. Frage
Wie lösche ich alle Checkboxen auf einmal in Excel?
Antwort: Du kannst alle Checkboxen mit einem Makro löschen, das alle Formen in einem bestimmten Bereich oder im gesamten Arbeitsblatt entfernt. Verwende dazu den Code Sh.Delete im oben beschriebenen VBA-Skript.

3. Frage
Wie kann ich sicherstellen, dass meine Checkboxen immer auf den Zellen ausgerichtet sind?
Antwort: Stelle sicher, dass Du beim Erstellen der Checkboxen die Positionierung an die Zellen anpasst, sodass die Checkboxen direkt über den Zellen liegen.

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