Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1352to1356
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Formularsteuerelement zentriert ausrichten

Formularsteuerelement zentriert ausrichten
27.03.2014 09:31:02
Karl
Hallo Leute!
Habe verzweifelt im Internet nach einer Lösung meines Problems, im Konkreten gehts um die Fixierung bzw. automatische Anpassung eines Kontrollkästchens (Formularsteuerelement)in einer Zelle - egal wie sich die Zelle in ihrer Größe ändert, das Formularsteuerelement soll immer in der Zelle zentriert ausgerichtet sein.
Steuerelement formatieren - Eigenschaften - "Von Zellposition und -größe abhängig" inaktiv
Mit Hilfe der "Zeichentools" vertikal und horizontal zu zentrieren hat auch nicht geklappt. Außerdem soll Excel die Position ja automatisch anpassen können.
Danke, Karl

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formularsteuerelement zentriert ausrichten
27.03.2014 16:26:48
fcs
Hallo Karl,
für die automatische Anpassung der Position können nur Ereignismakros eingesatzt werden. Diese reagieren aber nicht auf Formatänderungen (z.B. Breite/Höhe von Zellen) sondern z.B. auf Wertänderungen in Zellen oder Zellselektion.
Nachfolgend ein Beispiel. Das Kontrollkästchen wird neu Positioniert, wenn man das Tabellenblatt aktiviert oder wenn man in eine Zelle in der Zeile mit dem Kontrollkästchen klickt.
Den namen des Kontrollkästchens musst du ggf. noch anpassen.
Gruß
Franz
'Code unter dem Tabellenblatt mit der Checkbox
Option Explicit
Private Sub PositionShapes()
'in nachfolgender Zeile ggf. Sub "PositionShape_in_Zelle" verwenden
Call PositionShape_Centered_in_Cell(objShape:=Me.Shapes("Kontrollkästchen 1"))
End Sub
Private Sub PositionShape_Centered_in_Cell(objShape As Shape)
'Zentriert das Shape innerhalb der Zelle ohne Veränderung der Größe
Dim Zelle As Range
Set Zelle = objShape.TopLeftCell
With objShape
.Top = Zelle.Top + (Zelle.Height - .Height) / 2
.Left = Zelle.Left + (Zelle.Width - .Width) / 2
End With
End Sub
Private Sub PositionShape_in_Zelle(objShape As Shape)
'vergrößert das Shape-Objekt auf Zellengröße
Dim Zelle As Range
Set Zelle = objShape.TopLeftCell
With objShape
.Top = Zelle.Top
.Left = Zelle.Left
.Width = Zelle.Width
.Height = Zelle.Height
End With
End Sub
Private Sub Worksheet_Activate()
Application.EnableEvents = False
Call PositionShapes
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Select Case Target.Row
Case Me.Shapes("Kontrollkästchen 1").TopLeftCell.Row
Call PositionShapes
Case Else
'do nothing
End Select
End Sub

Anzeige

50 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige