Herbers Excel-Forum - das Archiv

Zeilenhöhe automatisch anpassen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
Bild

Betrifft: Zeilenhöhe automatisch anpassen
von: steve

Geschrieben am: 22.02.2005 16:10:16
Hallo Leute,
ich habe noch ein kleines Problem:
Ich möchte eine Zelle in eine Excelmaske importieren. Da die Zellinhalte von der Textlänge her immer sehr stark schwanken, habe ich mehrere Zellen miteinander verknüpft (so geht es über das ganze Blatt) und Zeilenumbruch aktiviert. Jetzt ist nur das Problem, dass er die Zellenhöhe nicht automatisch anpasst.
D.h. wenn der Text länger ist, wird er abgeschnitten, wenn er kürzer ist wird Platz verschwendet. Gibt es da eine Möglichkeit?
MfG
Steve
Bild

Betrifft: AW: Zeilenhöhe automatisch anpassen
von: Cardexperte
Geschrieben am: 22.02.2005 16:45:39
Hello steve,
guck mal bei spotlight oder google mal, viele viele Beispiele dafür, hier nur der Tip, arbeite mit Gültigkeit in der Zieltabelle.
Gruss WS
Bild

Betrifft: AW: Zeilenhöhe automatisch anpassen
von: Michael

Geschrieben am: 23.02.2005 04:07:57
Hi ... das ist standardmäßig für verbundene Zellen nicht implementiert ...
Mit folgender VBA-Funktion sollte es aber gehen (hatte sie ursprünglich mal irgendwo hier gefunden ...)
Diese muss allerdings erst ins VBA-Fenster (+, dann Eintrag "Diese Arbeitsmappe" im Projektfenster anklicken und ins Codefenster einfügen) kopiert werden. Dann ist Sie über + aufrufbar.

Funktioniert, wenn die verbundene Zelle markiert ist (und die Zeilenumbrüche für die Zelle aktiviert sind) ...
-----------------------------------------------------------------------------------------
Sub autofitXLMergedCells()
'Passt Zeilenhöhe an den Text innerhalb von verbundenen Zellen im selektierten Bereich an
'(Die Autofit-Methode des Excel-Range-Objektes funktioniert für verbundene Zellen nicht)
On Error GoTo Err_autofitXLMergedCells
Dim lo_CurRange As Excel.Range
Dim lsg_SumCellWidths As Single
Dim lsg_OriginalWidthFirstCol As Single
Dim lsg_NewRowHeight As Single
Dim li_MergedCellsCount As Integer
With Selection
If .MergeCells Then
If .Rows.Count = 1 And .WrapText = True Then
lsg_OriginalWidthFirstCol = .Cells(, 1).ColumnWidth
'Einzelzellbreiten und Breiten der Gitterlinien summieren
For Each lo_CurRange In Selection
lsg_SumCellWidths = lo_CurRange.ColumnWidth + lsg_SumCellWidths
li_MergedCellsCount = li_MergedCellsCount + 1
Next
lsg_SumCellWidths = lsg_SumCellWidths + (li_MergedCellsCount - 1) * 0.71
'Verbindung der Zellen aufheben, erste (datentragende) Zelle auf Gesamtbreite ausdehnen und
'Höhe anpassen über Standardmethode
.MergeCells = False
.Cells(1).ColumnWidth = lsg_SumCellWidths
.EntireRow.AutoFit
'Resultierende Zeilenhöhe merken, erste Zelle zurücksetzen, Verbindung wiederherstellen, Höhe anpassen
lsg_NewRowHeight = .RowHeight
.Cells(1).ColumnWidth = lsg_OriginalWidthFirstCol
.MergeCells = True
.RowHeight = lsg_NewRowHeight
End If
End If
End With
Exit Sub
'Nur für's Debuggen
Resume
Err_autofitXLMergedCells:
MsgBox Err.Number & ": " & Err.Description
End Sub

------------------------------------------------------
Grüßle
Micha
Bild

Betrifft: AW: Zeilenhöhe automatisch anpassen
von: Michael
Geschrieben am: 23.02.2005 04:13:39
Oh, sorry ...
das erste + oben soll Alt+F11, das zweite Alt+F8 heissen ...
Bild

Betrifft: AW: Zeilenhöhe automatisch anpassen
von: steve

Geschrieben am: 23.02.2005 07:37:25
Vielen Vielen Dank,
wenn ich dieses Makro bei mir in den Userform Ablauf über Module mit einbinde, macht er es sogar ganz automatisch.
MfG
Steve
 Bild
Excel-Beispiele zum Thema "Zeilenhöhe automatisch anpassen"
Automatische Datumformatierung unterdrücken Automatisch Sicherungsdatei erstellen
Automatisches Komplettieren einer Zelleingabe Zelleingaben automatisch auf volle 1,2-Teile runden
Tabelle nach Datumseintrag automatisch sortieren Eingaben in B:D automatisch mit 6 multiplizieren
Zelleingabe automatisch in Kopfzeile übernehmen Nach Zelleingabe automatische Sortierung
Automatische Sortierung bei Zelleintrag Min- und Max-Werte automatisch markieren