Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1520to1524
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
VBA PDF von nur einem Tabellenblatt
03.11.2016 19:23:44
nur
Guten Ábend,
Kann mir jemand bei einem Code helfen?
Möchte mittels Makro ein Arbeitsblatt (von mehreren) meiner geöffneten Mappe als PDF mit Datum im Ursprungsordner speichern. (sollte im Hintergrund ablaufen- nur ein OK Hinweis, wenn erledigt)
Z.B das Tabellenblatt "Stückzahl" aus der geöffneten Mappe soll dann als "Stückzahl_Datum.PDF" im Ursprungsordner gespeichert- oder gedruckt werden. Der Rest der Mappe nicht.
Geht sowas überhaupt?
Gruß Andi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA PDF von nur einem Tabellenblatt
03.11.2016 22:55:17
nur
Hallo Andi,
eine inensive suche in der RECHERCHE hätte dir eigentlich was brauchbares liefern können.
Ansonsten kannst du mit dem folgendne Makro dein Glück versuchen.
Gruß
Franz

Sub PDF_Drucken_Stueckliste()
Call PDF_Drucken(objSheet:=ActiveWorkbook.Sheets("Stückliste"))
End Sub
Sub PDF_Drucken(objSheet As Object, _
Optional ByVal bolZeit As Boolean = False, _
Optional ByVal varPfad As Variant, _
Optional ByVal varDefault As Integer = 1, _
Optional ByVal bolOpen As Boolean = False)
'Erstellt ein PDF des Blattes mit der Option auch zu Drucken
Dim strFilePDF As String, intAuswahl As Integer
If IsMissing(varPfad) Then
If objSheet.Parent.Path = "" Then
MsgBox "Vor der Ausführung des Makros muss die aktive Datei gespeichert " _
& "werden, damit das Verzeichnis ermittelt werden kann!", _
vbInformation + vbOKOnly, "Erstellen PDF"
Exit Sub
Else
varPfad = objSheet.Parent.Path
End If
End If
If Dir(varPfad, vbDirectory) = "" Then
MsgBox "Das Verzeichnis" & vbLf & varPfad & vbLf & "existiert nicht!", _
vbOKOnly + vbInformation, "Speichern PDF"
Else
strFilePDF = varPfad & Application.PathSeparator & objSheet.Name & " " _
& Format(Now, IIf(bolZeit, "YYYY-MM-DD hhmmss", "YYYY-MM-DD")) & ".pdf"
intAuswahl = Application.InputBox("1 = Speichern PDF" & vbLf _
& "2 = Speichern PDf und drucken", _
"Speichern PDF / Drucken - Blatt: " & objSheet.Name, _
varDefault, Type:=1)
Select Case intAuswahl
Case 0
'Abgebrochen
Case 1 'PDF speichern
objSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilePDF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
_
OpenAfterPublish:=bolOpen
MsgBox "PDF erstellt" & vbLf & strFilePDF, vbOKOnly, _
"Speichern PDF - Blatt: " & objSheet.Name
Case 2 'PDF speichern und drucken
objSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strFilePDF, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
_
OpenAfterPublish:=bolOpen
objSheet.PrintOut
MsgBox "PDF erstellt und gedruckt" & vbLf & strFilePDF, vbOKOnly, _
"Speichern PDF / Drucken - Blatt: " & objSheet.Name
End Select
End If
End Sub

Anzeige
AW: VBA PDF von nur einem Tabellenblatt
04.11.2016 20:02:38
nur
Danke Franz,
hatte in der RECHERCHE gesucht, leider nix gefunden. Dafür passt aber Dein Code ganz genau.
Respekt- hätte nicht gedacht- das der Code so umfangreich wird. Aber es geht- und ich komme auch langsam hinter die Geheimnisse VBA. Ein funktionierender Code, den ich leicht Anpassen kann- ist mir lieber- als ständig "VBA Laufzeitfehler" zu sehen.
So lerne ich es am besten.
Also Danke nochmals.
Andi
AW: VBA PDF von nur einem Tabellenblatt
05.11.2016 23:42:05
nur
Hallo Franz, das Makro ist super.
Eine Frage hätte ich noch- mein Tabellenblatt hat mehrere A4 Blätter nacheinander angereiht- es wird aber nur ein einziges A4 Blatt aus der Tabelle gedruckt. Muss ich da evtl. noch etwas im Druckbereich oder wo anders ändern, damit mir die gesamte Tabelle1 als PDF ausgegeben wird?
Konnte jetzt nichts im Makro ersehen, das es nur eine Seite als PDF druckt.
Oder irre ich mich?
Danke erst mal
LG Andi
Anzeige
AW: VBA PDF von nur einem Tabellenblatt
06.11.2016 13:54:28
nur
Hallo Andreas,
mit dem Parameter "IgnorePrintAreas" wird festgelegt, ob der definierte Druckbereich als PDF gespeichert werden soll oder alle benutzten Zellen des Tabellenblatts.
False --&gt Druckbereich
True --&gt alles
Du musst also den Druckbereich anpassen oder den Wert des Parameters ändern.
Falls die Blätter mit unterschiedlichen Einstellungen als PDF gespeichert werden sollen, dan ist es sinnvoll, diese Einstellung optional als weiteren Parameter zu übergeben.
Gruß
Franz
AW: VBA PDF von nur einem Tabellenblatt
06.11.2016 14:58:09
nur
Hallo Franz@fcs
Danke für die Beantwortung, habe beides in True geändert, einen Kommentar hinterlegt und alles geht wie es soll. So kann ich das besser auseinanderhalten.
Beide Varianten sind Sinnvoll. Werde mir mal bei gelegenheit noch eine msg Box dazu erstellen- "Alles Drucken", oder "nur eine Seite Drucken".
Super gelöst- großes Lob.
Gruß Andi
Anzeige

324 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige