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

Druckmakro

Forumthread: Druckmakro

Druckmakro
19.03.2008 16:22:00
Sascha
Hallo, ich habe eine Datei aus der immer nur Teile gedruckt werden müssen. Wie in der Beispieldatei brauche ich immer nur bestimmte Regionen. Ich möchte jetzt ein Makro schreiben, dass das Drucken automatisiert. Zum Beispiel habe ich die Region eins einmal gewählt, dass soll genau der Druckbereich auf dem Blatt Region 1, also B5:E27 gedruckt werden. Habt ihr eine Idee, wie der Code dazu aussehen könnte?
Das die entsprechende Anzahl gedruckt wird ist erstmal nicht so wichtig, aber später ein schöner Bonus.
Danke Euch!
https://www.herber.de/bbs/user/50859.xls

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Druckmakro
19.03.2008 17:17:33
fcs
Hallo Sacha,
hier ein Beispielmakro.
Wenn du unter Anzahl eine Zahl >0 eingibst, dann wird das Tabellenblatt entsprechend oft gedruckt.
Wichtig, die Namen rechts von Anzahl müssen in der Schreibweise genau mit den Tabellennamen übereinstimmen.
Gruß
Franz

Sub Drucken()
Dim Zelle As Range, ws1 As Worksheet, wsReg As Worksheet, fehler%
On Error GoTo fehler
Set ws1 = Worksheets("Tabelle1")
For Each Zelle In ws1.Range("B6:B13,D6:D13,F6:F13")
If Zelle.Value > 0 Then
fehler = 1
Set wsReg = Worksheets(Zelle.Offset(0, 1).Value)
fehler = 0
wsReg.PrintOut Copies:=Zelle.Value
'      wsReg.PrintPreview
End If
NextBlatt:
Next
GoTo ende
fehler:
Select Case fehler
Case 1
MsgBox "Der Name des Tabellenblatts in Tabelle 1: " & Zelle.Offset(0, 1) _
& vbLf & " existiert nicht!"
Resume NextBlatt
Case Else
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
End Select
ende:
Set ws1 = Nothing: Set wsReg = Nothing: Set Zelle = Nothing
End Sub


Anzeige
AW: Druckmakro
20.03.2008 11:07:00
Sascha
Vielen Dank schonmal, es wird jetzt aber das ganze Blatt gedruckt und nicht nur der Datenbereich, weiß da noch jemand eine Lösung?
Danke Euch schonmal!

AW: Druckmakro
21.03.2008 08:57:45
fcs
Hallo Sascha,
das Makro druckt das was als Druckbereich für die einzelnen Blätter unter Datei-Seite einrichten als Druckbereich festgelegt ist. Falls hier nichts festgelegt ist, dann druckt Excel alles von Zelle A1 bis zur letzten mit Daten ggf. auch Formaten belegten Zelle.
Du muss also den Druckbereich vor dem Drucken entweder
a) manuell festlegen
oder
b) vom Makro fest oder auf Basis von Kriterien festlegen lassen.
Gruß
Franz
Beispiel: Druckbereichseinstellung werden vor dem Drucken angepasst an die benutzte Zeilenzahl.

Sub Drucken()
Dim Zelle As Range, ws1 As Worksheet, wsReg As Worksheet, fehler%
On Error GoTo fehler
Set ws1 = Worksheets("Tabelle1")
For Each Zelle In ws1.Range("B6:B13,D6:D13,F6:F13")
If Zelle.Value > 0 Then
fehler = 1
Set wsReg = Worksheets(Zelle.Offset(0, 1).Value)
fehler = 0
With wsReg
'Titelzeilen festlegen (werden auf jeder Seite wiederholt)
.PageSetup.PrintTitleRows = .Range(.Rows(5), .Rows(5)).Address
'Druckbereich festlegen
.PageSetup.PrintArea = .Range(.Cells(6, 2), _
.Cells(.UsedRange.Row + .UsedRange.Rows.Count - 1, 5)).Address
.PageSetup.CenterHorizontally = True
End With
wsReg.PrintOut Copies:=Zelle.Value
'      wsReg.PrintPreview
End If
NextBlatt:
Next
GoTo ende
fehler:
Select Case fehler
Case 1
MsgBox "Der Name des Tabellenblatts in Tabelle 1: " & Zelle.Offset(0, 1) _
& vbLf & " existiert nicht!"
Resume NextBlatt
Case Else
MsgBox "Fehler Nr. " & Err.Number & " ist aufgetreten!" & vbLf & Err.Description
End Select
ende:
Set ws1 = Nothing: Set wsReg = Nothing: Set Zelle = Nothing
End Sub


Anzeige
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige