Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Kontrollkästchen einfügen

Kontrollkästchen einfügen
Sue
Hallo Zusammen
Sitze nun schon 2h vor dem Problem, einem bestimmten markierten Bereich (z.B. Zellen L13 bis L25) Kontrollkästchen "einzufügen".
Ich komme leider auch mit Hilfe der geschriebenen Beiträge nicht weiter, da die selektierten Zellen dauernd ändern können. Das ganze also dynamisch sein muss.
Kann mir bitte jemand weiterhelfen - die Kontrollkästchen haben nur die Funktion, dass sie "angekreuzt" werden (visuell), d.h. keine Auslösung eines Makros etc.
Ich danke Euch herzlich
Sue
Anzeige
AW: Kontrollkästchen einfügen
07.04.2010 12:36:02
F1
Das geht sinnvoll nur mittels Makro.
AW: Wie meinst Du das?
07.04.2010 12:46:59
JOWE
Hallo Sue,
verstehe die Frage nicht.
Kontrollkästchen kannst Du doch über die Steuerelement-Toolbox der Symbolleiste 'Visual Basic' einfügen soviel und wo immer Du willst.
Gruß,
Jochen
AW: Wie meinst Du das?
07.04.2010 13:11:57
Sue
Hallo
Ja, mir war klar, dass dies nur mit einem Makro möglich ist - nur wie?
@Jochen
Die Menge ist das Problem - es entstehen pro "Ablauf" bis zu 150 Register, welche bis zu 60 Kontrollkästchen enthalten. Das ist für einen manuelle Abhandlung einfach zuviel.
Also:
Ich müsste einfach markierten Zellen (z.B. L13 bis L34) je ein Kontrollkästchen hinzufügen. Die Position ist aber jeweils pro Register unterschiedlich oder genauer - die Spalte ist gleich, jedoch die Anzahl und Position der Zeilen unterschiedlich.
Die Umschaltung habe ich im Griff, d.h. ich müsste wirklich nur einem zuvor definiertem Bereich die Kästchen hinzufügen.
Alles klar? Kann mir jemand weiterhelfen?
Grüsse bis später
Sue
Anzeige
AW: Wie meinst Du das?
07.04.2010 14:50:22
JOWE
Hallo Sue,
hier mal dynamisch (im markierten Bereich werden in der Spalte L die Kästchen gesetzt):
Sub Bereiche()
Dim i, ersteZe, letzteZe, SP As Integer
Dim rngArea As Range
SP = 12 'anpassen, in welcher Spalte soll das Ankreuzkästchen stehen
For Each rngArea In Selection.Areas
ersteZe = rngArea(1).Row
letzteZe = rngArea(rngArea.Cells.Count).Row
Next
With ActiveSheet
For i = ersteZe To letzteZe
.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=.Cells(i, SP).Left, _
Top:=.Cells(i, SP).Top, Width:=18, Height:=10).Select
Next
.[A1].Select
End With
End Sub
löschen der Kästchen mit:
Sub DelShapes()
Dim i As Integer
With ActiveSheet
For i = 1 To .Shapes.Count
.Shapes(i).Delete
Next
End With
End Sub

Gruß
Jochen
Anzeige
evtl. so ...
07.04.2010 13:23:27
Matthias
Hallo
Userbild
Sorry für den Schreibfehler im Bild [runterkopieren]
Gruß Matthias
AW: evtl. so ...
07.04.2010 13:43:03
Sue
Hallo Matthias
Ja, habe ich versucht - per Makro ist das aber nicht so einfach (Makrorecorder funktioniert jedenfalls nicht).
Danke
Sue
Anzeige
das geht doch händisch ohne VBA oT.
07.04.2010 13:49:39
Matthias
AW: das geht doch händisch ohne VBA oT.
07.04.2010 13:52:21
Sue
Matthias?
Klar, wie beschrieben - die Menge ist das Problem.
Weisst Du weiter?
Sue
AW: Nicht die beste Lösung, aber ...
07.04.2010 14:13:29
Dieter(Drummer)
Hi Sue,
hier mal ein Makro (per Makrorekorder aufgezeichnet) als Ansatz:
  • 
    Sub Kontroll()
    ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
    DisplayAsIcon:=False, Left:=23.25, Top:=2.25, Width:=12.75, Height:=9 _
    ).Select
    ActiveSheet.Shapes("CheckBox1").Select
    Selection.Copy
    Range("A2:A5").Select
    ActiveSheet.Paste
    Range("A3").Select
    ActiveSheet.Paste
    Range("A4").Select
    ActiveSheet.Paste
    Range("A5").Select
    ActiveSheet.Paste
    End Sub
    

  • Hier werden Kontrollkästchen in A1 bis A5 eingefügt. Wenn Du das für die Spalten L haben willst, musst Du statt A eben L einsetzen. Wenn Du dies für mal L13 bis L18 und ein anders mal für andere Spalten und oder Zeilen brauchst, kann Dir nur ein VBA Spezialist im Forum helfen! Sondt m,üssetn Du ben das Makro jedesmal selbst anpassen.
    Dieter(Drummer)
    Dieter(Drummer)
    Anzeige
    mal ein wenig optimiert ...
    07.04.2010 14:28:44
    Matthias
    Hallo
    Sub bearbeitet()
    Dim x As Long
    Application.ScreenUpdating = False
    For x = 1 To 40 'zeile 1-40 
     ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, DisplayAsIcon:=False, Left:=Cells(x, 2).Left, Top:=Cells(x, 2).Top, Width:=Cells(x, 2).Width / 2, Height:=Cells(x, 2).Height).Activate
    Next
    Application.ScreenUpdating = True
    End Sub
    
    Gruß Matthias
    Anzeige
    AW: mal ein wenig optimiert ...
    07.04.2010 14:56:34
    Sue
    Hallo Matthias
    Habe nochmals ein wenig (sehr lange) herumgestöbert.
    Werde wahrscheinlich von der Kontrollbox absehen und eine Liste integrieren - die Checkboxen scheinen nicht so flexibel wie gewünscht.
    Jedenfalls, ich danke Dir für Deine bisherige Hilfe.
    Grüsse
    Sue
    AW: mal ein wenig optimiert ...
    07.04.2010 15:59:06
    fcs
    Hallo Sue,
    Hier nochmals eine Variante zum Einfügen von Checkboxen, wobei auch Optionen für LinkedCell etc. einstellbar sind.
    Einfacher zu handhaben und Flexibler sind aber Datengültigkeitsprüfungen mit Drop-Down-Auswahl wie J/N, Ja/Nein oder X/nichts.
    Gruß
    Franz
    Sub Test1()
    Call Checkboxen_Einfuegen(Bereich:=Worksheets("Tabelle1").Range("L12:L25"), _
    bDrucken:=True, bLinkedCell:=True)
    End Sub
    Sub Checkboxen_Einfuegen(Bereich As Range, _
    Optional bDrucken As Boolean = True, _
    Optional bLinkedCell As Boolean = False)
    Dim Zelle As Range, wks As Worksheet, oShape As Shape
    For Each Zelle In Bereich
    Set oShape = Bereich.Parent.Shapes.AddFormControl(Type:=xlCheckBox, _
    Left:=Zelle.Left + 1, Top:=Zelle.Top + 1, Width:=20, Height:=12)
    oShape.TextFrame.Characters.Text = ""
    oShape.ControlFormat.PrintObject = bDrucken
    If bLinkedCell = True Then
    oShape.ControlFormat.LinkedCell = "'" & Zelle.Parent.Name & "'!" & Zelle.Address
    Zelle.Value = False
    End If
    Next
    End Sub
    

    Anzeige
    AW: mal ein wenig optimiert ...
    08.04.2010 10:07:03
    Sue
    Hallo Franz
    Besten Dank für Deine Lösung.
    Ich habe das Makro kurz getestet und werde nun versuchen, meinen markierten Bereich ins Sub Test1 zu integrieren - müsste ich eigentlich schaffen.
    Dann sollte eigentlich die gewünschte Abhandlung möglich sein.
    Lieben Dank für Deine Hilfe, es grüsst Dich
    Sue
    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

    Kontrollkästchen in Excel einfügen


    Schritt-für-Schritt-Anleitung

    Um ein Kontrollkästchen in Excel einzufügen, kannst Du die folgenden Schritte befolgen:

    1. Entwickler-Tab aktivieren: Falls der Entwickler-Tab nicht sichtbar ist, gehe zu Datei > Optionen > Menüband anpassen und aktiviere das Kontrollkästchen für "Entwicklertools".

    2. Kontrollkästchen einfügen:

      • Klicke auf den Reiter Entwicklertools.
      • Wähle Einfügen und dann unter Formularsteuerelemente die Option Check Box (Kontrollkästchen).
      • Klicke auf die Stelle im Arbeitsblatt, wo das Kontrollkästchen erscheinen soll.
    3. Positionierung und Anpassung:

      • Ziehe das Kontrollkästchen an die gewünschte Position.
      • Um das Kontrollkästchen in eine Zelle einzufügen, musst Du es an die gewünschte Zelle anpassen und dann die Größe ändern.
    4. VBA zur Automatisierung: Du kannst auch ein VBA-Makro verwenden, um mehrere Kontrollkästchen dynamisch in einen markierten Bereich einzufügen. Ein Beispiel findest Du im Abschnitt "Praktische Beispiele".


    Häufige Fehler und Lösungen

    • Problem: Kontrollkästchen erscheinen nicht dort, wo ich sie möchte.

      • Lösung: Stelle sicher, dass Du das Kontrollkästchen an die richtige Stelle ziehst und die Zellen nicht überlappt werden.
    • Problem: Kontrollkästchen sind nicht verknüpft.

      • Lösung: Rechtsklicke auf das Kontrollkästchen, wähle Steuerelement formatieren und verlinke es mit der gewünschten Zelle.
    • Problem: VBA-Makro funktioniert nicht.

      • Lösung: Überprüfe, ob Du die Makros in Excel aktiviert hast unter Datei > Optionen > Sicherheitscenter > Einstellungen für das Sicherheitscenter.

    Alternative Methoden

    Es gibt verschiedene Wege, um in Excel Auswahlkästchen einzufügen:

    1. Datengültigkeitsprüfungen: Anstelle von Kontrollkästchen kannst Du auch eine Dropdown-Liste erstellen, die Optionen wie "Ja" und "Nein" bietet.

    2. Formularsteuerelemente: Die Verwendung von Formularsteuerelementen anstelle von ActiveX-Steuerelementen kann in einigen Fällen einfacher sein.

    3. VBA zur Erstellung von Kontrollkästchen: Wie im Schritt-für-Schritt-Abschnitt beschrieben, kannst Du ein VBA-Skript verwenden, um Kontrollkästchen in einem Bereich einzufügen.


    Praktische Beispiele

    Hier ist ein einfaches VBA-Skript, um Kontrollkästchen in Excel zu erstellen:

    Sub Bereiche()
        Dim i, ersteZe, letzteZe, SP As Integer
        Dim rngArea As Range
        SP = 12 'Spalte L
        For Each rngArea In Selection.Areas
            ersteZe = rngArea(1).Row
            letzteZe = rngArea(rngArea.Cells.Count).Row
        Next
        With ActiveSheet
            For i = ersteZe To letzteZe
                .OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
                DisplayAsIcon:=False, Left:=.Cells(i, SP).Left, _
                Top:=.Cells(i, SP).Top, Width:=18, Height:=10).Select
            Next
            .[A1].Select
        End With
    End Sub

    Verwende dieses Skript, um Kontrollkästchen in einer markierten Auswahl dynamisch zu erstellen.


    Tipps für Profis

    • Wenn Du Checkboxen in einer Zelle einfügen möchtest, kannst Du die LinkedCell-Eigenschaft verwenden, um die Auswahl mit einer bestimmten Zelle zu verknüpfen.

    • Bei der Verwendung von VBA solltest Du die Geschwindigkeit optimieren, indem Du Application.ScreenUpdating = False am Anfang und Application.ScreenUpdating = True am Ende Deines Makros verwendest.

    • Überlege, ob Du anstelle von Kontrollkästchen auch Dropdown-Listen verwenden möchtest, um die Benutzerfreundlichkeit zu erhöhen.


    FAQ: Häufige Fragen

    1. Wie füge ich mehrere Kontrollkästchen in Excel ein?
    Verwende ein VBA-Skript, um die Kontrollkästchen in einem festgelegten Bereich dynamisch hinzuzufügen.

    2. Kann ich Kontrollkästchen in Zellen einbetten?
    Ja, Du kannst Kontrollkästchen in Zellen einfügen, indem Du die Positionierung anpasst und die LinkedCell-Eigenschaft verwendest.

    3. Gibt es eine Möglichkeit, die Kontrollkästchen zu löschen?
    Ja, Du kannst ein weiteres VBA-Makro verwenden, um alle Kontrollkästchen auf dem Arbeitsblatt zu löschen.

    Sub DelShapes()
        Dim i As Integer
        With ActiveSheet
            For i = 1 To .Shapes.Count
                .Shapes(i).Delete
            Next
        End With
    End Sub

    4. Wo finde ich die Entwickler-Tools in Excel?
    Die Entwickler-Tools kannst Du unter Datei > Optionen > Menüband anpassen aktivieren.

    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