Über VB erkennen ob Excel Zelleninhalt die Größe der Zelle überschreitet?

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von flash.

    Über VB erkennen ob Excel Zelleninhalt die Größe der Zelle überschreitet?

    Hallo!

    Gibt es eine Möglichkeit über VB (oder gerne auch über Excel) zu erkennen ob der Inhalt einer Zelle die Größe selbiger überschreitet?

    Hintergrund ist folgender:

    Ich habe eine vorgefertigte Exceltabelle, in einen Zellenverbund wird aus VB Text eingetragen. Die Breite der verbundenen Zellen ist vorgeschrieben, d.h. wenn die Breite überschritten wird, macht Excel automatisch einen Zeilenumbruch. Nach etwa 4 Zeilen (Standardgröße der Excelvorlage) sind die Zellen aber voll und werden nicht autom. nach unten vergrößert.
    Dieses "nach unten" Vergrößern würde ich gerne aus dem Programm raus erhalten (bzw. vorgefertigt in Excel).

    Danke für jede Hilfe,

    Grüße!
    Hallo ray,

    ich habe zwar keine Lösung, aber zumindest zwei Denkanstöße beziehungsweise Workarounds, denn auch in meinem Excel 2010 gibt es keinen Zeilenumbruch in einem Zellenverbund. Das ist jedenfalls nur die halbe Wahrheit: der Text wird zwar umgebrochen, aber in einem Zellenverbund wird die Zeilenhöhe nicht verändert beziehungsweise angepasst.

    1.) Hast du dir mal überlegt, irgendwo rechts ausserhalb des Bereiches eine Spalte für diesen Dienst zu missbrauchen? Dabei solle die Spaltenbreite eine exakte Summe aus den Spalten im Zellenverbund sein, also beispielsweise 3x 10,71 = 32,13. Dann formatierst du die Zelle in derselben Zeile wo auch der Zellenverbund liegt, sodass der darin vorhandene Text umgebrochen wird. Danach kopierst du den Text aus dem Zellenverbund in diese neue Zelle - sofern du auch noch an eventuelle Formatierungen gedacht hast, wird so die Zeilenhöhe von dieser Testzelle beeinflusst und auch der Text in deinem Zellverbund wird schließlich umgebrochen. Die Zeilenhöhe kannst du dann ja ausmessen und speichern, oder du lässt den Text in der Testzelle bestehen.

    2.) Mein zweiter Gedankengang ist ebenso ein Workaround in einer Spalte abseits des sichtbaren Bereiches. Kopiere den Text in irgendeine Zelle und veranlasse Excel (beispielsweise mit ActiveCell.EntireColumn.AutoFit) die Spaltenbreite automatisch festzulegen. Nun musst du nur noch rechnen: ist die Spalte breiter als die Summe der Spalten des Zellverbundes? Wenn ja, um wieviel? Bis max 2 Mal, 3 Mal, etc? Anhand dieser Breite kannst du die Zeilenhöhe manuell bestimmen. Dieser Weg erfordert mehr Code und ist möglicherweise nicht so exakt.