Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Makro Zeilenhoehe bei verbundenen Zellen anpassen

Makro Zeilenhoehe bei verbundenen Zellen anpassen
04.05.2006 19:05:07
gemba
Hallo,
ich habe im Archiv von Herber folgendes Makro zum automatischen Anpassen der Zeilenhoehe bei verbundenen Zellen und aktiviertem Zeilenumbruch gefunden:

Sub AutoFitMergedCellRowHeight()
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range
Dim ActiveCellWidth As Single, PossNewRowHeight As Single
Dim iX As Integer
If ActiveCell.MergeCells Then
With ActiveCell.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
ActiveCellWidth = ActiveCell.ColumnWidth
For Each CurrCell In Selection
MergedCellRgWidth = CurrCell.ColumnWidth + _
MergedCellRgWidth
iX = iX + 1
Next
MergedCellRgWidth = MergedCellRgWidth + (iX - 1) * 0.71
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = ActiveCellWidth
.MergeCells = True
.RowHeight = PossNewRowHeight
'.RowHeight = IIf(CurrentRowHeight > PossNewRowHeight, _
'CurrentRowHeight, PossNewRowHeight)
''PossNewRowHeight, PossNewRowHeight)    auch zum Verkleinern
End If
End With
End If
End Sub

Das Makro wird ueber eine Schaltflaeche aufgerufen. Ich habe festgestellt, dass die Zeilenhoehe nur geaendert wird, wenn ich eine Zelle vorher angeklickt habe. Ich wuerde aber gerne die Zeilenhoehenanpassung automatisch ueber einen definierten Zellenbereich laufen lassen.
Leider reichen meine VBA Kenntnisse noch nicht, um das Makro dahingehend anzupassen. Vielleicht gibt es ja eine einfache Loesung dafuer?
Besten Dank & Gruss, gemba
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro Zeilenhoehe bei verbundenen Zellen anpassen
05.05.2006 07:30:57
Harald
Hallo Gemba,
das läuft als Schleife. Festlegung des Bereiches erfolgt in dieser Codezeile
For Each CurrCell In Selection 'für selektierten Bereich
For Each CurrCell In Range("B10:Z11") 'für festgelegten Bereich
oder Du legst es vorher fest.
Dim bereich as range
set bereich = range("B10:Z12")
For Each CurrCell In bereich
Gruss Harald
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige