Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1348to1352
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
Inhaltsverzeichnis

Druckroutine

Druckroutine
24.02.2014 21:16:02
Thomas
Hallo,
ich habe ein Problem und komme leider mit meinen Anfänger-Kenntnissen in VBA nicht weiter und frage deshalb hier nach eurer Hilfe.
Ich habe eine Arbeitsmappe bestehend aus 15 Arbeitsblättern.
Im letzten Tabellenblatt habe ich eine Form (Button), dem ich gerne ein Makro "drucken" zuweisen möchte. Allerdings sollen folgende Bedingungen erfüllt werden:
- es sollen die letzten 8 Tabellenblätter ausgedruckt werden
- diese 8 Tabellenblätter sollen jeweils auf eine DinA4-Seite skaliert sein
- in der linken Kopfzeile der Tabellenblätter soll der Wert einer Zelle (Name des Projekt) aus dem ersten Tabellenblatt dargestellt werden
- perfekt wäre noch eine Auswahl der vorhandenen Drucker, nachdem man den Button gedrückt hat
VIELEN VIELEN DANK!

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

Betreff
Datum
Anwender
Anzeige
AW: Druckroutine mehrere Tabellenblätter
25.02.2014 07:27:57
fcs
Hallo Thomas,
hier ein entsprechendes Makro.
Gruß
Franz
Sub Drucken_letzte_8()
Dim varAuswahl As Variant
Dim DruckerAktiv As String, strHeader As String
Dim objSh As Object, objShAktiv As Object
Dim intSheet As Integer, arrSheets() As String, intCount As Integer
DruckerAktiv = Application.ActivePrinter 'aktiven Drucker merken
Set objShAktiv = ActiveSheet
varAuswahl = Application.Dialogs(xlDialogPrinterSetup).Show
If varAuswahl = False Then
'Abbrechen wurde gewählt
Else
strHeader = ActiveWorkbook.Sheets(1).Range("A2").Text
With ActiveWorkbook
For intSheet = .Sheets.Count - 7 To .Sheets.Count - 0
Set objSh = .Sheets(intSheet)
With objSh.PageSetup
.PaperSize = xlPaperA4
.Orientation = xlPortrait ' Hochformat xlLandscape = Querformat
.Zoom = False
.FitToPagesTall = 1
.FitToPagesWide = 1
.LeftHeader = strHeader
End With
intCount = intCount + 1
ReDim Preserve arrSheets(1 To intCount)
arrSheets(intCount) = objSh.Name
Next intSheet
'Blätter gruppiert drucken
.Sheets(arrSheets).PrintOut Preview:=True
objShAktiv.Select
End With
Application.ActivePrinter = DruckerAktiv 'gemerkten Drucker wieder setzen
End If
End Sub

Anzeige
AW: Druckroutine mehrere Tabellenblätter
25.02.2014 15:53:49
Thomas
Hallo Franz,
vielen Dank.
Leider erhalte ich einen Laufzeitfehler.
.Sheets(arrSheets).PrintOut Preview:=True
In dieser Zeile geht es leider nicht weiter. Hast du ggf. noch eine Idee?

AW: Druckroutine mehrere Tabellenblätter
25.02.2014 17:38:49
fcs
Hallo Thomas,
ich hab das Makro auf verschiedenen Rechnern/Dateien und mit unterschiedlichen Druckern (PDF, Netzwerk-Drucker) getestet.
Deshalb kann ich nicht beurteilen, warum es bei dir nicht funktioniert.
Ist der im Druckerdialog gewählte Drucker korrekt istaliert? Kannst du auf dem ausgewählten Drucker auch "normal" drucken?
Probiere mal
.Sheets(arrSheets).PrintOut Preview:=False

Dann wird direkt gedruckt ohne Seitenvorschau.
oder
.Sheets(arrSheets).PrintPreview

Dann wird die Seitenvorschau angezeigt und nach klicken auf Drucker-Symbol der Druckendialog.
Gruß
Franz

Anzeige
AW: Druckroutine mehrere Tabellenblätter
25.02.2014 18:00:08
Thomas
Hi Franz,
ich habe gerade eine Testdatei erstellt und noch mal deinen Code ausprobiert und er funktioniert 1A!!! Wirklich klasse!!!
Ich weiss jetzt auch warum er zuvor in meiner Zieldatei nicht funktionierte. Ich hatte am Ende der Arbeitsmappe noch ein ausgeblendetes Tabellenblatt. Dieses habe ich jetzt verschoben und schon funktioniert es.
VIELEN VIELEN DANK!!!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige