Kommentarfeldgröße (automatisch) anpassen

Hallo liebe Excel-Experten!

Ich bins wiedermal mit einem kleinen Problem… :wink:

Folgendes:
Ich hab ein ExcelSheet mit einigen Kommentaren. Die Kommentare werden dynamisch erzeugt (also via VBA immer wieder verändert).
Jetzt soll natürlich dennoch jedes Kommentar immer vollständig lesbar sein. Teilweise sind die aber unten abgeschnitten usw.

Ich hab also nach einer Funktion gesucht, die mir das Kommentarfeld auf die Textlänge anpasst… und auch gefunden.

Sub CommSize()
Dim c
For Each c In ActiveSheet.Comments
 With c.Shape
 .TextFrame.AutoSize = True
 End With
Next

So, das Ergebnis ist allerdings, dass die Kommentare nun einzeilig sind (nicht mehr in so einem schönen kompakten kleinen Block wie vorher) und logischerweise (da tlw. lange Kommentare) über die ganze Seite gehen.
Das ist 1. unübersichtlich und 2. verschwindet dann erst wieder ein Teil irgendwo im Nirwana wo der Bildschirm aus ist *gg*

Was ich also suche:
Eine Funktion/Eigenschaft, die mir das Kommentarfeld so anpasst, dass der ganze Text sichtbar ist UND die Form des Feldes ein übersichtliches kompaktes Rechteck (ein „Kästchen“) ist.

Kann ich vielleicht irgendwie die Breite begrenzen, aber so, dass das Kästchen sich trotzdem dem Text anpasst?

Vielen Dank für eure Hilfe!

lG
Katharina

Ich hab ein ExcelSheet mit einigen Kommentaren. Die Kommentare
werden dynamisch erzeugt (also via VBA immer wieder
verändert).
Eine Funktion/Eigenschaft, die mir das Kommentarfeld so
anpasst, dass der ganze Text sichtbar ist UND die Form des
Feldes ein übersichtliches kompaktes Rechteck (ein „Kästchen“)
ist.
Kann ich vielleicht irgendwie die Breite begrenzen, aber so,
dass das Kästchen sich trotzdem dem Text anpasst?

Hi Katharina,

etwas direktes kenne ich nicht. Nimm das als workaround und veränder die 100 bzw. den Faktor 0.8 bis es einigermaßen passt, ggfs. auch die Breite 100 von der Textlänge abhängig machen wie die Höhe.

Sub tt()
Dim C As Comment
For Each C In ActiveSheet.Comments
 C.Shape.Width = 100
 C.Shape.Height = Len(C.Text) \* 0.8
Next C
End Sub

Gruß
Reinhard

Hi Katharina,

Hi Reinhard!

etwas direktes kenne ich nicht. Nimm das als workaround und
veränder die 100 bzw. den Faktor 0.8 bis es einigermaßen
passt, ggfs. auch die Breite 100 von der Textlänge abhängig
machen wie die Höhe.

Ich habs noch nicht ausprobiert, aber vielen Dank schon mal für das Workaround. Melde mich dann noch mal, ob es funktioniert hat.

Danke, lG
Katharina

Grüezui Katharina

Ich hab ein ExcelSheet mit einigen Kommentaren. Die Kommentare
werden dynamisch erzeugt (also via VBA immer wieder
verändert).
Jetzt soll natürlich dennoch jedes Kommentar immer vollständig
lesbar sein. Teilweise sind die aber unten abgeschnitten usw.

Ich hab also nach einer Funktion gesucht, die mir das
Kommentarfeld auf die Textlänge anpasst… und auch gefunden.

Sub CommSize()
Dim c
For Each c In ActiveSheet.Comments
With c.Shape
.TextFrame.AutoSize = True
End With
Next

So, das Ergebnis ist allerdings, dass die Kommentare nun
einzeilig sind (nicht mehr in so einem schönen kompakten
kleinen Block wie vorher) und logischerweise (da tlw. lange
Kommentare) über die ganze Seite gehen.

Was ich also suche:
Eine Funktion/Eigenschaft, die mir das Kommentarfeld so
anpasst, dass der ganze Text sichtbar ist UND die Form des
Feldes ein übersichtliches kompaktes Rechteck (ein „Kästchen“)
ist.

Dir fehlen die ‚hrten‘ Zeilenumbrüche in den Kommentaren - ohne diese wird bei .Autosize = True alles in der Breite aneinander gehängt.

Wenn Du die Kommentare eh mit VBA erzeugst, könntest Du diese Umbrüche ja mit hinein bringen, dann passt das mit autosize dann auch wieder.

Ansonsten bleibt nur der Workaround mit dem Breiten-/Höhenverhältnis.


Mit freundlichen Grüssen

Thomas Ramel

  • MVP für MS-Excel -

Hi Katharina,

etwas direktes kenne ich nicht. Nimm das als workaround und
veränder die 100 bzw. den Faktor 0.8 bis es einigermaßen
passt, ggfs. auch die Breite 100 von der Textlänge abhängig
machen wie die Höhe.

Hi Reinhard!

Viiieeelen Dank! Das ist die perfekte Lösung - funktioniert prima, so wollt ich es haben!!

lG, schönen Tag noch
Katharina

Grüezui Katharina

Hi Thomas!

Wenn Du die Kommentare eh mit VBA erzeugst, könntest Du diese
Umbrüche ja mit hinein bringen, dann passt das mit autosize
dann auch wieder.

Das wäre natürlich die elegante Version. Das Workaround funktioniert aber prima und erfüllt bereits seinen Zweck.

Vielen Dank dennoch!

Schönen Tag noch,
Katharina