Danke erst einmal für die Antwort!
Ich habe das Problem jetzt mit einer "Do while" Schleife lösen können. Trotzdem würde mich interessieren, warum das nicht funktioniert.
Also der Zweck des Codes ist, dass ich am Ende zwei Zellen mit Seitenzahlen in Excel ausgespuckt bekomme. Eine für die Vorderseiten und eine für die Rückseiten. Hier geht es jetzt nur um die Vorderseien, d.h. was rauskommen soll ist : 1,2,3,4,9,10,11,12,17... bis zur letzten Folienseite auf der Vorderseite des letzten Blattes, wobei ich hier von 4 Folien auf einer Seite eines Blattes ausgehe.
"Anzahl" repräsentiert sozusagen alle Folienseiten, die sich auf der Frontseite befinden. Diesen Betrag brauche ich, um dann einen Array dieser Länge zu erstellen (="Seiten"), in dem die Folienseitenzahlen für die Vorderseiten abgespeichert werden können. Das wiederum passiert dann in der darauffolgenden For-Schleife.
Die Idee für die Berechnung der Variable "Anzahl" ist, dass 8 Folien ein Blatt füllen. 4 auf der Vorderseite und 4 auf der Rückseite. Mit "S mod 8" bekomme ich also die Folienzahlen die auf einem nicht vollen Blatt sind. Liegt der Restwert zwischen 1 und 4, befinden sich Folienseiten auf der letzten Vorderseite, weswegen ein neues Blatt bedruckt werden muss. Befindet sich der Restwert bei 0, oder zwischen 5-7, ist entweder die Rückseite komplett oder eben nur teils mit Folienseiten bestückt.
Deswegen die Fallunterteilungen.
Die Berechnungen in den Fallunterteilungen, die zu dem Wert von "Anzahl" führen, berechnen erst die Anzahl der zu druckenden Seiten, d.h. (da integer) (S-Rest)/8. Da ich auf jedem bedruckten Blatt 4 Folienseiten habe, multipliziere ich das Ergebnis mit 4 und addiere den Rest hinzu. Damit habe ich die Folienanzahl, die sich auf den Vorderseiten der Blätter befinden.
Ich hoffe, dass ich meinen Code etwas klarer jetzt beschreiben konnte :)
VG Marc
|