Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
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

Seitenende/Seitenumbruch

Seitenende/Seitenumbruch
26.06.2021 09:32:37
Daniel
Guten Morgen allerseits
Ich möchte in einem Tabellenblatt gefundene Zeilen einfügen.
Dabei sollten zuerst die Seitenenden/Umbrüche angezeigt werden. Dann sollte geprüft werden, wie viele leere Zeilen auf der Seite nach letztem Eintrag (letzte gefüllte Zeile) noch frei sind bis zum Seitenende/Seitenumbrüche. Haben die gefundenen Zeilen nicht mehr Platz, so sollen diese in eine neue Seite eingefügt werden!
Da ich Anfänger bin, weiss ich nicht genau wie der Code aussehen sollte.
Hat mir jemand einen Vorschlag, so dass ich den Code anpassen kann?
Besten Dank und ein schönes Wochenende.
Gruss Daniel

36
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Dürfte nicht so einfach sein
26.06.2021 11:30:22
RPP63
Moin Daniel!
Ich sehe keine Möglichkeit, einen "zukünftigen, noch nicht vorhandenen" Seitenumbruch auszulesen.
Mit Tabelle1.HPageBreaks.Count ermittelt man die Anzahl der innerhalb der Liste vorhandenen Umbrüche.
Die Zeile des letzten Umbruchs ermittelt man so:

With Tabelle2
Debug.Print .HPageBreaks(.HPageBreaks.Count).Location.Row
End With
Gruß Ralf
AW: Dürfte nicht so einfach sein
26.06.2021 13:03:45
Daniel
Hallo Ralf
Danke für die Rückmeldung. Mir schwebt was vor, weis aber nicht wie ich es formulieren soll! :-( Versuche es aber mal so...
1. Alle Seitenumbrüche sollen gelöscht werden
2. Seitenumbrüche unterhalb der Zeilen 49, 98, 147, usw. setzen
3. Mit der Suche beginnen. (Code für die Suche habe ich)
4. Von der letzten gefüllten Zeile aus auf Seite bis zum Seitenumbruch freie Zeilen zählen
5. Prüfen ob Anzahl gefundene Zeilen (von der Suche) in Anzahl freien Zeilen noch Platz haben
6. Wenn ja, dann einfügen, wenn nein, bei der neuen Seite das selbe von vorne
Geht sowas nicht mit einer For oder Do Schleife?
Gruss Daniel
Anzeige
AW: Dürfte nicht so einfach sein
26.06.2021 13:43:36
Firmus
Hallo Daniel,
hier ein fertiges Makro, das dir sicher einige Anleitung für deine Thematik geben kann.
https://www.herber.de/bbs/user/146806.xlsm
Ziel:
Vermeidung von ungeplanten Seitenumbrüchen bei unterschiedlichen hohen Zeilen.
Lösungsansatz:
alle Seitenwechsel löschen.
Wieviele Zeilen sollen auf einer Seite sein - per Dialog eingeben.
Diese Eingabe auf "passend für Seitenlänge?" prüfen (Kriterium: Summe der Zeilenhöhen)
Falls passend, für alle Zeilen in dem Blatt die Seitenwechsel einfügen.
Benutzes Vehikel:
Addition der Zeilenhöhe bei der Musterseite
Addition der Zeilenhöhe bei allen Folgeseiten, Prüfung gegen die Gesamthöhe der Musterseite.
Hoffe das hilft dir ein Stück weiter, kann mich leider nicht intensiver damit beschäftigen.
Das hier war gerade mal eine "sinnvolle Pause" - bin z. Z. etwas busy.
Mit bestem Rentnergruß "keine Zeit ..."
Firmus
Anzeige
AW: Dürfte nicht so einfach sein
26.06.2021 13:45:17
Firmus
noch offen
AW: Dürfte nicht so einfach sein
26.06.2021 13:52:31
Rolf
Hallo Daniel,
probier mal folgenden Code:
(er ermittelt die letzte befüllte Zeile (lo1) und nach dem Einfügen der Werte erneut die letzte Zeile (lo2)
Wenn dann der letzte Seitenumbruch zwischen diesen Werten liegt, wird nach lo1 ein neuer Umbruch eingefügt.

Sub Umbruch()
Dim lo1 As Long
Dim lo2 As Long
Dim loPB As Long
On Error GoTo ErrExit
With ActiveSheet
lo1 = Cells(Rows.Count, 1).End(xlUp).Row
'Hier Dein Code zum Einfügen der Werte
lo2 = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print .HPageBreaks(.HPageBreaks.Count).Location.Row
If .HPageBreaks(.HPageBreaks.Count).Location.Row > lo1 And .HPageBreaks(.HPageBreaks.Count).Location.Row 
Passt das für Dein Problem?
Gruß Rolf
Anzeige
AW: Dürfte nicht so einfach sein
27.06.2021 10:00:01
Daniel
Guten Tag zusammen
Erstens mal vielen Dank für die vielen Vorschläge.
Habe gestern mal versucht, etwas zusammen zu setzen. Doch funktioniert es leider immer noch nicht. Denke mal, ich habe den Code von Rolf nicht richtig angewendet.
Hier mal mein Code. Vielleicht sieht jemand wo der Fehler liegt!
Freundliche Grüsse und einen schönen Sonntag.
Gruss Daniel

Private Sub CommandButton3_Click()
Dim ws As Worksheet
Set ws = Worksheets("Lagerliste_drucken")
Dim lo1 As Long
Dim lo2 As Long
Dim loPB As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Exit For
Next
If i = .ListCount Then
MsgBox "Bitte Auswahl treffen"
Exit Sub
End If
On Error GoTo ErrExit
ws.Select
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Suchen = strAusgabe & .List(i)
Set rng = Worksheets("WSCAR_Daten").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
Else
lo1 = Cells(Rows.Count, 1).End(xlUp).Row
Überschriften_Einfügen Suchen
sfirstaddress = rng.Address
Do
rng.Offset(0, -5).Resize(1, 5).Copy Destination:=Worksheets("Lagerliste_Drucken").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set rng = Worksheets("WSCAR_Daten").Range("F:F").FindNext(rng)
Loop While Not rng Is Nothing And rng.Address  sfirstaddress
lo2 = Cells(Rows.Count, 1).End(xlUp).Row
HPageBreaks(HPageBreaks.Count).Location.Row
If HPageBreaks(HPageBreaks.Count).Location.Row > lo1 And HPageBreaks(HPageBreaks.Count).Location.Row 

Anzeige
und wieso....
27.06.2021 10:10:38
Oberschlumpf
Hi Daniel
...zeigst du nicht per Upload eine XL-Bsp-Datei?
Du siehst doch: Viele unterschiedliche Antworten für dich - aber keine hat bisher geholfen
Und du zeigst weiterhin nur Code, anhand dessen man aber nich erkennen kann, was genau sich so alles in deiner Datei befindet, woran es liegt, dass die bisher-Ideen nich helfen.
Ciao
Thorsten
...ich weiß auch mit Datei keine Idee (kenn mich mit Seitenumbruch nich so aus)...wollte trotzdem versuchen, die zu ner Bsp-Datei zu überreden...
AW: und wieso....
27.06.2021 10:35:53
Daniel
Hallo Thomas
Vielen Dank für Deine Antwort.
Wie gewünscht, habe ich eine Beispieldatei hochgeladen.
Vielleicht noch als Hinweis:
Die Quell Tabelle kann sich mit Anzahl der Einträge ändern. Also zum Beispiel für die Suche "A" sind es mal 10 Ergebnisse oder auch 30 oder keine!
Auch die Einträge in der ListBox können anders heissen oder mehr oder weniger sein!
Gruss Daniel
https://www.herber.de/bbs/user/146818.xlsm
Anzeige
ich heiße nicht Thomas...owT
27.06.2021 10:37:57
Oberschlumpf
AW: ich heiße nicht Thomas...owT
27.06.2021 11:12:43
Daniel
Oh, sorry Thorsten
Habe den Namen nicht richtig gelesen! :-)
AW: und wieso....
27.06.2021 16:33:24
Rolf
Hallo Daniel,
wie Thorsten schon schrieb, es ist fast immer hilfreicher, eine Beispieldatei bereit zu stellen, als ausführlich das Problem zu schildern.
am Besten ist natürlich beides ;-)
Das On Error passt so natürlich gar nicht mehr.
Probier's mal so:
'Button Test

Private Sub CommandButton3_Click()
Dim ws As Worksheet
Set ws = Worksheets("Lagerliste_drucken")
Dim lo1 As Long
Dim lo2 As Long
Dim loPB As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Exit For
Next
If i = .ListCount Then
MsgBox "Bitte Auswahl treffen"
Exit Sub
End If
ws.Select
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Suchen = strAusgabe & .List(i)
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
Else
lo1 = Cells(Rows.Count, 1).End(xlUp).Row
Überschriften_Einfügen Suchen
sfirstaddress = Rng.Address
Do
Rng.Offset(0, -5).Resize(1, 5).Copy Destination:=Worksheets("Lagerliste_Drucken").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address  sfirstaddress
lo2 = Cells(Rows.Count, 1).End(xlUp).Row
If ws.HPageBreaks.Count > 0 Then
If ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row > lo1 And ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row 
Gruß Rolf
Anzeige
fast geschafft
27.06.2021 17:32:09
Daniel
Hallo Rolf
Danke für die Rückmeldung. Hast Du die Beispieldatei gefunden?
Habe Dein Code eingefügt und getestet. Funktioniert fast perfekt. Markiere ich alles in der Listbox aus, so erscheint einen Laufzeitfehler '9' "Index ausserhalb des gültigen Bereichs" und folgende Zeile wird gelb markiert!

If ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row > lo1 And ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row 
Gruss Daniel
AW: fast geschafft
27.06.2021 19:00:21
Rolf
Hi Daniel,
natürlich hab ich Deine Beispieldatei gefunden, sonst hätte ich den Code ja nicht anpassen können ;-)
Wenn ich nur wenige Einträge markiere, läuft der Code problemlos durch, nur bei vielen/allen hängt er sich manchmal auf.
Ich glaube, die Verarbeitung ist schneller als der Zeilenaufbau, deshalb findet er nicht immer den letzten Zeilenumbruch - aber
das ist reine Spekulation, das müsste ein VBA-Spezialist mal checken.
Ich hab mal eine Prorammpause von einer halben Sekunde eingefügt und jetzt läuft der Code auch bei allen Daten durch.
Wenn Dir das als 'Lösung' reicht, dann füge mal vor lo2 = Cells(Rows.Count, 1).End(xlUp).Row dies ein:
SLEEP 500 'entspricht 500 Millisekunden
und in ein allgemeines Modul dies:
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Das wirkliche Problem ist damit nicht gelöst, aber so klappts (bei mir), mehr kann ich Dir da nicht helfen.
Gruß Rolf
Anzeige
Dazu hilft in der Regel …
27.06.2021 19:15:29
RPP63
… den Drucker-Treiber mal kurz außen vor zu lassen, Rolf!
Mit

Application.PrintCommunication = False
am Anfang funktioniert dies in der Regel.
Man sollte dies aber am Ende mittels = True wieder einschalten.
Gruß Ralf
AW: Dazu hilft in der Regel …
27.06.2021 19:27:32
Daniel
Hallo Ralf
Wo muss ich diese Zeile dann hin schreiben?
Gruss Daniel
AW: fast geschafft
27.06.2021 19:25:10
Daniel
Hallo Rolf
Also die 500 Millisekunden kann ich warten! :-)
Jedoch arbeitet mein Rechner mit 64 Bit. Jetzt krieg ich einen Fehler "Funktioniert nur mit 32 Bit.
Habe folgendes in die "DieseArbeitsmappe" geschrieben. Funktioniert aber nicht!

Option Explicit
#If VBA7 And Win64 Then
'for 64-bit Excel
Declare PtrSafe Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Declare PtrSafe Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
#Else
'for 32-bit Excel
Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As Long
#End If
Gruss Daniel
Anzeige
AW: fast geschafft
27.06.2021 20:11:08
Rolf
Hi Daniel,
...Tante Google sagt:
#If VBA7 Then
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr)
#Else
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
#End If
...der Tip von Ralf hat leider nicht funktioniert!
Gruß Rolf
AW: fast geschafft
27.06.2021 20:31:20
Daniel
Hallo Rolf
Habe noch diesen Befehl gefunden!

Application.Wait Now + TimeSerial(0, 0, 2) 'wartet 2 Sekunden
oder
Application.Wait (x)
x = Zeit in Millisekunden
Habe dieses am gleichen Ort eingefügt wie Du mir geschrieben hast. Jedoch kommt die Fehlermeldung immer noch! :-(
Die Variante von Rafl hab ich auch versucht. Leider auch ohne Erfolg!
Gruss Daniel
Anzeige
AW: fast geschafft
28.06.2021 09:56:35
Rolf
Guten Morgen Daniel,
...wenn Du Sleep nicht mehr benutzt, kann eigentlich diese Fehlermeldung nicht mehr kommen!?
Application.Wait sollte auch in 64 Bit-Systemen laufen.
Folgender Code läuft bei mit komplett durch:

Private Sub CommandButton3_Click()   'Button Test
Dim ws As Worksheet
Dim Rng As Range
Dim lo1 As Long
Dim lo2 As Long
Dim loL As Long
Set ws = Worksheets("Lagerliste_drucken")
Me.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Exit For
Next
If i = .ListCount Then
MsgBox "Bitte Auswahl treffen"
Exit Sub
End If
ws.Select
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Suchen = strAusgabe & .List(i)
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
Else
lo1 = Cells(Rows.Count, 1).End(xlUp).Row
Überschriften_Einfügen Suchen
sfirstaddress = Rng.Address
loL = lo1 + 1
Do
Rng.Offset(0, -5).Resize(1, 5).Copy Destination:=Worksheets("Lagerliste_Drucken").Cells(loL, 1)
loL = loL + 1
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address  sfirstaddress
Application.Wait (800)
lo2 = Cells(Rows.Count, 1).End(xlUp).Row
If ws.HPageBreaks.Count > 0 Then
Cells(lo2, 1).Select
If ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row = lo1 + 1 And ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row  lo1 + 1 And ws.HPageBreaks(ws.HPageBreaks.Count).Location.Row 
ich hab mal die Ermittlung der letzten beschriebenen Zeile aus Deiner Do Loop-Schleife rausgenommen,
das spart Rechenzeit.
Gruß Rolf
AW: fast geschafft
28.06.2021 10:09:55
Eberhard
Hallo Rolf
Das ist jetzt eine Knacknuss!
Habe den Code mal eingefügt. Jetzt ist es aber noch viel schlimmer geworden. Jetzt fügt es mir die Überschriften nicht mehr ein. Schreibt alles untereinander, so dass ich nicht mehr weis in welchem Lagerort sich der Kunde befindet.
Lade sonst mal Deine Datei hoch, so kann ich mal schauen ob diese bei mir läuft!
Die Application.Wait hatte ich auch im google gefunden! :-)
Gruss Daniel
AW: fast geschafft
28.06.2021 14:07:44
Daniel
Hallo Rolf/Hallo zusammen
Habe Ihr mal den Code aufgeschrieben wie ich Ihn mir vorstelle. Leider komme ich nicht weiter!
Wenn die neue Seite erstellt ist, sollte dies ja wieder der Anfang (also Zeile 1) sein damit es mir wieder von den 49 abzählen kann usw.
Vielleicht hilft das zu einem Ergebnis!
Gruss Daniel

Private Sub CommandButton3_Click()
Dim ws As Worksheet
Set ws = Worksheets("Lagerliste_drucken")
Dim rechner As Long
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Exit For
Next
If i = .ListCount Then
MsgBox "Bitte Auswahl treffen"
Exit Sub
End If
ws.Select
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Suchen = strAusgabe & .List(i)
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
Else
'--------------Dies irgendwie in eine For Next oder do oder For Each Schleife schreiben bis ListBox Auswahl leer ist
rechner = WorksheetFunction.CountIf(Worksheets("WSCAR_Daten").Range("F:F"), Suchen) + ws.Cells(Rows.Count, 1).End(xlUp).Row + 3  'die 3 ist für die Überschriften
'49 Zeilen pro Seite
If rechner  sfirstaddress
Else
MsgBox "Gefundene Zeilen haben kein Platz mehr auf der Seite!"
'Hier eine neue Seite einfügen und das Programm wieder von vorne beginnen bis Listbox Selected leer ist?
End If
End If
End If
Next
End With
End Sub

letzter Versuch
29.06.2021 17:47:41
Rolf
Hi Daniel,
wenn es immer max 49 Zeilen sein sollen, geht sowas (mit Umweg über Ermittlung des letzten Umbruchs per Formel, ist im Code erklärt):
Du kommst nicht drum herum, irgendwie den letzten Umbruch zu ermitteln, da die Umbrüche ja nicht immer nach 49 Zeilen erfolgen und Du ab dem Letzten dann wieder 49 Zeilen Platz hast. (Du musst natürlich sicherstellen, dass auch wirklich 49 aufs Blatt passen!)

Private Sub CommandButton3_Click()   'Button Test
Dim ws As Worksheet
Dim Rng As Range
Dim lo1 As Long, lo2 As Long, loL As Long
Dim iNextUmbruch As Integer, ilastUmbruch As Integer
Const iZeilen As Integer = 49
Dim strHilfszelle As String
strHilfszelle = "Z1"  'irgend eine freie Zelle in sheet 'Lagerliste_drucken'
Set ws = Worksheets("Lagerliste_drucken")
Me.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Exit For
Next
If i = .ListCount Then
MsgBox "Bitte Auswahl treffen"
Exit Sub
End If
ws.Select
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Suchen = strAusgabe & .List(i)
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
Else
lo1 = Cells(Rows.Count, 1).End(xlUp).Row
Überschriften_Einfügen Suchen
sfirstaddress = Rng.Address
loL = lo1 + IIf(lo1 = 1, 2, 4)
'***Ermittlung des letzten Seitenumbruchs durch temporär eingefügte Formel
'   Achtung! AGGREGAT steht erst ab Excel 2010 zur Verfügung!!
'   Wichtig: im Namensmanager den Namen 'letzterUmbruch' anlegen: bezieht sich auf: =DATEI.ZUORDNEN(64)
With Range(strHilfszelle)
.FormulaLocal = "=WENNFEHLER(AGGREGAT(14;6;letzterUmbruch;1);0)"
iNextUmbruch = .Value + iZeilen      'spätesten da nächster Umbruch
.ClearContents
End With
Do
Rng.Offset(0, -5).Resize(1, 5).Copy Destination:=Worksheets("Lagerliste_Drucken").Cells(loL, 1)
loL = loL + 1
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address  sfirstaddress
lo2 = Cells(Rows.Count, 1).End(xlUp).Row
If iNextUmbruch > lo1 And iNextUmbruch 
wenn das nix hilft, hab ich auch keine Idee mehr
Gruß Rolf
AW: letzter Versuch
29.06.2021 22:08:42
Daniel
Hallo Rolf
Erstmal vielen, vielen Dank für Deine kostbare Zeit, welche Du für mich genommen hast. Ich hatte auch noch etwas Zeit investiert. Das wäre mein Ziel, wie es eigentlich am Schluss aussehen sollte. Denke ein Profi, so wie Du, kann den Code sicherlich kürzer und besser schreiben?
Vielleicht hilfst Du mir noch ein letztes Mal und kannst diesen Code noch verfeinern?
Was meinst Du?
Lieben Gruss aus der Schweiz
Daniel

Dim i As Long
Dim ws As Worksheet
Set ws = Worksheets("Lagerliste_drucken")
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then Exit For
Next
If i = .ListCount Then
MsgBox "Bitte Auswahl treffen"
Exit Sub
End If
ws.Select
For i = 0 To .ListCount - 1
If .Selected(i) = True Then
Suchen = strAusgabe & .List(i)
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").Find(Suchen, LookIn:=xlValues, lookat:=xlWhole, MatchCase:=True)
If Rng Is Nothing Then
MsgBox "Lagerort " & Suchen & " nicht gefunden!", vbInformation
.Selected(i) = False
Else
.Selected(i) = False
Überschriften_Einfügen Suchen
sfirstaddress = Rng.Address
Do
Rng.Offset(0, -5).Resize(1, 5).Copy Destination:=Worksheets("Lagerliste_Drucken").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
If Cells(Rows.Count, 1).End(xlUp).Row = 49 Then
MsgBox "Zeile erreicht"
ws.HPageBreaks.Add before:=Range("A" & ws.Cells(Rows.Count, 1).End(xlUp).Row + 1)
Überschriften_Einfügen Suchen
End If
If Cells(Rows.Count, 1).End(xlUp).Row = 98 Then
MsgBox "Zeile erreicht"
ws.HPageBreaks.Add before:=Range("A" & ws.Cells(Rows.Count, 1).End(xlUp).Row + 1)
Überschriften_Einfügen Suchen
End If
If Cells(Rows.Count, 1).End(xlUp).Row = 147 Then
MsgBox "Zeile erreicht"
ws.HPageBreaks.Add before:=Range("A" & ws.Cells(Rows.Count, 1).End(xlUp).Row + 1)
Überschriften_Einfügen Suchen
End If
If Cells(Rows.Count, 1).End(xlUp).Row = 196 Then
MsgBox "Zeile erreicht"
ws.HPageBreaks.Add before:=Range("A" & ws.Cells(Rows.Count, 1).End(xlUp).Row + 1)
Überschriften_Einfügen Suchen
End If
Set Rng = Worksheets("WSCAR_Daten").Range("F:F").FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address  sfirstaddress
End If
End If
Next i
End With

OT:AW: letzter Versuch
30.06.2021 06:19:30
Oberschlumpf
Hi Daniel,
ich denke, du bist dreist.
Rolf hatte dich informiert, dass er versucht, dir ein letztes Mal zu helfen. Und was machst du? Fragst ihn trotzdem noch mal, ob er dir weiterhin hilft - ja, ich weiß "nur noch ein einziges Mal! - trotzdem ändert das nix an: "weiterhin"!
Ciao
Thorsten
OT:AW: letzter Versuch
30.06.2021 07:07:55
Eberhard
Hallo Thorsten
Also denke, dass bin ich nicht! Den Fragen darf man immer! Und auch ein "nein" akzeptiere ich!
Jedenfalls hat mir Rolf sehr, sehr viel geholfen. Mit seiner investierter Zeit, konnte ich noch viel dazu lernen.
Zudem schätze ich von jedem im Forum, wenn er sein Wissen weiter gibt.
Aber sorry Thorsten, Deine Zeilen helfen nicht weiter! Einen Vorschlag aus Deinem Wissen, würde Rolf und mir sicher mehr helfen!
Möchte Dich aber mit diesen Zeilen nicht verletzen! Ist einfach meine Meinung!
Gruss und trotzdem einen schönen Tag!
Daniel
OT:AW: letzter Versuch
30.06.2021 07:21:17
Oberschlumpf
Daniel oder Eberhard?
und schon wieder eine Mutation!!...uih uih
Daniel-Eberhard, du machst es wirklich nich besser...
OT:AW: letzter Versuch
30.06.2021 07:25:00
Eberhard
Tja, sorry! Hatten wir schon oft im Forum. Kann auch nichts dafür das mein Vorname Daniel und der Nachname Eberhard ist!
OT:AW: letzter Versuch
30.06.2021 18:25:43
Oberschlumpf
stimmt, dafür kannst du nix - aber du könntest einfach bei Daniel bleiben und nicht so sprunghaft mit deinen Namen sein....wie soll das ein Unwissender erkennen? Aber egal, genau so kannst du weiter zw. Dan. + Eber. hin und herspringen - nur du entscheidest das.
AW: letzter Versuch
30.06.2021 08:35:04
Rolf
Hi Daniel,
ich meine, dass Du meine letzte Antwort nicht richtig gelesen/verstanden hast.
An Deinem Code gibt's nix zu verfeinern, weil's der falsche Ansatz ist. Dein Code prüft auf Vielfache von 49, das macht keinen Sinn, wie ich Dir schon schrieb.
Hast Du meinen Code mal getestet?
Wenn Du eine MsgBox haben willst, brauchst Du die doch nur 1x in meinen Code einfügen (die richtige Stelle findest Du selbst ;-))
Gruß Rolf
AW: letzter Versuch
30.06.2021 09:24:39
Eberhard
Guten Tag Rolf
Ich habe Deinen Code getestet. Der letzte Code funktioniert wie gewünscht. Eine MsgBox brauche ich nicht. Dies war nur zur Kontrolle.
Das Pünktchen auf dem "i" wäre noch, wenn der Seitenumbruch zwischen den Suchzeilen stattfindet, dass die Überschriften auf die nächste Seite auch eingetragen werden. Aber ich verstehe Dich Rolf, wenn Du keine Lust mehr dazu hast, lassen wir es bleiben!
Wünsche Dir einen schönen Tag.
Gruss Daniel
AW: letzter Versuch
30.06.2021 09:29:22
Rolf
bei meinem Code werden sie das!
AW: letzter Versuch
30.06.2021 11:49:21
Eberhard
Hallo Rolf
Habe dies mit Deinem Code gemacht. Funktioniert bei mir bei den letzten Seiten leider nicht! Die liebe Programmiersprache ist manchmal wie ein Rätzel!
Gruss Daniel
AW: letzter Versuch
30.06.2021 12:54:23
Eberhard
Hallo Rolf
Sorry, nochmals ich!
Was meinst Du mit diesem Satz:?
' Wichtig: im Namensmanager den Namen 'letzterUmbruch' anlegen: bezieht sich auf: =DATEI.ZUORDNEN(64)
Hast Du irgendwo noch was geändert? Könnte dies das Problem sein, dass es bei mir nicht funktioniert?
Gruss und einen schönen Nachmittag.
AW: letzter Versuch
30.06.2021 14:19:53
Rolf
Hi Daniel,
ich dachte, wenn Du solch ein Projekt zu betreuen hast, Du Dich wenigstens einigermassen in Excel auskennst und ich das
mit dem Nanen einfügen nicht mehr groß erläutern muss. (Dein Chef sollte Dir mal einen Excel-Kurs spendieren)
Bei - Formeln - definierte Namen - auf Namen definieren klicken und dann einen neuen Namen anlegen.
Name: letzterUmbruch
Bereich: Arbeitsmappe
bezieht sich auf: =DATEI.ZUORDNEN(64)
ohne diesen definierten Namen kann der Code natürlich keine Umbrüche ermitteln!
...das Debug.Print rauswerfen! owT
26.06.2021 13:56:40
Rolf

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige