Pagebreak-prob

hi leute.

ich wette es ist nur ein kleines prob, oder ich sehe den wald vor lauter bäumen nicht, aber:

wenn ich eine tabelle dynamisch füllen lasse, mit mehreren tabellen, und ich will gezielt ein pagebreak setzen dann klappt das auch,

ABER:

lasse ich die tabellen nochmals dynamisch füllen, und der pagebreak sitzt woanders, dann bleibt der alte da, wo er vorher war, und es kommt noch einer an der neuen stelle zusätzlich.

auch wenn ich nur mit 2 pagebreaks arbeite lasse ich zuvor alle pagebreaks von 0 bis 9 löschen:

Tabelle3.HPageBreaks.Item(0).Delete
Tabelle3.HPageBreaks.Item(1).Delete

setzen tue ich sie mit:

Tabelle3.HPageBreaks.Add

Was mache ich falsch???

Danke schon vorab,

Micha

ich wette es ist nur ein kleines prob, oder ich sehe den wald
vor lauter bäumen nicht, aber:
wenn ich eine tabelle dynamisch füllen lasse, mit mehreren
tabellen, und ich will gezielt ein pagebreak setzen dann
klappt das auch,
ABER:
lasse ich die tabellen nochmals dynamisch füllen, und der
pagebreak sitzt woanders, dann bleibt der alte da, wo er
vorher war, und es kommt noch einer an der neuen stelle
zusätzlich.
auch wenn ich nur mit 2 pagebreaks arbeite lasse ich zuvor
alle pagebreaks von 0 bis 9 löschen:
Tabelle3.HPageBreaks.Item(0).Delete
Tabelle3.HPageBreaks.Item(1).Delete
setzen tue ich sie mit:
Tabelle3.HPageBreaks.Add
Was mache ich falsch???

Hallo Michael,
diese Hpagebreaks scheinen eine Eigendynamik zu haben die mit unsrer beider Logik nicht harmoniert, in Kurzform, ich kapiers auch net*g
Das Setzen der Breaks klappt immer, gibt auch keine Fehlermeldung wenn man in einer Schleife einen Break setzt wenn schon einer da ist.
Aber das Löschen von Breaks verstehe ich nicht.
Ich hätte gerne den Code, der Zellen durchgeht und mir bei jeder Zelle, die Item Nummer des Breaks anzeigt. Denn, ich habe festgestellt, bei Breaklöschroutinen, es gibt da wohl mehrmals Item(1) oder so. D.h., die workaround-Lösung für dich ist, die Löschschleife mehrmals aufzurufen, nach eingigen Durchläufen sind alle weg.
Ich habe dann rumexperimentiert mit den nachfolgenden Makros, da trat seltsames auf. Für die ersten 20 Zellen Breaks gesetzt, kein Problem.
dann abgefragt, for each x in hpagebreaks: msgbox hpagebreak.location.address… kamen nur die Adressen A2 bis A6, beim nächsten Abfragedurchlauf nr noch 3- 5 …, dann noch weniger, obwohl sie noch da waren, also angezeigt wurden in der Tabelle. Klar, zwischen jedem Durchgang wurde die Löschroutine aufgerufen. Ich stehe vor einem Rätsel, aber ist mir nix neues bei Excel.
Wenn das jetzt keiner verstanden hat, macht das nix :smile: , aber es war so.
Ich denke nicht dass mein Beitrag wirklich hilfreich war m dein Problem zu lösen, aber zmindest weisst du, du stehst nicht allein im Regen mit den hpagebreaks :smile:
Gruß
Reinhard
ps: die nachfolgenden Codes stellen nur die Spitze des Eisbergs dar, den ich ausprobiert habe, um Erfolglos hinter das Geheimnis der breaks zu kommen

Option Explicit
Sub Seitenwechsel\_Erzeugen()
Dim n As Integer
For n = 2 To 20
 ActiveSheet.HPageBreaks.Add Before:=Cells(n, 1)
Next n
End Sub

Sub Seitenwechsel\_Adresse()
Dim SW As HPageBreak
For Each SW In ActiveSheet.HPageBreaks
 MsgBox SW.Location.Address
Next SW
End Sub

Sub Seitenwechsel\_Loeschen()
Dim n As Integer
For n = 1 To 20
 On Error Resume Next
 ActiveSheet.HPageBreaks.Item(n).Delete
Next n
End Sub

Sub test()
'Worksheets.Add
'Call Seitenwechsel\_Erzeugen
'Call Seitenwechsel\_Adresse
'Call Seitenwechsel\_Loeschen
'Call Seitenwechsel\_Adresse
'Call Seitenwechsel\_Loeschen
'Call Seitenwechsel\_Adresse
'Call Seitenwechsel\_Loeschen
'Call Seitenwechsel\_Adresse
'Call Seitenwechsel\_Loeschen
'Call Seitenwechsel\_Adresse
'Call Seitenwechsel\_Loeschen
End Sub

Danke für die zusage.

dann halte ich mich endlich nicht mehr für unfähig,
dachte schon ich wär zu blöd :wink:

Also Danke nochma

Micha