Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
752to756
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
752to756
752to756
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

automatische Zeilenhöhe bei verbundenen Zellen

automatische Zeilenhöhe bei verbundenen Zellen
05.04.2006 04:02:20
Friedemann
Hallo Leute
Ich habe wieder mal ein Problem als nicht VBA Experte.
Ich möchte meine Zeilenhöhe von verbundenen Zellen automatisch anpassen.
Ich habe folgendes Makro gefunden welches auch sehr gut funktioniert. Ich möchte es aber wie folgt abändern:
1. Das Makro soll laufen wenn das Arbeitsblatt aufgerufen wird oder als Module über das Drücken einer Taste im Arbeitsblatt.
2. Das Makro soll die Zeilenhöhe für die Zellen e27:k112 (e-k ist verbunden, also Zeilen 27 bis 112) anpassen. (Range("e27:k112").Select ?)
Kann mir da jemand helfen?
Hier das Makro wie es zur Zeit ist:

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 + 15
.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

Vielen Dank an Alle
Friedemann

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: automatische Zeilenhöhe bei verbundenen Zellen
05.04.2006 04:33:56
Mustafa
Hallo Friedmann,
füge in das Modul von dem Tabellenblatt wo du das Makro aufrufen willst folgendes ein:

Private Sub Worksheet_Activate()
Call autofitXLMergedCells
End Sub

Dann änderst du die Zeile
With Selection um in
With Range("e27:k112")
Ungetestet.
Jetzt sollte es eigentlich an deine Bedürfnisse angepasst sein.
Rückmeldung obs hilft wäre nett.
Viele Grüße aus Köln.
AW: automatische Zeilenhöhe bei verbundenen Zellen
05.04.2006 04:51:38
Friedemann
Hallo Mustafa
Hätte nicht erwartet das mir jemand mitten in der Nacht antworted. Danke.
Aber leider funktioniert Dein Tip nicht. Auch nicht wenn ich anstelle des >Worksheet_Activate()CommandButton1_Click() Hast Du noch ne Idee?
Grüße aus Bakersfield, California
Friedemann
Anzeige
AW: automatische Zeilenhöhe bei verbundenen Zellen
05.04.2006 05:31:02
Mustafa
Hallo Friedmann,
Was funktioniert denn nicht?
Welche Fehlermeldung wird ausgegeben?
Da ich gleich nicht mehr da bin stelle ich die Frage gleich noch auf offen.
Villeicht hilft ja noch jemand deinen Code anzupassen.
Viele Grüße aus Köln.
AW: automatische Zeilenhöhe bei verbundenen Zellen
05.04.2006 06:13:58
Friedemann
Es tut sich schlicht nichts auf dem Sheet, ob Button oder Activate.
Makro ist running.
Friedemann
AW: automatische Zeilenhöhe bei verbundenen Zellen
07.04.2006 01:56:58
Mustafa
Hallo Friedmann,
Sorry für die verspätete Antwort.
Versuch es mal mit folgendem Code.

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 Zelle As Range
Dim lsg_SumCellWidths As Single
Dim lsg_OriginalWidthFirstCol As Single
Dim lsg_NewRowHeight As Single
Dim li_MergedCellsCount As Integer
For Each Zelle In Range("e27:k112")
With Zelle
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 + 15
.Cells(1).ColumnWidth = lsg_OriginalWidthFirstCol
.MergeCells = True
.RowHeight = lsg_NewRowHeight
End If
End If
End With
Next Zelle
Exit Sub
'Nur für's Debuggen
Resume
Err_autofitXLMergedCells:
MsgBox Err.Number & ": " & Err.Description
End Sub

ist wieder ungetestet.
Rückmeldung obs Hilft wäre nett.
Viele Grüße aus Köln.
Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige