AW: Größe einer Form mit Zellwert verknüpfen
27.03.2017 06:16:53
fcs
Hallo Max,
lade mal eine Beispieldatei hoch mit ggf. anonymisierten Daten.
Grundsätzlich kann man die Rechtecke (Shape-Objekte) über den Namen ansprechen und deren Höhe dann auf den gewünschten Wert setzen.
LG
Franz
Beispiel-Makro: Höhe der Rechtecke ist hier in den Zellen in Zentimetern angegeben.
Höhe in Punkt ist auch möglich, dann muss Parameter bolCentimeter auf False gesetzt werden.
Sub Test()
Dim wks As Worksheet
Set wks = ActiveSheet
Dim dblUnten As Double
With wks
'Postition untere Linie Rechtecke
dblUnten = .Range("B20").Top
Call prcShapeHeight(objShape:=.Shapes("Rechteck 1"), dblHeight:=.Range("B1").Value, _
dblBottom:=dblUnten, bolCentimeter:=True)
Call prcShapeHeight(objShape:=.Shapes("Rechteck 2"), dblHeight:=.Range("C1").Value, _
dblBottom:=dblUnten, bolCentimeter:=True)
Call prcShapeHeight(objShape:=.Shapes("Rechteck 3"), dblHeight:=.Range("D1").Value, _
dblBottom:=dblUnten, bolCentimeter:=True)
Call prcShapeHeight(objShape:=.Shapes("Rechteck 4"), dblHeight:=.Range("E1").Value, _
dblBottom:=dblUnten, bolCentimeter:=True)
End With
End Sub
Public Sub prcShapeHeight(objShape As Shape, dblHeight As Double, dblBottom As Double, _
Optional bolCentimeter As Boolean = True)
With objShape
If bolCentimeter = True Then
.Height = Application.CentimetersToPoints(dblHeight)
Else
.Height = dblHeight
End If
.Top = dblBottom - .Height
End With
End Sub