Makro - VBA Formularsteuerelem. zentr. ausrichten
03.11.2014 07:09:56
Karl
Franz hat mir vor einigen Monaten eine Beispiel für mein damaliges Problem gesendet ,doch leider bin ich nicht fähig es umzusetzen da fehlt mir die Erfahrung mit VBA und Makros.
Kann mich da jemand untertützen und seine VBA? - Makro? in die Musterdatei einarbeiten?
Würde für die Zukunft gerne wissen wie so etwas geht.
DANKE Karl
https://www.herber.de/bbs/user/93498.xls
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
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