Registriert seit: 08.01.2015
Version(en): 2013
Hallo nochmal,
schön dass hier so fleißig weiter diskutiert wurde.
Habt mir sogar noch n cleveren Tipp gegeben, wahrscheinlich ohne es zu wollen. Euren Antworten entnehme ich, dass man die Checkboxen mit einer Zelle 'verknüpfen' kann. Also nicht 'linked cell', in der dann der Wert 'true' oder 'false' der Checkbox widergegeben wird, sondern positionieren, dass die Checkbox immer in der gleichen Zelle ist.
Wie geht das?
Vielen Dank schon mal für eure Antwort(en)
VG
Travis5002
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen,
Du kannst z.B. den Checkboxen die top - und left - Eigenschaft einer Zelle mitgeben, z.B. im Prinzip
check1.left=cells(1,1).left+1
check1.top=cells(1,1).top+1
Damit wäre die obere linke Ecke in der Zelle und der andere Code würde funktionieren.
Beim Steuerelement formatieren kannst Du dann noch mitgeben, dass die Position von der Zelle abhängig ist.
Wenn aber jemand manuell die Position verändert, dann ist sie eben weg.
Alternativ könntest Du über linkedcell die verlinkte Zelle herausbekommen und die Checkbox dazu positionieren
check1.left=Range(Check1.LinkedCell).left+1
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
19.01.2016, 09:00
(Dieser Beitrag wurde zuletzt bearbeitet: 19.01.2016, 09:01 von Rabe.)
Hi,
(18.01.2016, 23:12)schauan schrieb: check1.left=cells(1,1).left+1
check1.top=cells(1,1).top+1
und das +1 ist, damit das nicht genau auf der Kante der Zelle sitzt?!
Registriert seit: 08.01.2015
Version(en): 2013
Hallo Zusammen,
leuchtet mir noch nicht so richtig ein :92: .
Es handelt sich ja im Formularsteuerelemente, also keine Active X Schaltflächen. Wo hinterlege ich dann den angegebenen Code? Auf den Commandbutton?
VG und Vielen Dank!
Registriert seit: 14.04.2014
Version(en): 2003, 2007
Hallo Travis,
unten stehnden Code einmal ausfüheren, dann sind die Boxen Ein-und Ausgerichtet. Siehe Kommentare im Code.
Code:
Sub Chekboxen_Platzieren_und_groeße_anpassen()
Dim chkElement As CheckBox
For Each chkElement In ActiveSheet.CheckBoxes
chkElement.Top = Range(chkElement.LinkedCell).Top 'Oberer Rand; LinkedCelle oberer Rand +1
chkElement.Left = Range(chkElement.LinkedCell).Offset(0, 3).Left + 1 'linksausrichtung; linker Rand aus Zelle von LinkedZelle 3 Spalten nach rechts versetzter Zelle
chkElement.Height = Range(chkElement.LinkedCell).Cells.Height - 2 'Höhe, Höhe der LinkedCell -2
Next
End Sub
Die Zahlen +1, -2 kannst Du Deinen Wünschen entsprechend anpassen.
Gruß Atilla
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Ralf,
ja, dazu ist das gut. Da bist Du dann, wenn keiner was verschiebt, in der Zelle und mit TopLeftCell an der richtigen Adresse

Siehe auch zwischenzeitliche Antwort von atilla, der damit für die Ausrichtung sorgt.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 08.01.2015
Version(en): 2013
Hallo Attila, schauan,
Vielen Dank, hab den Code angepasst und ausgeführt, klappt wunderbar!
Schönen Gruß,
Travis5002