Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1532to1536
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
Inhaltsverzeichnis

Zeilenhöhe verbundene Zellen vor Drucken ausführen

Zeilenhöhe verbundene Zellen vor Drucken ausführen
02.01.2017 16:44:32
Jana
Hallo zusammen und ein frohes neues Jahr.
Ich habe mir hier vor einiger Zeit ein Makro zusammengesucht mit dem sich die Höhe der verbundenen Zellen prima anpassen lässt. (Vorweg: Ja, die verbundenen Zellen müssen leider sein, das Dokument hat ne Historie und wird nicht nur von mir und auch als Vorlage für weitere Vorgänge genutzt.)
ABER: Das was ich habe, funktioniert ja auch. Es ist unter Module, Modul 1 abgelegt. Ich kann es im Dokument starten und es läuft für die jeweils markierten Zellen problemlos durch.
Jetzt hätte ich es aber zwecks einfacherem Handling gerne so, dass es automatisch VOR dem Drucken des Dokuments abläuft. Dazu muss ich sagen, dass sich die Länge des Dokuments immer wieder ändert, also die beschriebenen Zeilen. Aber wie geht das? Ich habe versucht es so wie es ist in "Diese Arbeitsmapp" mit "Workbook" und dann "BeforePrint" einzufügen, aber das geht nicht.
Leider habe ich wenig bis keine Ahnung von VBA, interessiere mich aber sehr fürs programmieren und würde es jetzt gerne so hinkniffeln, das es geht. Mag jemand helfen?
Sub tr_Start()
Dim rngZelle                  As Range
For Each rngZelle In Selection
ZeilenhoeheVerbundeneZellen rngZelle
Next rngZelle
End Sub
Sub ZeilenhoeheVerbundeneZellen(rngZelle As Range)
'passt die Zeilenhöhe bei verbundenen Zellen automatisch an
'von Hans Herber / angepasst von Thomas Ramel (t.ramel@mvps.org)
'Aufrufen per Übergabeparameter mit der folgenden Zeile:
'Sub test()
'ZeilenhoeheVerbundeneZellen (ActiveSheet.Range("A1"))
'End Sub
Dim CurrentRowHeight As Single, MergedCellRgWidth As Single
Dim CurrCell As Range
Dim CellWidth As Single, PossNewRowHeight As Single
Dim iX As Integer
If IsEmpty(rngZelle) Then
Set rngZelle = ActiveCell
End If
If rngZelle.MergeCells Then
With rngZelle.MergeArea
If .Rows.Count = 1 And .WrapText = True Then
Application.ScreenUpdating = False
CurrentRowHeight = .RowHeight
CellWidth = rngZelle.ColumnWidth
For Each CurrCell In rngZelle.MergeArea
MergedCellRgWidth = CurrCell.ColumnWidth + _
MergedCellRgWidth
iX = iX + 1
Next
MergedCellRgWidth = MergedCellRgWidth + (iX - 1) * 0.9
.MergeCells = False
.Cells(1).ColumnWidth = MergedCellRgWidth
.EntireRow.AutoFit
PossNewRowHeight = .RowHeight
.Cells(1).ColumnWidth = CellWidth
.MergeCells = True
.RowHeight = PossNewRowHeight
End If
End With
End If
End Sub
DANKE!

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeilenhöhe verbundene Zellen vor Drucken ausfü
03.01.2017 14:22:47
Michael
Hallo!
Hab's mir jetzt nicht groß durchgesehen, aber grds. müsste im BeforPrint-Ereignis des Workbook schon Folgendes reichen (statt der tr_Start-Routine):
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range
For Each c In Me.ActiveSheet.UsedRange
ZeilenhoeheVerbundeneZellen (c)
Next c
End Sub
LG
Michael
AW: Zeilenhöhe verbundene Zellen vor Drucken ausfü
03.01.2017 14:42:47
Jana
Danke für deine Antwort.
Da bekomme ich leider einen Laufzeitfehler 424 "Objekt erforderlich".
Ich dachte, es kann ja eigentlich nicht so schwer sein ein funktionierendes, bestehndes Makro (oder sind es genau genommen zwei?) vor dem Drucken durchlaufen zu lassen. Leider verstehe ich von VBA zu wenig um selber zu lösen.
Danke trotzdem
Anzeige
AW: Zeilenhöhe verbundene Zellen vor Drucken ausfü
03.01.2017 14:49:40
Michael
Hi!
So natürlich
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range
For Each c In Me.ActiveSheet.UsedRange
Call ZeilenhoeheVerbundeneZellen(c)
Next c
End Sub
LG
Michael
AW: Zeilenhöhe verbundene Zellen vor Drucken ausfü
04.01.2017 10:41:21
Jana
Hallo und nochmals danke,
da stürzt er leider während des Druckvorgangs ab. Ich hab es auch so versucht:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Dim c As Range
For Each c In Me.ActiveSheet.UsedRange
Call tr_Start(c)
Next c
End Sub
Aber da stürzt er ebenfalls ab.
So funktioniert es, aber nur wenn man den gewünschten Bereich vor dem Drucken markiert:
Private Sub Workbook_BeforePrint(Cancel As Boolean)
Call tr_Start
End Sub
Ich nehme an, dass dein "Dim c As Range..." genau das markieren umgehen sollte. Aber leider funktioniert das nicht.
Noch eine Idee? Da es eine Vorlage für mehrere Personen werden soll, suche ich eben nach einer Lösung bei der man nichts vorher manuell extra einstellen muss.
Anzeige
Zeig mal (D)eine Bsp-Datei...
04.01.2017 10:50:23
Michael
Jana,
...ich habe das Gefühl, dass ich mir das genauer ansehen muss.
Daten, v.a. senible Daten, kannst (sollst!) Du durch Dummy-Daten ersetzen; mich würde v.a. der Tabellen-Aufbau interessieren, wie groß Dein Datenbereich ist, wie die verbundenen Zellen so verteilt sind etc.
Dann kann ich hier evtl. tiefer einsteigen.
LG
Michael
AW: Zeig mal (D)eine Bsp-Datei...
04.01.2017 11:13:42
Jana
Hallo,
hier die Dummy-Datei: https://www.herber.de/bbs/user/110319.xlsm
Die Anzahl der Positionen ist immer wieder unterschiedlich, eine maximale Zeilenanzahl möchte ich hier deshalb nicht vorgeben. Die Anzahl der Spalten ist immer gleich und sollten nicht verändert werden, da sie später auch in der Rechnungsstellung verwendet werden. Die Beschreibungen und Überschriften sind unterschiedlich lang, daher das Problem mit der Zeilenhöhe.
Hilft dir das weiter?
Anzeige
Meine AW unten schon gesehen? Passt? owT
05.01.2017 13:29:11
Michael
AW: Meine AW unten schon gesehen? Passt? owT
05.01.2017 15:54:08
Jana
ja, habe ich. Es haben sich zuerst die Spaltenbreiten verändert (so wie in deiner Beispieldatei), aber jetzt hab ich deinen Code nochmal in meine Mappe kopiert da ist das nicht mehr passiert.
Allerdings hat er die letzte Zeile jetzt einmal nicht mit verändert, keine Ahnung warum.
Ich sehe das jetzt erstmal als gelöst an, muss eh mal Rücksprache halten, ob das für das gewünschte Endprodukt so passt.
Vielen Dank für deine Hilfe!
Ok! Gern, gib Bescheid, falls Du was brauchst, owT
05.01.2017 16:51:46
Michael
AW: Zeilenhöhe verbundene Zellen vor Drucken ausfü
04.01.2017 13:52:59
Michael
Hallo!
Versuch mal so: https://www.herber.de/bbs/user/110324.xlsm
Lg
Michael
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige