ich habe ein Excel Tabellenblatt, in welchem ich mittels VBA eine Fortlaufende Nummer generiere und die Anzahl ausdrucke (gefunden im Netz), läuft.
Nun möchte ich das diese „Einzeldrucke“ in umgekehrter Reihenfolge ausgedruckt werden.
Über die Druckereinstellungen hab ich es versucht aber das es Einzeldrucke sind kann es der Drucker wohl nicht verarbeiten.
Welche Möglichkeit hab ich nun noch per VBA, bzw. wie kann ich den VBA ändern damit das hierüber geschieht?
Sub Druck()
Dim wert As String
x = InputBox(„Bitte geben Sie die Anzahl der Exemplare ein:“, „Wie viele Exemplare:“, „1“)
For i = 1 To x
ActiveWindow.SelectedSheets.PrintOut
wert = Range(„AS4“).Value
Range(„AS4“).Value = wert + 1
Ich verstehe Dich auch nicht recht: «diese „Einzeldrucke“ in umgekehrter Reihenfolge»
Ist es das: Du hast in einer Datei bestimmte Tabellen, die Du x-fach ausdrucken möchtest:
Tabelle1, Tabelle2, Tabelle5, Tabelle6
Der Ausdruck soll aber in umgekehrter Reihenfolge geschehen: zuerst Tabelle6 x-mal, dann Tabelle5 x-mal, dann Tabelle2 x-mal und schliesslich Tabelle1 x-mal.
Oder meinst Du folgendes: Du hast eine bestimmte mehrseitige Tabelle. Beim Drucken soll zuerst die letzte Seite dieser Tabelle gedruckt werden, dann die zweitletzte usw. Am Schluss die erste?
verstehe ich den Code Schnipsel richtig…
Es wird ein Arbeitsblatt mehrmals gedruckt und die Ausdrucke unterscheiden sich nur im Wert in der Zelle („AS4“)?
Dieser Wert wird entsprechend der Eingabe hochgezählt?
Die Druckausgabe möchtest du mit absteigenden Werten erhalten?
Wenn 3mal Ja dann:
x = InputBox(„Bitte geben Sie die Anzahl der Exemplare ein:“, „Wie viele Exemplare:“, „1“)
For i = x To 1 Step -1
ActiveWindow.SelectedSheets.PrintOut
nochmal zum besseren Verstehen es ist ein zweiseitiges Tabellenblatt was sich nur in der Zelle „AS4“ im Wert unterscheidet. wenn ich mein VBA benutze gebe ich die Anzahl Exemplare ein und in der Zelle AS4 wird lediglich die Zahl um die angegebenen Exemplare erhöht und dann gedruckt. Nun möchte ich das diese Ausdrucke in umgekehrter Reihenfolge aus dem Drucker kommen(damit man sie nicht per hand umsortieren braucht). Heisst in Zelle AS4 steht zb. 200 ich möchte 15 Ausdrucke dann erhöht sich der Wert immer um eins und der Druck geht raus und das soll dann in umgekehrter Reihenfolge geschehen.
In AS4 steht z. B. 200.
Nun willst Du 3 Exemplare in umgekehrter Reihenfolge drucken.
In AS4 steht nun 203 und das 3. Exemplar der Tabelle wird ausgedruckt.
Dann steht in AS4 202 und das 2. Exemplar wird ausgedruckt.
Dann steht in AS4 201 und das 1. Exemplar wird ausgedruckt.
Ganz am Schluss steht in AS4 neu 203.
Willst Du das? - Grüsse Niclaus
Sub DruckV1()
x = InputBox("Bitte geben Sie die Anzahl der Exemplare ein.", _
"Wie viele Exemplare?", "1")
If x = "" Then Exit Sub
wert0 = Range("AS4").Value
For i = x To 1 Step -1
Range("AS4").Value = wert0 + i
ActiveWindow.SelectedSheets.PrintOut
Next
Range("AS4").Value = wert0 + x
End Sub
so wie Du es beschrieben wäre es das was ich möchte, aber Code funktioniert bei mir nicht , was die umgekehrte Reihenfolge angeht. Muss ich hier noch etwas bestimmtes einstellen?
a) Du startest das Makro - gibst z. B. 3 Exemplare ein.
b) Und jetzt beschreibe bitte genau, was dann passiert - so wie ich mir oben auch die Mühe gemacht habe, alles möglichst genau zu beschreiben.
c) Wie sollte es statt dessen sein?
Ich habe mir überlegt, ob Du vielleicht folgendes meinst: Von Deinem mehrseitigen Tabellenblatt soll zuerst die letzte Seite gedruckt werden, dann die zweitletzte usw. und ganz am Schluss die erste?
Es gibt Drucker, bei denen man das einstellen kann - z. B. beim HP-Laserjet 2100:
Drucken - Seite einrichten - Blatt – Optionen – Von hinten nach vorne.
Bei jedem Drucker kann man das auch mit folgendem Makro:
Sub DruckVonHinten()
NumPages = ExecuteExcel4Macro("GET.DOCUMENT(50)")
For j = NumPages To 1 Step -1
ActiveSheet.PrintOut From:=j, To:=j
Next j
End Sub
Wenn Du mein erstes Makro „DruckV1“ mit diesem zweiten Makro „DruckVonHnten“ kombinieren willst, dann ersetze im ersten Makro die Zeile
ActiveWindow.SelectedSheets.PrintOut
mit folgender Zeile:
Call DruckVonHinten