Druck als PDF Datei
#1
Hallo zusammen,

könnte mir bitte jemand den Code ergänzen / umschreiben, dass beim Drucken nicht der Drucker angesteuert wird sondern die Tabellenblätter zusammengefasst als PDF ausgegeben werden.

Private Sub CommandButton1_Click()

If CheckBox2 = True Then
    Sheets("Tabelle1").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
End If
If CheckBox7 = True Then
    Sheets("dasistneu").Select
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
        IgnorePrintAreas:=False
       
        End If
Unload Me
Sheets("Tabelle1").Activate


End Sub
Top
#2
HAllöchen,

zeichne das doch mal schnell auf Smile Ich würde das mit der Excel-Funktionalität zum Speichern als pdf tun.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo,

mir wäre die Variante per VBA deutlich lieber, die Datei sollen später auch Personen verwenden die keine Ahnung von Excel haben.

Hier schnell eine kleine Testdatei. 

Ziel soll sein, dass der Output als PDF gespeichert wird und nicht aus dem Drucker kommt ....

VG


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 19,76 KB / Downloads: 2)
Top
#4
Hallöchen,

was Du da aufzeichnest ist ein VBA-Makro ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#5
lässt es sich damit den nicht umsetzen ?
Top
#6
Hallöchen,

aufgezeichnet sieht das so aus:

Code:
Sub Makro2()
'
' Makro2 Makro
'

'
    Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
    Sheets("Tabelle1").Activate
    ChDir "C:\Temp"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Temp\Mappe1.pdf", Quality:=xlQualityStandard, IncludeDocProperties:= _
        True, IgnorePrintAreas:=False, OpenAfterPublish:=True
End Sub

Wenn Du das anders machen willst bräuchtest Du bei Deinen verschiedenen Anwendern die unterschiedlichen pdf-"Drucker" oder wie immer Du das ausgeben willst. Die musst Du per Code auswählen, dann "drucken", ... Nun könnte man per Code schauen, ob es da im System einen Drucker gibt der im Namen "pdf" hat. Manchmal gibt es da mehrere (Microsoft Print To Pdf, pdfCreator ...) schlimmstenfalls keinen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#7
Hallo,

schon mal danke für deine Hilfestellung ! Die PDF wird nun erzeugt wie gewünscht. ich habe allerdings deinen Code nun einfach in mein Modul eingebaut da der Druck per Button erfolgen soll. 

Es werden aber stets alle Tabellen in die PDF gedruckt. Ich möchte ja bewusst über die Userform auswählen können, welche Tabellenblätter gedruckt werden sollen. 

Also wenn ich den Haken bei Tabelle 1 und 3 setze sollen auch nur diese in die PDF gedruckt werden. 

Hänge die Datei nochmal modifiziert dran....

Ergänzung: Die Rechner auf denen die Datei genutzt wird erfüllen alle die gleichen Voraussetzungen. Standardmäßig sind FreePDF sowie PDF24 installiert sollte das wichtig sein. Ich benötige auch keinen Luxus, es genügt wenn dem Anwender die PDF generiert wird und wo er sie dann wegspeichert ist seine Sache ....


Angehängte Dateien
.xlsm   Mappe1.xlsm (Größe: 26,03 KB / Downloads: 6)
Top
#8
Moin!
Wenn Du (siehe Threaderöffnung) eine Auswahl mehrerer Sheets in eine Pdf haben willst, geht das nicht so einfach!
Dann musst Du die Blätter zunächst in eine temporäre neue Mappe kopieren und Dich der Workbook.ExportAsFixedFormat-Methode bedienen.

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)
Top
#9
Hallo Ralf,

danke für dein Feedback ! Lässt sich das dann mit einem Code in meiner Beispieldatei umsetzen und wenn ja, wie müsste dieser aussehen. bin leider nicht selbst in der Lage diesen zu verfassen. 

Sollte das alles nicht möglich sein sehe ich als Laie lediglich die Lösung, alle gewünschten Tabellenblätter in ein Zieltabellenblatt zu kopieren und dann daraus eine PDF zu generieren.
Top
#10
Hallöchen,

Zitat:Dann musst Du die Blätter zunächst in eine temporäre neue Mappe kopieren

Nö. Du musst nur die gewünschten Blätter markieren ... Probier das doch einfach mal aus. Anschließend müssen wir noch schauen, wie wir diese Auswahl

Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select

anhand Deiner Checkboxauswahl hinbekommen.

Das könnte im Prinzip z.B. .so aussehen

Code:
If CheckBox1 = true And CheckBox2 = True And CheckBox3 = True Then
    Sheets(Array("Tabelle1", "Tabelle2", "Tabelle3")).Select
ElseIf CheckBox1 = true And CheckBox2 = True Then
    Sheets(Array("Tabelle1", "Tabelle2")).Select
ElseIf CheckBox2 = true And CheckBox3 = True Then
    Sheets(Array("Tabelle2", "Tabelle3")).Select
ElseIf CheckBox1 = True Then  
    Sheets("Tabelle1").Select
ElseIf CheckBox2 = True Then  
    Sheets("Tabelle2").Select
ElseIf CheckBox3 = True Then  
    Sheets("Tabelle3").Select
End If
Kann man sicher noch abkürzen, ist aber erst mal zum Verständnis. Ausgegeben wird dann das, was selektiert ist.
Von der Logik her musst Du Dich von der größtmöglichen Auswahl zu den kleinen durcharbeiten. Sobald eine Bedingung erfüllt ist, werden die folgenden nicht berücksichtigt.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top


Gehe zu:


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