Hallo Klaus,
mit verbundenen Zellen ist das ein bisschen schwieriger;-)
Ich hab Dir hier mal eine Prozedur geschrieben und Kommentiert (sowie auch
getestet), mit der es geht.
Achtung: So funktioniert es nur, solange Du pro Zeile nur einen Zellvberbund
mit Zeilenumbruch hast. Wenn es mehr sind, musst Du in der aufrufenden
Prozedur dafür sorgen, dass auch der höchste Range "gewinnt".
Sub ZeilenHoehe(Target As Range)
Dim ActiveCellWidth, tmpCellWidth, PossNewRowHeight, MergedCellRgWidth
As Single
Dim iX, iY, iZ As Integer
Dim CurrCell As Range
On Error Resume Next
'Wenn der Zellverbund nicht leer ist
If Not Trim(Target.Cells(1)) = "" Then
'nur, wenn es sich um verbundene Zellen handelt
If Target.MergeCells Then
With Target.MergeArea
'nur, wenn einzeilig und Zeilenumbruch eingeschaltet
If .Rows.Count = 1 And .WrapText = True Then
'Schleife über alle Zellen zur Berechnung der Gesamtbreite
For Each CurrCell In Target.MergeArea
tmpCellWidth = CurrCell.ColumnWidth
MergedCellRgWidth = tmpCellWidth + MergedCellRgWidth
iX = iX + 1
Next
'die Anzahl Spalten minus Eins multipliziert mit 0,5
aufschlagen
'0,5 ist die Standardbreite der Rahmenlinie zwischen den
Spalten
MergedCellRgWidth = MergedCellRgWidth + (iX - 1) * 0.5
'Zellverbund auflösen
.MergeCells = False
'erste Spaltenbreite merken
ActiveCellWidth = .Cells(1).ColumnWidth
'Gesamtbreite der ersten Spalte zuweisen
.Cells(1).ColumnWidth = MergedCellRgWidth
'jetzt automatische Zeilenhöhenanpassung ausführen
.EntireRow.AutoFit
'neue Höhe merken
PossNewRowHeight = .RowHeight
'leichter Aufschlag in der Höhe bei anderen Fonts als
Arial,
'damit die unterste Zeile nicht abgeschnitten wird
If Target.Font.Name <> "Arial" Then PossNewRowHeight =
.RowHeight * 1.05
'erste Spalte auf alte Breite zurück
.Cells(1).ColumnWidth = ActiveCellWidth
'Zellverbund wiederherstellen
.MergeCells = True
'neue Zeilenhöhe dem Zellverbund zuweisen
.RowHeight = PossNewRowHeight
End If
End With
Else
'einzelne Zelle
Target.EntireRow.AutoFit
End If
Else 'Zelle ist Leer
If Target.WrapText Then
Target.EntireRow.AutoFit
End If
End If
End Sub