Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Druck bestimmter Worksheets

Druck bestimmter Worksheets
18.05.2008 12:28:48
Anne
Hallo,
ich habe eine Datei mit mehreren Tabellenblättern, die je nach Bedarf ein- bzw. ausgeblendet werden.
Sofern ich die Datei drucken möchte, hätte ich gerne einen Druckauftrag, der mit die jeweils benötigten Tabellenblätter fortlaufend druckt.
Im Forum habe ich einen Code gefunden, welcher zwar die gewünchte Seite nach Abfrage einer bestimmten Zelle ausdruckt, aberdings jede Seite einzeln, so dass keine fortlaufende Nummerierung besteht.
Eine Array-Funktion wäre wohl das Geschickteste, allerdings weiß ich nicht, wie ich die notwendigen Tabellenblätter abfrage und in diese variable Array-Funktion einbaue.
Kann mir vielleicht jemand weiterhelfen?
Danke !!!
Anne

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druck bestimmter Worksheets
18.05.2008 12:39:00
Daniel
Hi
es gibt bei der SELECT-Funktion die Option, daß die alte Selekion erhalten bleibt und die neue hinzugefügt wird. (im Normalfall ersetzt die neue Selektion die alte)
wenn du z.B. die Tabellenblätter 1, 3 und 5 drucken willst, sieht der Code dazu so aus:

Sheets("Tabelle1").select
Sheets("Tabelle3").select 0
Sheets("Tabelle5").select 0
ActiveWindow.SelectedSheets.PrintOut


Gruß, Daniel

AW: Druck bestimmter Worksheets
18.05.2008 13:31:16
Anne
Hallo Daniel,
vielen Dank für die schnelle Antwort. Allerdings reicht mir die Select-Methode nicht ganz aus.
Ich habe nochmals nachgeschaut und folgendes getestet

Sub AuswahlDrucken()
'Druckt mehrere Blätter entsprechend Kriterium
Dim arrBlatt() As String, Kriterium As String, DruckerAktiv As String
Dim iI As Integer, iZeile As Integer, Bereich As Range
'Bereich mit Blattnamen und Kriterium (Linke Spalte Name, recht Kriterium)
Set Bereich = Worksheets("Deckblatt").Range("AP50:AQ57") '###Zeile ggf. anpassen
Kriterium = 1
'zu druckende Blätter in Feld einlesen
iI = 1
ReDim arrBlatt(1 To iI)
For iZeile = 1 To Bereich.Rows.Count
If Bereich(iZeile, 2) = Kriterium Then
ReDim Preserve arrBlatt(1 To iI)
arrBlatt(iI) = Bereich(iZeile, 1)
iI = iI + 1
End If
Next
If arrBlatt(1)  "" Then
Sheets("Deckblatt").Activate
ActiveWorkbook.Sheets(arrBlatt).PrintOut
Sheets("Deckblatt").Select
Else
MsgBox "Keine Blätter für Druck gewählt!"
End If
End Sub


Der Code funktioniert auch soweit, allerdings wäre es toll, wenn ich den "Bereich" nicht pflegen müßte, sondern abfragen könnte wie z.Bsp. hier:


Sub AbforderungenDrucken()
Dim wks As Worksheet
For Each wks In Worksheets
If Range("A1").Value = 1 Then
wks.PrintOut Copies:=1
End If
Next wks
End Sub


Vielleicht kann mir jemand weiterhelfen. Vielen Dank!!
Anne

Anzeige
AW: Druck bestimmter Worksheets
18.05.2008 13:42:00
Daniel
Hi
das würde ich so machen:

Dim wks As Worksheet
For Each wks In Worksheets
If wks.Range("A1").Value = 1 Then
wks.select
End If
Next
For Each wks In Worksheets
If wks.Range("A1").Value = 1 Then
wks.select 0
End If
Next
activewindow.selectedsheets.printout


der doppelte Schleifendurchlauf ist notwendig, damit wirklich nur Blätter gedruckt werden, die die bedingung erfüllen. (ohne die erste schleife würde das aktuell selektierte Blatt auf jeden Fall mitgedruckt, auch wenn es die bedingung nicht erfüllt)
Gruß, Daniel

Anzeige
AW: Druck bestimmter Worksheets
18.05.2008 14:31:00
Anne
Hallo Daniel,
das ist genau das, was ich suchte und es funktioniert.
SUPER - vielen Dank für die Hilfe!!
Gruß
Anne

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige