Druck in umgekehrter Reihenfolge

Bild

Betrifft: Druck in umgekehrter Reihenfolge von: KlausF
Geschrieben am: 22.03.2005 14:18:52

Hallo, Excel-Fans!

Ich brauche für ein Druck-Makro den Code, der das Drucken eines mehrseitigen Sheets in umgekehrter Reihenfolge veranlasst (bin nun mal zu faul zum Umsortieren).

Der einfache Weg, beim Druck die Umkehrung festzulegen, dann die Datei abzuspeichern, klappt nicht, weil irgendjemand der mehrfachen User die Druckeinstellungen ändert und speichert; es muß also per VBA zwangsweise festgelegt werden.

Makro-Recorder nützt hier nichts; und die Recherche im Forumarchiv hat nichts passendes gebracht.

Kann mir einer von Euch helfen?
MfG!
Klaus

Bild


Betrifft: AW: Druck in umgekehrter Reihenfolge von: Tobias Marx
Geschrieben am: 22.03.2005 14:23:25

Servus!


Sub InversDruck()
Dim alles As Long, p As Long
    alles = (ActiveSheet.HPageBreaks.Count + 1) * _
        (ActiveSheet.VPageBreaks.Count + 1)
    For p = alles To 1 Step -1
        'ActiveSheet.PrintOut p, p
        Debug.Print "Drucke Seite " & p & " von " & TotalPages
    Next p
End Sub


Das Original ist von http://www.exceltip.com/st/Print_the_pages_in_reverse_order_using_VBA_in_Microsoft_Excel/457.html
Habs etwas ans deutsche angepasst...

Naechstes mal etwas selbst googeln :)

Geklappt?

Gruss

Tobias


Bild


Betrifft: AW: Druck in umgekehrter Reihenfolge von: KlausF
Geschrieben am: 22.03.2005 14:55:28

Hallo, Tobias!

Habe vorher mit +Drucken +"umgekehrte Reihenfolge" +VBA gegoogelt, aber da kam auch nichts passendes raus. Werd' mich beim nächsten mal intensiver bemühen!
Nun zu Deinem Code:
Nach Entfernen des Apostrophs und Ersetzen von "TotalPages" durch "alle" funzt's nur teilweise: Er druckt nur von n bis Seite 2; Seite 1 fehlt immer.


Sub InversDruck()
Dim alles As Long, p As Long
    alles = (ActiveSheet.HPageBreaks.Count + 1) * _
        (ActiveSheet.VPageBreaks.Count + 1)
    For p = alles To 1 Step -1
        ActiveSheet.PrintOut p, p
        Debug.Print "Drucke Seite " & p & " von " & alles
    Next p
End Sub


Seh' ich den Wald vor lauter Bäume nich?
Auf jeden Fall erst mal Danke!
Klaus


Bild


Betrifft: AW: Druck in umgekehrter Reihenfolge von: Tobias Marx
Geschrieben am: 22.03.2005 15:08:22

Servus!

Den Code hatte ich nicht getestet, da er auf der Homepage drauf war, deren Link ich gepastet hatte... ich hab uebrigens nach "Reverse Print VBA" (ohne Anfuehrungszeichen) bei google geschaut und das erste Ergebnis hat gepasst :-)

Nun aber nochmal zu dem Code: Wenn nur die erste Seite fehlt, dann machen wir doch einfach noch ne Anweisung am Schluss dazu, dass die erste Seite noch dazukommt:


Sub InversDruck()
Dim alles As Long, p As Long
    alles = (ActiveSheet.HPageBreaks.Count + 1) * _
        (ActiveSheet.VPageBreaks.Count + 1)
    For p = alles To 1 Step -1
        ActiveSheet.PrintOut p, p
        Debug.Print "Drucke Seite " & p & " von " & alles
    Next p
    ActiveSheet.PrintOut 1,1 
    'Hier wird die erste Seite gedruckt
End Sub


So sollte es dann ansich gehen...

Gruss

Tobias


Bild


Betrifft: AW: Druck in umgekehrter Reihenfolge von: KlausF
Geschrieben am: 22.03.2005 15:22:39

Hallo, Tobias!
Hatte schon in meiner VBA-Unschuld bei der Schleife den Endwert auf "0" gesetzt; hat alles gedruckt bis zur Seite 1, aber dann ne Fehlermeldung gebracht: Seitenzähler müssen grösser Null sein!

Bei Deiner Nachbesserung druckt er jetzt 2x die Seite 1!
Also hab ich den Endwert der Schleife auf 2 gesetzt, jetzt funzt's.
Aber die hohe Schule der Programmierung ist das wohl nich, oder? (Wenn ich mich an meine alten FORTRAN-Zeiten düster erinnere)

Danke und Gruß!
Klaus


Bild


Betrifft: AW: Druck in umgekehrter Reihenfolge von: Tobias Marx
Geschrieben am: 22.03.2005 15:25:01

Servus!

Also ich hab den Code jetzt mal in seiner "Urform" bei mir durchlaufen lassen, er hat alles gedruckt, auch die Seite 1. Wieso der bei dir so rumspinnt, kann ich mir eigentlich nicht erklaeren... ich geb dir Frage mal weiter an die anderen.

Gruss

Tobias


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Druck in umgekehrter Reihenfolge"