Clever-Excel-Forum

Normale Version: Nur bestimmte inhalte drucken
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2 3
Hallo Plau,

das mit dem "Versatz" war mein Fehler - ich war in Gedanken noch halb bei einer anderen Antwort, wo das Array mit 1 lossging.
In unserem Fall geht es aber mit 0 los, daher so - hier nur mal der betreffende Auszug:

Code:
'Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
For iRow = 0 To UBound(arrPrint)
  'Wenn Druckbedingung <> "-----", dann
  If Range(arrPrint(iRow)) <> "-----" Then
    'Seite drucken
    ActiveWindow.SelectedSheets.PrintOut From:=iRow + 1, To:=iRow + 1, Preview:=True, Copies:=1, Collate:=True

Die Ursache für das mit der Druckvorschau hatte ich geschrieben Smile - "jede Seite einzeln"

Probier das mal aus, ich kümmere mich derweil um die Druckvorschau.

Zusatzhinweis / -frage im Voraus - was passiert eigentlich, wenn so viele Zeilen ausgeblendet werden, dass die Zelle mit dem ----- auf die vorhergehende Seite rutscht?
hallo schauan

danke dir bis jetzt klappt alles super :)

wenn du das jetzt noch mit der druckvorschau hinbekommst wäre es perfekt ;)

das mit dem verrutschen ist kein problem, weil ich nach jeder tabelle einen seitenumbruch eingefügt habe, dadruch beginnt die neue seite immer am anfang einer neuen liste

ich hoffe das war es was du wissen wolltest :)
Hallo Plau,

noch eine Frage - haben die Seiten dann eine feste Länge? Wenn Du manuelle Seitenumbrüche hast und dadurch feste Zeilen, kann man das einfacher programmieren.
Ich würde dann ein weiteres Array aufbauen mit den Zeilennummern, z.B. arrSeiten = Array("1:50","51:100","101:150") und wenn die Bedingung erfüllt ist, dann den Zeilenbereich ausblenden.

Code:
Sub Drucken()
Dim iRowL As Integer, iRow As Integer
'Array fuer Druckbedingung und Seiten
Dim arrPrint, arrSeiten
'Array fuer Druckbedingung fuellen - hier die Zellen jedes Blattes definieren
arrPrint = Array("B6", "B64", "B122")
'Array fuer Seiten
arrSeite = Array("1:50", "51:100", "101:150")
'Nummer der zuletzt genutzten Zeile anhand Spalte C feststellen
iRowL = Cells(Rows.Count, 3).End(xlUp).Row
'Schleife bis zur letzten genutzten Zeile
For iRow = 1 To iRowL
   'Wenn Zellwert 0, dann
   If Cells(iRow, 3).Value = "0" Then
     'Zeile ausblenden
     Rows(iRow).Hidden = True
   'Ende Wenn Zellwert 0, dann
   End If
'Ende Schleife bis zur letzten genutzten Zeile
Next iRow
'Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
For iRow = 0 To UBound(arrPrint)
  'Wenn Druckbedingung = "-----", dann
  If Range(arrPrint(iRow)) = "-----" Then
    'Seite ausblenden
      Rows(arrSeite(iRow)).Hidden = True
  'Ende Wenn Druckbedingung = "-----", dann
  End If
'Ende Schleife ueber alle Blaetter anhand Zellen mit Druckbedingung
Next iRow

ActiveWindow.SelectedSheets.PrintOut , Preview:=True, Copies:=1, Collate:=True

Rows.Hidden = False
End Sub
GRANDE!

danke dir viel viel mals!

das zweite was du gepostet hast klappt super! :) :18:
hallo

ich habe grade ein problem, das makro tut seinen dienst nur ist es im moment so, dass es wenn eine liste ausgeblendet wird er mir in der druckvorschau eine leere seite anzeigt...


kann es damit zusammen hängen, dass ich jetzt am ende eine liste eingefügt habe, die nicht ausgeblendet wird?
Hallo Plau,

meinst Du, Excel zeigt Dir für jedes ausgeblendetes Blatt ein leeres ?
Wenn Dein letztes / neues Blatt breiter ist als eine Seite, kann das auch zu leeren Seiten in der Anzeige führen.
erstmal: ja für jedes ausgeblendetes blatt wird eine leere seite angezeigt

was genau meinst du mir "breiter"?
push :)

ich habe noch ne frage :)

ich habe ja die zelle mit ------ drin stehen
ich mach es mal mit einem beispiel:
in der zelle steht 1-2-3-4-5-6 wobei 1,2,3,4,5,6 jeweils aus verschiedenen zellen ausgelesen und übertragen werden. nun kann es aber sein das 3 nicht drinsteht also: 1-2--4-5-6

ich möchte aber gerne, dass dann da 1-2-4-5-6 steht, also nicht 2 "-" nebeneinander stehen...

kann ich es irgendwie einrichten, dass wenn er nichts auslesen kann auch kein - davor schreibt? :)
Hallo Plau,

Diene Frage ist bei mir irgendwie untergegangen Sad
Mit breiter meinte ich, ob z.B. die letzte "Seite" spaltenmäßig mehr Daten enthält, als auf eine Druckseite gehen. Allerdings hat das dann doch keine Auswirkungen, da ja die kompletten Zeilen ausgeblendet werden.

Eventuell stimmen aber die Daten im ArrSeite nicht und es bleiben auf jeder Seite Zeilen übrig?

Die Frage mit den "-" stand doch dieser tage hier schon anderswo zur Diskussion, ich hatte auch darauf geantwortet. Ich such das gleich nochmal raus ...
also mein array sieht so aus:
arrSeite = Array("1:49", "50:98", "99:147", "148:196", "197:245", "246:294", "295:343", "344:392", "393:441", "442:490", "491:520")

sollte doch eigentlich richtig sein oder?

es passiert ja auch nur das wenn ich seite 1 und seite 10 drucken will, dann zeigt er mir seite 2-9 leer an...

jetzt habe ich noch ein problem (ich hoffe ich fange nicht schon an zu nerven ;) )

ich habe jetzt auf seite 10 eine grafik eingefügt und die wird nicht mit ausgeblendet wenn seite 10 ausgeblendet werden soll...also wird sie imemr gedruckt...
Seiten: 1 2 3