Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Sichtb. Tabellen drucken m. Seitenzahlen u. Index

Sichtb. Tabellen drucken m. Seitenzahlen u. Index
04.03.2009 22:16:52
Gerald
Hallo alle!
Ich soll in einer Arbeitsmappe alle sichtbaren Tabellenblätter drucken.
Dabei soll die Seitennummerierung durchgehend sein.
Als erste Seite soll eine Art Index gedruckt werden in der Art: Tabelle32 - Seite 23 bis 25, usw.
Ich bin hier mit meinem VBA-Latein am Ende.
Weiß jemand von euch Rat?
Ich danke euch schon mal im Voraus für eure Hilfe!
LG Gerald

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Sichtb. Tabellen drucken m. Seitenzahlen u. Index
05.03.2009 02:04:56
Daniel
Hi
das ist jetzt nicht so wild:

Sub Index_erstellen()
Dim SeitenZähler As Long
Dim SeitenProSheet As Long
Dim IndexZeile As Long
Dim sh As Worksheet
Dim x As Integer
Dim txt As String
IndexZeile = 2
Sheets(1).Cells(IndexZeile, 1).CurrentRegion.ClearContents
For Each sh In ThisWorkbook.Worksheets
If sh.Visible = xlSheetVisible Then
SeitenProSheet = (sh.VPageBreaks.Count + 1) * (sh.HPageBreaks.Count + 1)
txt = sh.Name & " - Seite " & SeitenZähler + 1
If SeitenProSheet > 1 Then txt = txt & " bis " & SeitenZähler + SeitenProSheet
Sheets(1).Cells(IndexZeile, 1).Value = txt
SeitenZähler = SeitenZähler + SeitenProSheet
IndexZeile = IndexZeile + 1
End If
Next
For Each sh In ThisWorkbook.Worksheets
If sh.Visible = xlSheetVisible Then sh.Select (False)
Next
ActiveWindow.SelectedSheets.PrintOut preview:=True
End Sub


Gruß, Daniel

Anzeige
AW: Sichtb. Tabellen drucken m. Seitenzahlen u. Index
06.03.2009 13:39:55
Gerald
Hallo Daniel!
Vielen Dank für deine rasche Hilfe!
Das funktioniert super - mit einer kleinen Ausnahme:
-------------------------------
For Each sh In ThisWorkbook.Worksheets
If sh.Visible = xlSheetVisible Then sh.Select (False)
Next
-------------------------------
Der 'Select'-Aufruf entfernt bei jedem Durchlauf die aktuelle Selektion. Das hat den Effekt, dass am Ende nur ein Sheet ausgewählt und dann gedruckt wird.
Mit folg. Code kann ich mehrere Sheets gleichzeitig selektieren:
-------------------------------
Sheets(Array(4, 5, 6, 7)).Select
-------------------------------
Mein Problem ist nur, wie generiere ich diesen Array dynamisch?
Oder gibt es eine andere Möglichkeit, mehrere Sheets gleichzeitig zu selektieren?
Gerald
Anzeige
AW: Sichtb. Tabellen drucken m. Seitenzahlen u. Index
06.03.2009 16:20:38
Gerald
Vielen Dank euch beiden! Es läuft jetzt super!
Liebe Grüße
Gerald

AW: Erst Testen, dann Posten
06.03.2009 21:08:50
Daniel
Hi
nein, deine Aussage ist falsch.
wahrscheinlich hast du mein Makro nicht getestest.
der Parameter FALSE bewirkt, daß die bestehende Selection nicht ersetzt wird, sondern erhalten bleibt, so das am Ende der Schleife alle sichtbaren Blätter markiert sind.
allerdings verwende ich Excel 2002. Ich will natürlich nicht ausschließen, das MS die SELECT-Funktion in Excel 2003 verändert hat. Sollte dies der Fall sein, hättest du natülich recht.
Gruß, Daniel
AW: Sichtb. Tabellen drucken m. Seitenzahlen u. Index
06.03.2009 14:48:13
fcs
Hallo gerald,
mit folgender Anpassung wird ein Array der sichtbaren Blätter erstellt und die Seitenvorschau angezeigt.
Gruß
Franz

Sub Index_erstellen()
Dim SeitenZähler As Long
Dim SeitenProSheet As Long
Dim IndexZeile As Long
Dim sh As Worksheet
Dim x As Integer
Dim txt As String
Dim arrBlaetter() As Long
IndexZeile = 2
Sheets(1).Cells(IndexZeile, 1).CurrentRegion.ClearContents
For Each sh In ThisWorkbook.Worksheets
If sh.Visible = xlSheetVisible Then
SeitenProSheet = (sh.VPageBreaks.Count + 1) * (sh.HPageBreaks.Count + 1)
txt = sh.Name & " - Seite " & SeitenZähler + 1
If SeitenProSheet > 1 Then txt = txt & " bis " & SeitenZähler + SeitenProSheet
Sheets(1).Cells(IndexZeile, 1).Value = txt
SeitenZähler = SeitenZähler + SeitenProSheet
IndexZeile = IndexZeile + 1
End If
Next
x = 0
For Each sh In ThisWorkbook.Worksheets
If sh.Visible = xlSheetVisible Then
x = x + 1
ReDim Preserve arrBlaetter(1 To x)
arrBlaetter(x) = sh.Index
End If
Next
ActiveWorkbook.Sheets(arrBlaetter).PrintOut preview:=True
End Sub


Anzeige
AW: Sichtb. Tabellen drucken m. Seitenzahlen u. Index
06.03.2009 16:21:55
Gerald
Vielen Dank euch beiden!
Es läuft jetzt super!
Liebe Grüße
Gerald

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige