Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
960to964
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
960to964
960to964
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige