Clever-Excel-Forum

Normale Version: Druckreihenfolge manuell ändern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Morgen zusammen und danke für die vielen Kommentare und Ideen!

Folgende Infos sollten mein Problem jedoch konkretisieren:  :05:

1.) Mein Excel-"Formular" soll lediglich die darin eingetragen Daten auf ein bereits vorhandenen, also bedrucktes aber inhaltlich noch leeres Formular drucken.
Ich kann daher nicht einfach links und recht tauschen oder Ränder verschieben oder Ähnliches. Ich muss mit meinem Ausdruck millimetergenau auf das vorhandene Formular kommen.
Daher hab ich auch Excel und nicht Word gewählt. Hier kann ich meine Zelle exakt dorthin verschieben, wo ich die Info dann später am Formular brauche.

2.)  Das Drucken dieser Datei muss so user-friendly wie möglich sein. Ich habe das 3-seitige Formular, das könnte ich natürlich "recht einfach" auf meine Seitenreihenfolge manuell im Drucker selbst umsortieren und gut ist es.  Aber es sollen Personen dieses Formular drucken können, die dieses Formular einfach nur in den Druckereinzug legen ohne irgend etwas umsortieren zu müssen.  :20:

3.) Die Blattreihenfolge könnte ich natürlich "relativ einfach" umdrehen und das Problem wäre erledigt. Allerdings habe ich Tage daran gearbeitet alle Zellen in die exakte Position zu bringen und musste sicher an die 100 Testdrucke machen. Wenn ich nun Blätter umtausche, dann wären ja alle Positionen verschoben und ich müsste bei NULL beginnen!  :20: Huh :22:

Hm,... daher hoffe ich auf eine VBA die mir bei dem Problem hilft  :19:

DANKE!
Hallo Alexander

Dann ist aber Excel eine schlechte Wahl. Hast du den Druck auch schon auf anderen Systemen versucht?
Anderen PC, anderen Drucker?

Gruss Guschti
Excel eine schlechte Wahl? Wieso dass denn?
Nein, ich arbeite zur Zeit nur auf (m)einem PC. später jedoch soll die Datei auf verschiedenen PCs bzw Druckern verwendet werden...
Hallo Alexander

Dann versuch es mal bevor du mit Excel weiter machst. Das erspart dir viele Tage.

Anderer PC = andere Auflösungen, andere Druckertreiber, etc.

Gruss Guschti
Hallo,

Zitat:Anderer PC = andere Auflösungen, andere Druckertreiber, etc.
Gruss Guschti

das hatte ich ganz oben schon geschrieben. Drucker sind eben ganz eigenwillige Werkzeuge
und darum muß man sehr gefühlvoll mit ihnen umgehen.
Da der TE sich aber strikt dagegen ausgesprochen hat, irgendwelche Einstellungen zu ändern,
werde ich nur noch passiv mitlesen, wie es hier weitergeht.
Hallo Alexander,

mal als Ansatz

Code:
Sub prcAusdruck()

   Dim wksBlatt As Worksheet
   Dim wksAusdruck As Worksheet
   Dim rngBereich As Range
   Dim lngC As Long, lngA As Long, lngB As Long
   Dim vntSeiten As Variant
   Dim objSortList As Object
  
  
   Set objSortList = CreateObject("System.Collections.ArrayList")
   vntSeiten = Array(2, 1, 4, 3, 6, 5)
   Set rngBereich = Selection
   Set wksBlatt = Worksheets.Add
  
   With wksBlatt
      objSortList.Add 1&
      rngBereich.Copy .Range("A1")
      objSortList.Add .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, 1).Row
      objSortList.Add .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, 1).Row + 1
      .Cells(.Cells.SpecialCells(xlCellTypeLastCell).Row, 1).Select
      For lngC = 1 To .HPageBreaks.Count
         objSortList.Add .HPageBreaks(lngC).Location.Row
      Next lngC
      objSortList.Sort
      Set wksAusdruck = Worksheets.Add
      lngB = 1
      For lngA = 0 To UBound(vntSeiten)
'         Debug.Print .Cells(objSortList(vntSeiten(lngA) - 1), 1).Address & " " & objSortList(vntSeiten(lngA) - 1)
         .Cells(objSortList(vntSeiten(lngA) - 1), 1).Resize(objSortList(vntSeiten(lngA) + 1) - objSortList(vntSeiten(lngA)), .Columns.Count).Copy wksAusdruck.Cells(lngB, 1)
         With wksAusdruck
            lngB = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
         End With
      Next lngA
      wksAusdruck.PrintOut preview:=True
   End With
End Sub
Seiten: 1 2