Anzeige
Archiv - Navigation
1228to1232
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Zeilenumbrüch in Zelle auslesen

VBA Zeilenumbrüch in Zelle auslesen
Georg
Liebe Excellenzen,
ich habe eine aus drei Spalten verbundene Zelle die eine feste Größe hat (Breite und Höhe). In diese Zelle schreibe ich via VBA unterschiedliche Texte. Normalerweise hat die Zelle eine Formatierung von Arial 24. Dann sind 2 Zeilen lesbar bei meiner Zeilenhöhe von 62.
Jetzt wird der Text automatisch umgebrochen. Das klappt in der Mehrzahl aller Fälle auch. Aber manchmal ist der Text zu lang und dann ist nur ein Teil davon sichtbar.
Ich würde daher gerne den Text in seiner Größe anpassen und zwar schrittweise solange bis der Text reinpasst, aber mit einer so groß wie möglichen Schrift (nicht größer als 24). Das Problem dabei ist, dass der Zeilenumbruch sich ja nicht nur nach der Breite der verwendeten Buchstaben bemisst (i ist schmaler als B) sondern auch nach der Länge der verwendeten Worte. Daher wäre es optimal, wenn ich die Anzahl der von Excel automatisch gesetzten umbrüche Ermitteln könnte. Automatisch deshalb, weil ich diese ja nicht selbst über chr(10) gesetzt habe.
Ich habe mal das Problem extrahiert und so könnte es ungefähr aussehen:

Sub Schriftgröße()
Range("A4:C4").Font.Size = 24
For i = 1 To 24
x = Range("A4:C4").Font.Size
Range("A4:C4").Font.Size = x - 1
' if anzahl von xl gesetzte zeilenumbrüche 
Kann mir da jemand weiterhelfen und aus der auskommentierten Zeile eine Codezeile machen?
LG Georg

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: VBA Zeilenumbrüch in Zelle auslesen
17.09.2011 12:03:41
Josef

Hallo Georg,
in dem Text sind keine Zeilenumbrüche vorhanden, darum kann man sie auch nicht zählen.
Verbundene Zellen sind hier hinderlich, wähle stattdessen die Option "Über Auswahl zentrieren", dann geht es mit folgendem Code.

Sub test()
  
  On Error GoTo ErrExit
  Application.ScreenUpdating = False
  
  With Range("A4")
    .Font.Size = 24
    .Rows.AutoFit
    Do While .RowHeight > 62
      .Font.Size = .Font.Size - 1
      .Rows.AutoFit
    Loop
    .RowHeight = 62
  End With
  
  ErrExit:
  Application.ScreenUpdating = True
End Sub



« Gruß Sepp »

Anzeige
Großartig!
17.09.2011 12:19:20
Georg
Hallo Josef,
toll - eine ganz feine Lösung auf die ich niemals gekommen wäre - zumal ich die Funktion über Auswahl zentrieren noch nie benutzt habe.
Vielen Dank!
lgg

395 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige