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

Checkbox, minimalste Größe, Mitsortierung

Forumthread: Checkbox, minimalste Größe, Mitsortierung

Checkbox, minimalste Größe, Mitsortierung
Reinhard
Hallo Wissende,
in dieser Mappe geht es nicht primär um den Code der Prozedur von CBErstellen, der hier unten auch noch steht.:
https://www.herber.de/bbs/user/77369.xlsm
Frage 1
Const W As Single = 23.25 'kleiner hat keinen Zweck
Const H As Single = 16.5 'kleiner hat keinen Zweck
Die beiden Variablen W^H geben Width und Height der Checkboxen an, die ich im Code mit
Set CB = .CheckBoxes.Add(L, T, W, H)
einfügen lasse.
Gebe ich kleinere Werte an als 23.25 bzw. 16.5 so wird das ignoriert.
Gibt es einen Weg die CheckBoxen per Code kleiner zu machen, also z.B. nur die Größe des Quadrats in ihnen?
Frage 3
Wenn man nun in diesem Tabellenzustand nach "kategorie" also Spalte 2 nach A-Z sortieren läßt durch Klick auf den Pfeil so funktioniert die Sortierung.
D.h. die Checkboxen wurden mitsamt der Zelle sortiert.
Aber wenn man die Spaltenbreite von C kleiner macht sodaß die Checkboxen jeweils noch ein bißchen
in Spalte D hineinragen, so wird falsch sortiert denn die Checkboxen bleiben auf ihrem Platz.
Ist das immer so? Denn das fiel mir noch nie auf.
Frage 3
Die CheckBoxen haben die Eigenschaft:
"Nur von Zellposition abhängig."
Warum kann ich nicht per Code diese Eigenschaft festlegen, bzw. wie müßte ich das machen:
"Von Zellposition und -Größe abhängig."
.Placement = xlMoveAndSize
wird nicht ausgeführt bzw. anscheinend in xlMove gewandelt
?
Frage 4
Bedienungsfrage zur Hilfe mit F1 in XL 2007.
Da ich nach längerem Nichtbenutzen von CheckBoxen die Reihenfolge der Paramter bei Add:
Checkboxes.Add(T,L,W,H)
nie exakt weiß, wie finde ich das in der mistigen XL 2007 Hilfe?
Danke ^ Gruß
Reinhard

Option Explicit
Sub CBErzeugen()
Dim Zei As Long, CB As Object, T As Single, L As Single
Const Anzahl As Integer = 200
Const W As Single = 23.25  'kleiner hat keinen Zweck
Const H As Single = 16.5   'kleiner hat keinen Zweck
Application.ScreenUpdating = False
With Worksheets("Projekte")
For Each CB In .Shapes
If CB.Name Like "Check*" Then CB.Delete
Next CB
For Zei = 2 To 201
ActiveWorkbook.Names.Add Name:="Check" & Zei - 1, _
RefersToR1C1:="=Projekte!R" & Zei + 1 & "C4"
.Cells(Zei, 3).FormulaR1C1 = "=IF(Check" & Zei - 1 & "=FALSE,""nicht "","""")&""bearbeitet"" _
T = .Cells(Zei, 3).Top + 6.75
L = .Cells(Zei, 3).Left + 92
Set CB = .CheckBoxes.Add(L, T, W, H)
With CB
.Name = "Check" & Zei - 1
.Caption = ""
.LinkedCell = "Check" & Zei - 1
.Placement = 2
End With
Next Zei
End With
Application.ScreenUpdating = True
End Sub

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Checkbox, minimalste Größe, Mitsortierung
07.11.2011 07:42:30
fcs
Hallo Reinhard,
generell ist es keine besonders gute Idee in längeren Listen mit Steuerelementen als Eingabeelementen zu arbeiten.
Besser ist es mit konkreten Zelleingaben zu arbeiten. In deinem Fall einfach ein "x" in die Zellen eintragen oder ggf. den Eintrag löschen. Unterstützen kann man das dann ggf. noch mit einer Datengültigkeitsprüfung oder auch einer Wertumschaltung bei Doppel-Klick in die Zelle.
Frage 1 und 2:
Das ist halt so. Änderungswünsche bei Microsoft anmelden.
Frage 3:
Das ist halt so. Änderungswünsche bei Microsoft anmelden.
Es macht aber auch nicht unbedingt Sinn, dass sich die Größe einer Checkbox automatisch an die Breite/Höhe der Zelle anpasst, wenn deren Höhe oder Breite geändert wird.
Frage 4:
üblicher Weise: Wort im VBA-Editor markieren, dann F1.
Hat bei mir unter Excel 2007 für "Checkboxes" und "Add" in diesem Fall aber nicht bzw. unzureichend funktioniert. Warum = ?
Gruß
Franz
Anzeige
AW: Checkbox, minimalste Größe, Mitsortierung
07.11.2011 20:42:49
Reinhard
Hallo Franz,
ich danke dir für deine Gedanken.
Für mein Alzheimer finde ich es halt völlig blöde daß ich bei Eingabe von
.CheckBoxes.Add
irgendwie keine Möglichkeit habe über die Hilfe auf das zu kommen was ich wissen will.
Heißt die Parameterreihenfolge nun
l,t,w,h
t,l,w,h
l,t,h,w
t,l,h,w
usw.
Da bleibt mir immer nur die Möglichkeit dies an enem Beispiel auszutesten :-(
Davon abgesehen, CheckBoxen aus Formular sind soweiso heikel wie ich erfahren mußte als ich mich jetzt aktuell damit befasste.
Meine Logik sagt mir, wenn ich per Code eine CB einfüge, z.B. über/in der Zelle C2.
Dann positioniere ich sie im/per Code so daß ich ihr erst eine bestimmte Breite (width) zuweise
und dann die left-Position aus der Berechnung von .Left von D2
M.E. müßte dann die CB komplett innerhalb von C2 stehen. Dem ist aber nicht so :-(
Ich habe in dem Zusammenhang noch mehr Ungereimtheiten entdeckt, aber egal, lassen wir das, wenn ich wieder mal mit Bill Gates Golf spiele werde ich das da erwähnen *grins*
Gruß
Reinhard
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Checkboxen in Excel 2007: Größe anpassen und sortieren


Schritt-für-Schritt-Anleitung

Um Checkboxen in Excel 2007 zu erstellen und deren Größe anzupassen, kannst Du den folgenden VBA-Code verwenden. Dieser Code fügt Checkboxen in einem bestimmten Bereich ein und setzt deren Größe. Beachte, dass die minimalste Größe für Checkboxen in Excel 2007 bei 23,25 für die Breite und 16,5 für die Höhe liegt.

Option Explicit
Sub CBErzeugen()
    Dim Zei As Long, CB As Object, T As Single, L As Single
    Const Anzahl As Integer = 200
    Const W As Single = 23.25  'kleiner hat keinen Zweck
    Const H As Single = 16.5   'kleiner hat keinen Zweck
    Application.ScreenUpdating = False
    With Worksheets("Projekte")
        For Each CB In .Shapes
            If CB.Name Like "Check*" Then CB.Delete
        Next CB
        For Zei = 2 To 201
            .Cells(Zei, 3).FormulaR1C1 = "=IF(Check" & Zei - 1 & "=FALSE,""nicht "","""")& ""bearbeitet"""
            T = .Cells(Zei, 3).Top + 6.75
            L = .Cells(Zei, 3).Left + 92
            Set CB = .CheckBoxes.Add(L, T, W, H)
            With CB
                .Name = "Check" & Zei - 1
                .Caption = ""
                .LinkedCell = "Check" & Zei - 1
                .Placement = 2
            End With
        Next Zei
    End With
    Application.ScreenUpdating = True
End Sub

Du kannst den Code über den VBA-Editor in Excel einfügen. Stelle sicher, dass Du die richtige Arbeitsmappe und das richtige Arbeitsblatt auswählst, wenn Du die Checkboxen erzeugst.


Häufige Fehler und Lösungen

  • Checkboxen werden nicht kleiner als 23,25 x 16,5: Dies ist ein bekanntes Limit in Excel 2007. Du kannst die Größe nicht weiter reduzieren. Wenn Du die Checkboxen kleiner willst, solltest Du überlegen, ob Du sie überhaupt verwenden möchtest oder stattdessen mit Zelleingaben arbeitest.

  • Checkboxen sortieren nicht korrekt: Wenn Du die Spaltenbreite änderst und die Checkboxen nicht mitsortiert werden, liegt das daran, dass die Checkboxen nicht von der Zellposition abhängig sind. Du kannst diese Eigenschaft über .Placement = xlMoveAndSize setzen, aber beachte, dass dies in einigen Fällen nicht funktioniert.


Alternative Methoden

Falls Du die Checkboxen nicht über VBA erstellen möchtest, kannst Du auch die Formularsteuerelemente direkt über die Excel-Oberfläche einfügen:

  1. Gehe zu „Entwicklertools“.
  2. Klicke auf „Einfügen“ und wähle die Checkbox aus.
  3. Klicke auf die Stelle, wo die Checkbox eingefügt werden soll, und ziehe sie auf die gewünschte Größe.

Wenn Du die Checkboxen per Drag & Drop in eine Zelle einfügst, werden sie automatisch von der Zellposition abhängig, was die Sortierung vereinfacht.


Praktische Beispiele

Um Checkboxen in Excel 2007 effektiv zu nutzen, könntest Du ein To-Do-List erstellen:

  1. Erstelle eine Liste in Spalte A mit Aufgaben.
  2. Füge in Spalte B Checkboxen hinzu.
  3. Verwende die Checkboxen, um Aufgaben als erledigt zu markieren.
' Beispiel zur Verknüpfung von Checkboxen mit Zellen
.Cells(Zei, 2).FormulaR1C1 = "=IF(Check" & Zei - 1 & "=TRUE,""Erledigt"","""")"

Tipps für Profis

  • Checkbox in Mail einfügen: Wenn Du Checkboxen in eine E-Mail-Vorlage einfügen möchtest, benutze die Funktion „Checkbox in Mail einfügen“ in Outlook, um interaktive Elemente zu erstellen.

  • Filterung von Checkboxen: Um Checkboxen in Excel zu filtern, kannst Du die Funktion excel checkbox filtern verwenden, um nur die relevanten Daten anzuzeigen.

  • Dokumentation nutzen: Nutze die Excel-Hilfe (F1) im VBA-Editor, um mehr über die checkboxes.add und andere VBA-Funktionen zu erfahren.


FAQ: Häufige Fragen

1. Warum kann ich die Checkboxen nicht kleiner als 23,25 x 16,5 machen?
Das ist eine Einschränkung in Excel 2007, die nicht umgangen werden kann.

2. Wie kann ich die Checkboxen sortieren?
Wenn Du die Checkboxen so einfügst, dass sie von der Zellposition abhängig sind, werden sie beim Sortieren mit der Zelle verschoben.

3. Wo finde ich Hilfe für VBA-Befehle?
Du kannst die Excel-Hilfe im VBA-Editor nutzen, indem Du das Wort markierst und F1 drückst. Bei spezifischen Befehlen kann die Hilfe jedoch unzureichend sein.

4. Gibt es eine Möglichkeit, Checkboxen in einer E-Mail zu verwenden?
Ja, Du kannst Checkboxen in eine E-Mail-Vorlage einfügen, aber die Funktionalität kann je nach E-Mail-Client variieren.

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