Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Excel bestimmte Tabellenblätter mittels Schaltfläche (VBA) drucken/ pdf drucken
#1
Hallo zusammen,

ich habe insgesamt 4 Tabellenblätter.

Ich möchte insgesamt 8 Makros erstellen:

Ich benötige für jedes Tabellenblatt einen Druck Makro, der einen festgelegten Zellenbereich innerhalb des Tabellenblattes druckt.

Zusätzlich soll dieser Zellenbereich per Makro nicht nur ausgedruckt werden, sondern per weiteren Makro soll die Option bestehen, die Datei als PDF abzuspeichen.

Tabelle 1: Zellenbereich A1:H216
Tabelle 2: Zellenbereich A1:I120
Tabelle 3: Zellenbereich A1:I140
Tabelle 2: Zellenbereich A1:I120

Wichtig ist, dass die Makros einzeln ausführbar sind, es ist nicht gewollt, mit einem Makro alle 4 Tabellenblätter auszudrucken.

Leider komme ich nicht weiter.

Ich hoffe mir kann einer helfen.

Vielen Dank!
Antworten Top
#2
Hallo,

(26.10.2017, 12:59)Nordlicht85 schrieb: Leider komme ich nicht weiter.

Und was hast Du bisher?
Gruß Jonas
Antworten Top
#3
Ich habe 4 Makros wie folgt eingerichtet:

Sub druck()

ActiveWorkbook.Sheets("Tabelle1").PageSetup.PrintArea = "$A$1:$H$216"

End Sub

-------------------

Sub druck()

ActiveWorkbook.Sheets("Tabelle2").PageSetup.PrintArea = "$A$1:$I$120"

End Sub

-------------------

Sub druck()

ActiveWorkbook.Sheets("Tabelle3").PageSetup.PrintArea = "$A$1:$I$140"

End Sub

-------------------

Sub druck()

ActiveWorkbook.Sheets("Tabelle4").PageSetup.PrintArea = "$A$1:$I$120"

End Sub
Antworten Top
#4
Hallo,

hast Du mal den Makrorekorder verwendet? Der liefert da eigentlich alles was ban benötigt. Abspecken und anpassen kann man den Code dann im Nachhinein immernoch.
Gruß Jonas
Antworten Top
#5
Ich habe es probiert, jedoch hat es da auch nicht geklappt.

Kannst du mir sagen was an meinen Codes falsch ist?
Antworten Top
#6
Hallo,

(26.10.2017, 13:26)Nordlicht85 schrieb: Ich habe es probiert, jedoch hat es da auch nicht geklappt.

Und das heißt? Wie sieht der aufgezeichnete Code aus?

(26.10.2017, 13:26)Nordlicht85 schrieb: Kannst du mir sagen was an meinen Codes falsch ist?

Du führst doch garkeinen Druck aus?!
Gruß Jonas
Antworten Top
#7
Was meinst du mit ich führ doch gar keinen Druck aus? Was muss denn da geändert werden?

Ich hatte bei dem selbst erstellten Makro immer die Fehlermeldung "Debuggen".
Antworten Top
#8
Hallo,

Zitat:Kannst du mir sagen was an meinen Codes falsch ist?

woher soll Excel wissen, daß Du Drucken willst wenn Du es ihm durch Dein Makro nicht mitteilst?

Die Anweisung sollte in der Minimalversion etwa so aussehen (muß an Deine Bedingungen angepaßt werden):
Worksheets.PrintOut
________________________________________________________________________
wer aufgibt, ohne es versucht zu haben, gibt einfach nur auf!

Grüße aus Norderstedt, Peter
Antworten Top
#9
Hallo,

danke für deine Rückmeldung.

Verstehe ich dich richtig, dass die korrekte formel wie folgt lauten muss:

Sub druck()

ActiveWorkbook.Sheets("Tabelle1").Worksheets.PrintOut = "$A$1:$H$216"

End Sub

Sub druck()

ActiveWorkbook.Sheets("Tabelle2").Worksheets.PrintOut = "$A$1:$I$120"

End Sub

Sub druck()

ActiveWorkbook.Sheets("Tabelle3").Worksheets.PrintOut = "$A$1:$I$140"

End Sub

Sub druck()

ActiveWorkbook.Sheets("Tabelle4").Worksheets.PrintOut = "$A$1:$I$120"

End Sub


Leider erfolgt dann die Fehlermeldung: Laufzeitfehler 9. Index außerhalb des gültigen Bereiches.
Antworten Top
#10
Aua!
Da stimmt nicht viel!
Ich würde komplett auf die Druckbereiche verzichten und statt dessen die Range.PrintOut-Methode verwenden.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste