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

Kann Excel Seitenende selbst erkennen?

Kann Excel Seitenende selbst erkennen?
25.02.2005 21:51:07
Drazen
Hallo,
ich drucke über ein UF ein fertiges Rechnungsformular aus. Mit folgendem Code setzte ich dann noch MfG usw. dazu:
Dim xZeile As Long
xZeile = Range("A65536").End(xlUp).Row
Cells(xZeile + 7, 2) = "Mit freundlichen Grüssen"
Cells(xZeile + 7, 2).Select
With Selection
.Font.bold = True
.Font.Name = "Arial"
.Font.Size = 11
.HorizontalAlignment = xlLeft
End With
Cells(xZeile + 8, 2) = "XXX GmbH London"
Cells(xZeile + 8, 2).Select
With Selection
.Font.bold = True
.Font.Name = "Arial"
.Font.Size = 11
.HorizontalAlignment = xlLeft
End With
Das klappt auch prima, er nimmt die letzte benutzte Zeile und gibt nach 7 Zellen das gewünschte ein, was aber wenn es zu viele Zeilen werden und dann das "Mit freundlichen Grüssen" auf Seite 1 ist und die Firma auf Seite 2, ich muss noch hinzufügen, die Zeilen davor werden in der grösse angepasst, haben also variable Höhen(Zeilenumbruch). Excel müsste also erkennen wann ein Seitenumbruch kommt und diesen dann clever umgehen, kann man dies irgedwie erreichen?
Grüsse
Drazen

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ...ausgegraben
25.02.2005 22:22:05
Drazen
Hallo,
nicht schlecht, ist aber nicht so richtig das was ich wollte, Du hast damit aber doch meine Frage beantwortet, es ist also nicht möglich, ich lass zur Sicherheit mal den Thread auf offen, vieleicht ist ja jemandem was cooles dazu eingefallen, vielen Dank für deine schnelle Hilfe.
Grüsse
Drazen
AW: ...ausgegraben
Bert
Was soll denn passieren, wenn ein Makro feststellt, dass Gruß und Firma nicht mehr
auf die erste Seite passt?
Bert
Anzeige
AW: ...ausgegraben
25.02.2005 22:38:00
Drazen
Hallo Bert, mein Retter,
am besten wäre es wenn es dann diese "xZeile + 8,.." dementsprechend ändern könnte, ich hab viel über alle möglichen verzweigungen nachgedacht, aber ich hab ehrlich gesagt keine Ahnung wie Excel überhaupt weiss wann es einen Seitenumbruch machen soll, wüsste ich das, dann hätte ich ein Ereignis an das ich mich knüpfen könnte..
Grüsse
Drazen
AW: ...ausgegraben
25.02.2005 23:32:55
Josef
Hallo Drazen!
Vielleicht ein Ansatz!

Sub Page_Breaks()
Dim xZeile As Long
Dim breaks1 As Integer, breaks2 As Integer
'letzte Zeile feststellen
xZeile = Range("A65536").End(xlUp).Row
'Anzahl der Zeilenumbrüche ermitteln
breaks1 = ActiveSheet.HPageBreaks.Count
'Zusatztext eibfügen
Cells(xZeile + 7, 2) = "Mit freundlichen Grüssen"
Cells(xZeile + 8, 2) = "XXX GmbH London"
With Range(Cells(xZeile + 7, 2), Cells(xZeile + 8, 2))
.Font.Bold = True
.Font.Name = "Arial"
.Font.Size = 11
.HorizontalAlignment = xlLeft
End With
'Neuerlich Anzahl der Umbrüche ermitteln
breaks2 = ActiveSheet.HPageBreaks.Count
If breaks1 = breaks2 Then 'Wenn Anzahl der Umbrüche gleichgeblieben
MsgBox "Alles OK"
Else                      'Sonst
MsgBox "Schei...."
ActiveSheet.HPageBreaks.Add Before:=Cells(Int((xZeile + 8) / 3) * 2, 1)
End If
End Sub

Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Anzeige
AW: ...ausgegraben
Bert
Problem, wenn noch kein Umbruch vorhanden ist, kann man zunächst mal nicht feststellen,
wo dieser denn wohl wäre. Man könnte weiter unten einen dummeintarg in eine Zelle
machen(und später wieder löschen)um so festzustellen, in welcher Zeile der Umbruch
erfolgt.
Ich weiß nun aber noch immer nicht was passieren soll, wenn festgestellt wird, der Umbruch würde in Zeile 55 erfolgen, dein Text + Gruß + Firma würde aber nicht mit dem geplanten Abstand von 7 Zeilen dort hineinpassen, You know?
Du könntest im Layout auf eine Seite anpassen wählen, das hilft aber nur in kleinen Grenzen.
Bert
Anzeige
AW: ...ausgegraben
26.02.2005 00:08:14
Drazen
Hallo,
ich hab mir das irgendwie so gedacht; "... führe den Code mit dem Einfügen(MFG usw) aus wenn du 1 Zeile vor dem Umbruch bist, ansonsten wieder 8 Zeilen nach Umbruch und nach letzter genutzter Zeile.."
Schön hab ich mir das ausgedacht oder? ;-)
Ich grüble schon lange darüber und mir fällt nix logisches ein.
Grüsse
Drazen
AW: ...ausgegraben
Bert
Hab ich nicht ganz gerafft. Wenn dein Text bis Zeile 53 geht und der Umbruch in Zeile
55 ist, wo soll dann MfG und Firma stehen?
Bert
AW: ...ausgegraben
26.02.2005 00:34:33
Drazen
Hi Bert,
Also im Falle der Text geht bis 53, Umbruch in 55, dann müsste MFG in mindestens zeile 65 stehen, wenn aber Text bis 42 umbruch dann in 50,(das ist ja jetzt auch schon so).
Ich will halt nur irgendwie die Situation vermeiden :
Text bis 47, dann MFG in 54. dann Umbruch in 55 und dann Firma in 55 also Seite 2
Grüsse
Drazen
Anzeige
AW: ...ausgegraben
Bert
Sub Druck_anpassen()
Dim lngZ As Long, hpb As Long, pbr As Long, d As Long
lngZ = Cells(Rows.Count, 1).End(xlUp).Row
Cells(lngZ + 7, 2) = "Mit freundlichen Grüßen"
Cells(lngZ + 8, 2) = "Drazen Syndikat"
With Range(Cells(lngZ + 7, 2), Cells(lngZ + 8, 2))
.Font.Bold = True
.Font.Name = "Arial"
.Font.Size = 11
.HorizontalAlignment = -4131
End With
hpb = ActiveSheet.HPageBreaks.Count
If hpb = 0 Then Exit Sub
pbr = ActiveSheet.HPageBreaks(1).Location.Row
d = pbr - lngZ
If d = 8 Then Rows(lngZ + 1).Insert
End Sub

Bert
AW: ...ausgegraben
26.02.2005 12:33:25
Drazen
Hi Bert,
ich staune immer wieder über Dein logisches Denken, na klar das ist es.
Könnte man das ganze noch irgendwie modifizieren; eventuell mit Select Case oder so, weil:
ich lege ja fest setze mir den Absender 8 Zeilen unterhalb des Textes ein, dein Code sagt '...wenn 8 Zeilen einen PB geben füge eine Zeile ein, dann setzt es automatisch das ganze auf die nächste Seite.
8 Zeilen sind von mir wilkürlich gewählt, aber im Falle von d=8 wäre es eigentlich auch noch möglich das ganze darunterzuquetschen, es müssten also nich diese 8 Zeilen unbedingt eingehalten werden.
Ich bräuchte also eine Select Case Verzweigung die sagt wenn
d ist zwischen 4 und 8 lösche 2 Zeilen und setzte den Absender darunter
d ist grösser als 8 dann mach normal weiter
Wäre so etwas machbar?
Vielen Dank Bert!!!
Grüsse
Drazen

Anzeige
AW: ...ich habs!!!
26.02.2005 13:10:57
Drazen
Hi Bert,
so muss es sein, ich werfe einfach den letzten Eintrag der Liste auf die nächste Seite und schon macht es wieder Sinn,
If d = 8 Then 'Rows(lngZ + 1).Insert
Set ActiveSheet.HPageBreaks(1).Location = Cells(lngZ, 1)
End If
Wäre aber ohne dich nie darauf gekommen, vielen Dank noch mal.
Grüsse
Drazen
AW: ...ich habs!!!
Bert
Glückwunsch, geht doch!
mfG Bert

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige