| |
| Xometry Europe erweitert das Angebot um Vakuumguss und Formpressen, eine Pressemitteilung
|
Autor
|
Thema: Druckmakro (7165 mal gelesen)
|
noxx Mitglied Steuerzahler
Beiträge: 801 Registriert: 13.12.2004 Win7 (i7-6920, 32gb,quadro m1000m) NX 10
|
erstellt am: 13. Jun. 2007 18:47 <-- editieren / zitieren --> Unities abgeben:
Ich brauche ein Makro das mir mehrere Arbeitsblätter ausdruckt (2 von 3), auf Knopfdruck. Weiterhin soll das Makro auch vorher einen Drucker bestimmen (PDF Creator). Habe es mit Makro aufzeichnen versucht, klappt auch soweit, aber der druckt entweder alle Blätter oder nur das aktuelle. Das aufzeichen habe ich so gemacht: 1) Makro aufzeichnen starten 2) Datei/Drucken 3) Drucker ausgewählt 4) Drucken 5) Dann Makro aufzeichnen beendet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 13. Jun. 2007 18:50 <-- editieren / zitieren --> Unities abgeben: Nur für noxx
Ich behaupte mal auf die Schnelle: Woher weis das Makro welche Arbeitsblätter du drucken willst, wenn du sie nicht im Makro angibst ? (Sprich dir fehlt die Selektion von den zu druckenden Blättern - und diese Blätter müssen dann in allen Mappen gleich heißen...) ------------------ Grüsse Thomas [Diese Nachricht wurde von tunnelbauer am 14. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
noxx Mitglied Steuerzahler
Beiträge: 801 Registriert: 13.12.2004
|
erstellt am: 13. Jun. 2007 19:31 <-- editieren / zitieren --> Unities abgeben:
Das ist ja das Problem. Das Makro sieht so aus: Code:
Sub Makro3() Application.ActivePrinter = "PDFCreator auf Ne00:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ "PDFCreator auf Ne00:", Collate:=True End Sub
Wie sage ich dem Makro nun, das er Tabelle1 und Tabelle2 drucken soll ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tunnelbauer Ehrenmitglied V.I.P. h.c. Bauingenieur
Beiträge: 7085 Registriert: 13.01.2004 ich hab eh keine Probleme damit...
|
erstellt am: 13. Jun. 2007 19:38 <-- editieren / zitieren --> Unities abgeben: Nur für noxx
Naja - so wie im echten Leben auch... Makro Recorder starten, STRG+ Click auf zu druckende Sheets, Datei > Druck... ergibt... Code:
Sub Makro1() Sheets(Array("Tabelle1", "Tabelle2")).Select Sheets("Tabelle1").Activate Application.ActivePrinter = "PDFCreator auf Ne00:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ "PDFCreator auf Ne00:", Collate:=True End Sub
Wie hast du geglaubt, dass es zustande kommt ? ------------------ Grüsse Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
noxx Mitglied Steuerzahler
Beiträge: 801 Registriert: 13.12.2004
|
erstellt am: 14. Jun. 2007 08:29 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von tunnelbauer: Naja - so wie im echten Leben auch...Makro Recorder starten, STRG+ Click auf zu druckende Sheets, Datei > Druck... ergibt... Code:
Sub Makro1() [b] Sheets(Array("Tabelle1", "Tabelle2")).Select Sheets("Tabelle1").Activate Application.ActivePrinter = "PDFCreator auf Ne00:" ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _ "PDFCreator auf Ne00:", Collate:=True End Sub
Wie hast du geglaubt, dass es zustande kommt ? [/B]
Soweit war ich auch schon. Geht aber nicht. Er druckt mit dem Makro nur die Kopfzeile der Tabelle1 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
noxx Mitglied Steuerzahler
Beiträge: 801 Registriert: 13.12.2004 Win7 (i7-6920, 32gb,quadro m1000m) NX 10
|
erstellt am: 14. Jun. 2007 08:51 <-- editieren / zitieren --> Unities abgeben:
Habs nun hinbekommen, das ganze sieht nun so aus: Code:
Application.ActivePrinter = "PDFCreator auf Ne00:" Sheets(Array("Tabelle1", "Tabelle2")).PrintOut Copies:=1, ActivePrinter:= _ "PDFCreator auf Ne00:", Collate:=True
Aber ich hätte das ganze noch gerne ergänzt und zwar so: Ich benutze das Makro per Button, das ganze 2x. Auf einem Knopf soll er nur Tabelle1 drucken, auf dem anderen Tabelle1 und Tabelle2 (wie das Makro oben). Jetzt weiss ich nicht, ob man auch irgendwie die Kopfzeile beeinflussen kann. Beim Button 1 soll er nämlich in die Kopfzeile (rechtes Feld) folgendes schreiben: Blatt 1/1 Beim Button 2 soll er schreiben: Blatt 1/2 auf die erste Seite und Blatt 2/2 auf die 2. Seite. Bekommt man das hin ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 14. Jun. 2007 09:07 <-- editieren / zitieren --> Unities abgeben: Nur für noxx
Moin, ja - wie wär's mit Makro aufzeichnen? Record, Kopf- und Fußzeilen einrichten, Stop?! So z.B. Code: ActiveSheet.PageSetup.RightHeader = "Blatt &P/&N"
für Deinen ersten Button.Nur am Rande bemerkt: Wenn Du -oder sonstwer- die Register von "Tabelle1" auf "Irgendwasanderes" umbenennst, hängt sich Dein Makro vermutlich auf. SCNR ------------------ Gruß, Frederik DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
lb-racer Mitglied Techniker
Beiträge: 455 Registriert: 13.12.2005
|
erstellt am: 22. Jun. 2007 00:17 <-- editieren / zitieren --> Unities abgeben: Nur für noxx
Zitat: Nur am Rande bemerkt: Wenn Du -oder sonstwer- die Register von "Tabelle1" auf "Irgendwasanderes" umbenennst, hängt sich Dein Makro vermutlich auf.
falls es noch wen interessiert: so druckt man immer die ersten beiden Tabellen, egal wie sie heissen Sheets(Array(1, 2)).PrintOut Copies:=1, ActivePrinter:= _ "Adobe PDF", Collate:=True lg, Matthias
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
noxx Mitglied Steuerzahler
Beiträge: 801 Registriert: 13.12.2004 Win7 (i7-6920, 32gb,quadro m1000m) NX 10
|
erstellt am: 22. Jun. 2007 07:53 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von lb-racer: falls es noch wen interessiert: so druckt man immer die ersten beiden Tabellen, egal wie sie heissen Sheets(Array(1, 2)).PrintOut Copies:=1, ActivePrinter:= _ "Adobe PDF", Collate:=True lg, Matthias
Werde ich mal testen, danke. Leider ist das Problem, dass nicht alle die diese Excel-Tabelle nutzen auch den PDF-Creator draufhaben. Wenn man das Makro dann startet, landet man im Editor mit ner Fehlermeldung. Was ich nun noch gerne hätte wäre sowas: Wenn PDF-Drucker nicht da, dann soll ein Fenster aufpoppen mit einer Warung: zb PDF-Cretor installieren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 22. Jun. 2007 09:55 <-- editieren / zitieren --> Unities abgeben: Nur für noxx
Hallo, @Matthias: Ja, stimmt . Die Zahlen 1, 2, ... sind die VBA-Bezeichnungen der Blätter - und die sind immer gleich, unabhängig davon, wie der Nutzer die Register bezeichnet, umbenennt oder sonstwas. [Edit] Gilt auch, wenn Register gelöscht werden. [/Edit] Zitat: Was ich nun noch gerne hätte wäre sowas: Wenn PDF-Drucker nicht da, dann soll ein Fenster aufpoppen mit einer Warung: zb PDF-Cretor installieren
Hm - Makro aufzeichnen: Mal zur Gaudi den Drucker umstellen; Error-Funktionen in VBA ansehen?! [Edit] Oder z.B. mit Code: If Not Application.ActivePrinter = "Adobe PDF" Then MsgBox "Der pdf-Creator ist nicht der gewählte Drucker." _ & vbCrLf & vbCrLf & "Bitte gegebenenfalls nachinstallieren.", vbOKOnly + vbInformation, "Hinweis"
[/Edit]------------------ Gruß, Frederik DIN1055.de | Lastannahmen für Anwender [Diese Nachricht wurde von Paulchen am 22. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |