Problem(e) bei optimaler Zeilenhöhe mit Verbundzel
07.02.2007 21:46:37
Thomas
mit dem beigefügten Code, lasse ich in meiner Excel-Mappe bei Verbundzellen automatisch die optimale Zeilenhöhe einstellen.
Leider gibt es bei der Ausführung von diesem Code ein paar Probleme:
- Wenn in die Verbundzelle ein Wert geschrieben wird und danach versucht wird
die Funktion "Rückgängig" (über Bearbeiten --> Rückgängig") zu benutzen, ist
diese Funktion nicht möglich. D. h. in den Verbundzellen kann ich z. Z.
nichts rückgängig machen.
- Wenn der User sein letztes Wort in die Verbundzelle geschrieben hat und geht durch
die Returntaste aus der Verbundzelle heraus, wird diese Verbundzelle unten automatisch
größer als sie sein müsste.
- Wenn in der Verbundzelle ein Zeilenumbruch erzeugt wird, wird beim Drucken das Symbol
(kleines Quadrat) mit ausgedruckt.
Für Hilfe sage ich schon vorab vielen Dank!
Gruß,
Thomas
-----
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim IstBreite As Double, GesamtBreite As Double, r As Range, MaxHoehe As Double, MergedCells As Range, rMC As Range
On Error Resume Next
If (Target.MergeCells And Target.WrapText) Or _
(Not (Target.MergeCells) And Target.WrapText And IsNull(Target.EntireRow.MergeCells)) Then
Application.ScreenUpdating = False
Target.EntireRow.AutoFit
MaxHoehe = Target.RowHeight
For Each r In Target.EntireRow.Cells
If (r.MergeCells) Then
Set MergedCells = r.MergeArea
If (MergedCells.Columns.Count > 1) And (r.Address = MergedCells.Cells(1, 1).Address) Then
IstBreite = r.ColumnWidth
GesamtBreite = 0
MergedCells.MergeCells = False
For Each rMC In MergedCells
If (rMC.Row = r.Row) Then GesamtBreite = GesamtBreite + rMC.ColumnWidth
Next
r.ColumnWidth = GesamtBreite
r.Rows.AutoFit
MaxHoehe = WorksheetFunction.Max(r.RowHeight, MaxHoehe)
r.ColumnWidth = IstBreite
MergedCells.Merge
End If
Set MergedCells = Nothing
End If
Next
Target.RowHeight = MaxHoehe
Application.ScreenUpdating = True
End If
End Sub