Registriert seit: 18.09.2024
Version(en): 356
Hallo,
ich bin noch neu in Makro und habe mir das aufgezeichnet:
Code:
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Add horizontal page break at top left of cell 1!A37234
selectedSheet.addHorizontalPageBreak(selectedSheet.getRange("A37234"));
}
Wie kann ich Excel nun sagen, bzw in den Code eintragen, er soll diesen Befehl von Zeile 37234 bis Zeile 40509 durchführen?
Könnt mir hier einer helfen ?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
16.07.2025, 15:11
(Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2025, 15:12 von schauan.)
.. und Du möchtest für jede Zeile einen Umbruch?
im Prinzip mit einer Schleife
for iCnt=37234 to 40509
selectedSheet.addHorizontalPageBreak(selectedSheet.getRange("A" & iCnt));
next
Zeichensetzung und genaue Syntax musst Du mal schauen, das ist jetzt mit vba gemixt ...
wenn es nicht zu jeder Zeile soll dann am Ende der for - Zeile mit Step xxx eine Schrittweite festlegen.
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:1 Nutzer sagt Danke an schauan für diesen Beitrag 28
• sfina
Registriert seit: 18.09.2024
Version(en): 356
16.07.2025, 15:28
(Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2025, 15:28 von sfina.)
Ja genau einen Umbruch, weil Drop&Copy und runterziehen klappt nicht.
Aber hier ist jetzt mein Problem, ich wüsste nicht, welchen Syntax ich da einfügen müsste.
Es ist ja im Prinzip der komplette Code, den ich erhalten habe. Da muss jetzt nur irgendwie dein Teil rein..
Ich habe jetzt das auch nur mit dem Aufzeichnen versucht, aber bei VBA bin ich raus, da habe ich wirklich keine Ahnung von.
Registriert seit: 28.08.2022
Version(en): 365
Hi,
leider habe ich von Excel-Skript noch keine Ahnung, aber da ich VBA kenne und mal neugierig auf Excel-Skript bin, habe ich den Edge-Copilot mit genau deiner Frage gefüttert. Er sagt dazu:
Zitat:Copilot
Willkommen in der Welt der Excel-Skripte! Du hast bereits einen guten Start gemacht. Um deinen Code so zu erweitern, dass horizontale Seitenumbrüche von Zeile 37234 bis 40509 eingefügt werden, kannst du eine Schleife verwenden.
Hier ist ein Beispiel, wie du das machen kannst:
Code:
function main(workbook: ExcelScript.Workbook) {
let selectedSheet = workbook.getActiveWorksheet();
// Schleife von Zeile 37234 bis 40509
for (let row = 37234; row <= 40509; row++) {
selectedSheet.addHorizontalPageBreak(selectedSheet.getRange(`A${row}`));
}
}
Was dieser Code macht:
Er geht jede Zeile von 37234 bis 40509 durch.
In jeder dieser Zeilen wird ein horizontaler Seitenumbruch an der Spalte A gesetzt.
Hinweis:
Das Einfügen von so vielen Seitenumbrüchen kann Excel stark verlangsamen oder sogar zum Absturz bringen, je nach Größe der Datei. Überlege dir, ob du wirklich jede einzelne Zeile brauchst oder ob z. B. alle 50 oder 100 Zeilen ausreichen würden. Falls ja, kannst du die Schleife so anpassen:
Code:
for (let row = 37234; row <= 40509; row += 50) {
selectedSheet.addHorizontalPageBreak(selectedSheet.getRange(`A${row}`));
}
Möchtest du das vielleicht so anpassen, dass es effizienter läuft? Oder soll ich dir helfen, das Skript direkt in Excel zu testen?
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• sfina
Registriert seit: 18.09.2024
Version(en): 356
Danke...
also er führt es aus, bis Zeile 38256, dann meldet er einen Scripfehler ?!
Registriert seit: 28.08.2022
Version(en): 365
Hi,
wenn du den ersten Code genommen hast, dann hast du 38256 - 37234 = 1022 neue Seitenumbrüche eingefügt.
1024 ist so eine typische Computergrenze. Vermutlich lässt Excel nicht mehr Seitenumbrüche zu. Kannst du ja mal testen, ob du händisch noch welche einfügen kannst.

Was willst du eigentlich mit so vielen Seitenumbrüchen?
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• sfina
Registriert seit: 18.09.2024
Version(en): 356
16.07.2025, 15:58
(Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2025, 16:00 von sfina.)
Ja das ist tatsächlich das Problem. :/
Ich habe eine Datei, mit etwa ca 44.000 Zeilen, die sind in ca 3000 Gruppen aufgeteilt. Zwischen jeder Gruppe ist eine Leerzeile
Ich suche mir dann aus den 3000 Gruppen quasi eine Artikelnummer raus, und drucke dann eben nur diese besagte Seite aus.
Weil immer nur Eine Gruppe exakt auf ein Blatt soll. Es sind täglich andere Gruppen die benötigt werden.
Registriert seit: 11.04.2014
Version(en): Office 365
Hallo,
du könntest mit dem Autofilter das Blatt nach deiner Gruppe filtern. Es werden nur die sichtbaren Zeilen gedruckt. Alternativ mit dem Spezialfilter die gewünschte Gruppe auf ein neues Blatt übertragen, dieses dann ausdrucken.
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter,
der Misserfolg ist ein Waisenkind
Richard Cobden
Registriert seit: 28.08.2022
Version(en): 365
Hi,
"Leerzeile" das klingt nach einem schlechten Tabellenaufbau. Kannst du mal eine kleine Beispieldatei hier hochladen? Dann kann man sicherlich einen Vorschlag für einen besseren Aufbau machen. Wenn dieser gut ist, dann lässt sich der Tipp von Klaus-Dieter ganz einfach umsetzen.
Gruß,
Helmut
Win10 - Office365 / MacOS - Office365
Folgende(r) 1 Nutzer sagt Danke an HKindler für diesen Beitrag:1 Nutzer sagt Danke an HKindler für diesen Beitrag 28
• sfina
Registriert seit: 18.09.2024
Version(en): 356
Danke euch allen, ich hab jetzt einfach weniger Leerzeilen reingemacht und die Gruppen verkleinert. Nicht ideal aber das passt schon so.
Danke euch !