Auf einem Tabellenblatt habe ich die Spalte "A" für ein paar Schaltflächen vorgesehen. Damit jede Schaltfläche etwas höher wird, verbinde (merge) ich kurzfristig zwei Zeilen in Spalte "A" miteinander. Dadurch belegt die Shape dann zwei Zeilen. Nachdem die Shape eingerichtet ist, hebe ich die Verbindung wieder auf; die Größe des Shapes ändert sich dadurch nicht.
Set MyRange = Cells(AtRow, AtCol).MergeArea
Set MyShape = ActiveSheet.Shapes.AddShape(Type:=msoShapeActionButtonCustom, _
Left:=MyRange.Left, _
Top:=MyRange.Top, _
Width:=MyRange.Width, _
Height:=MyRange.Height)
Damit die Spalte aber nicht zu breit werden, und meine Beschriftung auf der Schaltfläche nicht unverständlich kurz sein muss, suche ich nun nach der Lösung, wie ich diese Beschriftung auf mehrere Zeilen verteilen kann, abhängig von der aktuellen Breite der Spalte.
Wenn ich jetzt die Spalte schmäler mache, passt sich die Shape der Spaltenbreite an, aber von meinem Text ist ggf. nur noch ein Teil sichtbar.
Wenn ich die Shape bereits in einer schmäleren Spalte erstelle, fehlen mit teilweise Worte. Die werden aber sichtbar, sobald ich die Spaltenbreite nachträglich erhöhe.
Früher hatte ich Schaltflächen mit "ActiveSheet.Buttons.Add" hinzugefügt. Da bestand das Problem mit dem Textumbruch nicht; der Text hat sich dynamisch angepasst. Manchmal ging aber auch eine Folgezeile dadurch "verloren". Aber Shapes bieten mehr Möglichkeiten. Deshalb nutze ich nur noch Shapes.
Wer kann mir weiterhelfen? In Google habe ich dazu nichts passendes gefunden. Möglicherweise hatte ich den entscheidenden Suchbegriff nicht verwendet.
Gruß Joschi