Anzeige
Archiv - Navigation
1792to1796
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 festlegen

Zeilenhöhe festlegen
23.11.2020 09:35:42
Thomas
Hallo Excelfreunde,
ich habe mir ein kleines Macro zusammengebaut welches sicherstellt das auf allen zu druckenden Seiten immer die letzten Zeilen gleich sind. So ähnlich wie Wiederholungzeilen oben, aber halt Ebend nur unten.
Nun muss ich auf der letzten zu druckenden Seite immer leere Zeilen einfügen bis Excel ein neuen Seitenumbruch einfügt.( Blattfüllend ).
dies ist der Macroteil dazu:
'HBreakR = wksKopfzeile.HPageBreaks(i).Location.Row
letzte = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Row + 1
wksKopfzeile.Cells(letzte + 1, 1).Select
wksKopfzeile.Range("a" & letzte) = "test"
'ActiveSheet.PageSetup.PrintArea = ""
With wksKopfzeile.PageSetup 'Druckbereich setzen. Sonst findet Excel keine Seitenumbrüche?!
'.Zoom = false
.PrintArea = ""
.PrintArea = "$A$1:$L$" & letzte
.FitToPagesWide = 1
'.PrintArea = "$A$1:$f$220"
End With
'Stop
Set Zelle = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Offset(-1, 0)
'HBreakR = wksKopfzeile.HPageBreaks(i).Location.Row
anzHPB = wksKopfzeile.HPageBreaks.Count
'HBreakR = wksKopfzeile.HPageBreaks(i).Location.Row
'Stop
Do
Set Zelle = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0)
Zelle.EntireRow.Insert shift:=xlDown
'https://www.herber.de/forum/archiv/980to984/983139_Zeile_einfuegen_mit_bestimmter_Hoehe.html
Call ZeileHoehe(4, 24) 'Nur eine Zeile!
'HBreakR = wksKopfzeile.HPageBreaks(i).Location.Row
Loop While wksKopfzeile.HPageBreaks.Count = anzHPB
'Zelle.EntireRow.Delete
Application.CutCopyMode = False
Dim zeilena3
zeilena = wksKopfzeile.Columns(28).Find(What:="kopfzeile", LookAt:=xlWhole, SearchDirection:=xlPrevious).Row
zeilena3 = wksKopfzeile.Columns(28).Find(What:="fußzeile", LookAt:=xlWhole, SearchDirection:=xlPrevious).Row
' Rahmen setzen
letzte = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Row
With wksKopfzeile.Range(Cells(zeilena + 1, 1), Cells(zeilena3 - 4, 12)).Borders
.LineStyle = xlContinuous
.Weight = xlThin
End With
With wksKopfzeile
letzte = .Cells(Rows.Count, 1).End(xlUp).Row '- 1
.Cells(letzte, 1).EntireRow.Delete
End With
Dies ist der Teil mit dem ich die leeren Zeilen einfüge:
Set Zelle = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0)
Zelle.EntireRow.Insert shift:=xlDown
Nun möchte ich gern bei den neuen Zeilen eine bestimmte Zeilenhöhe mitgeben.
Dazu habe ich im Netz diese Funktion gefunden:
Function ZeileHoehe(lRow As Long, hRow As Integer)
'https://www.herber.de/forum/archiv/980to984/983139_Zeile_einfuegen_mit_bestimmter_Hoehe.html
'funktion für Zeilenhöhe
Rows(lRow).Insert shift:=xlDown
Rows(lRow).RowHeight = hRow
End Function
Diese wird folgendermaßen aufgerufen.
Call ZeileHoehe(4, 24) 'Nur eine Zeile!
Leider bekomme ich diese nicht auf meinen Bedürfnissen angepasst.
Wenn ich es mit

Function ZeileHoehe(lRow As Long, hRow As Integer)
Set zelle = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0)
zelle.Insert.Insert shift:=xlDown
zelle.Insert.RowHeight = hRow
End Function

Sub mein_versuch()
Dim zelle As Range
Set zelle = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0)
'*** Dein Code ***
Call ZeileHoehe(zelle, 24)       'Nur eine Zeile!
'*** Dein Code ***
End Sub

versuche bekomme ich logischerweise eine Fehlermeldung. ( Agrumenttyp unverträglich)
Kann mir jemand dabei behilflich sein?
https://www.herber.de/bbs/user/141785.xlsm
mfg Thomas

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ups falsche Beispieldatei
23.11.2020 10:33:52
ralf_b
1. In der funktion ZeileHoehe ist "wskopfzeile" nicht bekannt. Du kannst die Referenz auf das Arbeitsblatt der Funktion übergeben, genauso wie die beiden anderen Werte. Oder wenn es sich um das aktive Blatt handelt, dann ohne Angabe des Blattes nur Cells(x,y)
2. das ist Murks zelle.Insert.Insert shift:=xlDown ein insert kann weg
3. wenn du die Zelle in der Funktion ermittelst, dann ist lrow überflüssig.
4. zelle.Insert.RowHeight = hRow
besser so.
zelle.RowHeight = hRow
Function ZeileHoehe(lRow As Long, hRow As Integer)
Set zelle = wksKopfzeile.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0)
zelle.Insert.Insert shift:=xlDown
zelle.Insert.RowHeight = hRow
End Function

Anzeige
funktioniert besten dank
23.11.2020 12:04:01
Thomas
Hallo ralf_b,
so funktioniert es jetzt:
Function ZeileHoehe(lRow As Long, hRow As Integer)
Set zelle = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(-2, 0)
zelle.Insert shift:=xlDown
zelle.RowHeight = hRow
End Function
Sub test()
Call ZeileHoehe(0, 50)
End Sub

Hab rechtvielen dank für deine Hilfe.
Ich wünsch dir noch einen ruhigen Montag.
mfg Thomas
Mist funktioniert doch noch nicht ganz
23.11.2020 12:35:35
Thomas
Hallo Excelfreunde,
es funktioniert doch noch nicht ganz.
Ich erhalte zwar keine Fehlermeldung mehr und es wird auch eine Zeile eingefügt.
Jedoch wird die Höhe der Zeile unter der neuen Zeile verändert.
was könnte ich da noch versuchen?
mfg thomas
Function ZeileHoehe(lRow As Long, hRow As Integer)
Set zelle = Tabelle1.Cells(Rows.Count, 1).End(xlUp).Offset(-4, 0)
zelle.Insert shift:=xlDown
zelle.RowHeight = hRow
End Function
Sub test()
'MsgBox zelle
Call ZeileHoehe(0, 100)
End Sub

Anzeige
AW: Mist funktioniert doch noch nicht ganz
23.11.2020 12:47:25
ralf_b
und dabei benutzt du schon die Lösung.
zelle.offset(-1).RowHeight = hRow
alles klar habs kapiert/ besten dank
23.11.2020 13:03:24
Thomas
Hallo ralf_b,
du hast recht da hätte ich auch selbst drauf kommen können/ müssen
Man Man.
Hab rechtvielen dank nochmal für deine Hilfe.
mfg thomas
eines noch
23.11.2020 13:21:49
ralf_b
dann ändere aber auch das
ZeileHoehe( hRow As Integer)
Aufruf mit Call ZeileHoehe(100)
das passt. Riesen dank für auch diese Info.
23.11.2020 15:24:51
Thomas
Hallo ralf_b,
habs eingebaut.
Auch dafür riesen dank.
mfg thomas
danke für die rückmeldung -owT
23.11.2020 15:29:47
ralf_b

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige