Checkbox, minimalste Größe, Mitsortierung
Reinhard
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