Ich bin neu in die Makroprogrammierung eingestiegen und habe nun ein Problem mit einem meiner ersten Calc Makros.
System: Apache Open Office 4.0.1, Windows 7 Pro, diverse HP Netzwerkdrucker, AOo Calc
Das Problem ist wahrscheinlich ziemlich verwirrend, ich versuche es so gut als möglich darzustellen:
Ziel:
1. Eine Calc Tabelle (Seite), zweigeteilt in einen oberen und einen unteren Bereich, in Zelle G3 ist die erste Zahl und in Zelle G24 die zweite Zahl.
2. Abfragemaske: Wieviele Lose sollen gedruckt werden --> Eingabe x
3. Die Tabelle soll nun je nach Bedürfnis x-mal gedruckt und dabei jede Seite im oberen und unteren Bereich fortlaufend nummeriert werden.
Beispiel:
Ich möchte die Tabelle 20 mal drucken. Auf Ausdruck 1 hat nun die obere Hälfte der Seite die Nummerierung 1 und die untere Hälfte der Seite die Nummerierung 2. Ausdruck 2 hat nun oben die Nummerierung 3 und unten die Nummerierung 4 usw. bis Nummerierung 20 erreicht ist.
Das Makro welches ich geschrieben habe sieht so aus:
Code: Alles auswählen
REM ***** BASIC *****
Option Explicit
Sub LoseDruckEigentest
Dim mydoc as Object
Dim mysheet as Object
Dim printProp(0) as New com.sun.star.beans.PropertyValue
Dim p as Integer
Dim n as Integer
Dim zelleoben as Object
Dim zelleunten as Object
mydoc=thisComponent
mysheet=mydoc.Sheets(0)
n = InputBox("Anzahl Lose zum Drucken?", "Achtung! Druck startet nach OK direkt auf dem Standarddrucker!", "1")
p=1
Do While p < n
zelleoben=mysheet.getCellRangeByName("G3")
zelleoben.value=p
zelleunten=mysheet.getCellRangeByName("G24")
zelleunten.value=p+1
p=p+2
mydoc.print(printprop())
Loop
End Sub
Problem:
Das Makro funktioniert soweit, dass die Tabelle korrekt nummeriert und die Anzahl Ausdrucke an den Drucker übergeben werden (also wenn man 20 Ausdrucke möchte werden 10 Tabellen an den Drucker gegeben da oben unten je eine Zahl). Der Drucker jedoch überspringt teilweise die Nummerierung oder druckt eine Seite doppelt oder dreifach aus.
Also z.B. Ausdruck 1 ist korrekt nummeriert, oben 1 unten 2. Ausdruck 2 ist ebenfalls korrekt weiter nummeriert oben 3 unten 4, bei Ausdruck 3 wird dann aber die Nummerierung übersprungen und oben ist dann die 6 und unten die 7, Ausdruck 4 ist dann gleich wie der vorherige Ausdruck, oben 6 und unten 7 usw. Es gibt jedoch kein erkennbares Muster. Die Ausdrucke werden einfach nicht korrekt nummeriert.
Frage: Kann es sein, dass man mit einem Befehl am Anfang des Makros erst einen Drucker Puffer löschen muss oder ist das Makro an sich total falsch geschrieben?
Über jegliche Hilfe freue ich mich.
Vielen Dank.