Speichern unter variabel als pdf

Bild

Betrifft: Speichern unter variabel als pdf
von: Stephan
Geschrieben am: 21.04.2015 16:45:13

Hallo zusammen,
am Ende einer Prozedur möchte ich den Speichern unter Dialog aufrufen, den Dateityp bereits voreingestellt auf "pdf" haben, das Häkchen bei "Datei nach dem Veröffentlichen öffnen" gesetzt haben und den Dateinamen bereits durch eine Syntax aus dem Code ausgefüllt haben.
Mit
Application.Dialogs(xlDialogSaveAs).Show,57
öffnet sich zwar der Speichern unter Dialog mit voreingestelltem Dateityp "pdf" - jedoch ist das Häkchen "Datei nach dem Veröffentlichen ..." nicht gesetzt.
Ferner funktioniert folgende Logik bei mir nicht:
Dim strDateiname as string
strDateiname = "Test"
Application.Dialogs(xlDialogSaveAs).Show (strDateiname),57
Ich hätte gedacht das nun als Dateiname "Test" vorgeschlagen wird, das entsprechende Feld ist jedoch komplett leer.
Kann mir hier jemand helfen ?
Danke für Eure Mühe.
Stephan

Bild

Betrifft: AW: Speichern unter variabel als pdf
von: Nepumuk
Geschrieben am: 21.04.2015 17:13:44
Hallo,
warum benutzt du nicht die Methode GetSaveAsFilename nur für den Dateinamen und machst den Rest per ExportAsFixedFormat-Methode?
Gruß
Nepumuk

Bild

Betrifft: AW: Speichern unter variabel als pdf
von: Stephan
Geschrieben am: 21.04.2015 17:17:53
Hallo Nepumuk,
danke für die schnelle Antwort.
Könntest Du mir die entsprechenden Codezeilen kurz hier schreiben - leider bin ich nicht so fit darin ?
Danke für Deine Hilfe !

Bild

Betrifft: AW: Speichern unter variabel als pdf
von: Nepumuk
Geschrieben am: 21.04.2015 17:29:53
Hallo,
klar:

Option Explicit

Public Sub PDF_Export()
    Dim vntReturn As Variant
    vntReturn = Application.GetSaveAsFilename(InitialFileName:="Test.pdf", _
        FileFilter:="PDF-Datei (*.pdf), *.pdf)", Title:="PDF erzeugen")
    If vntReturn <> False Then
        Call ThisWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, _
            Filename:=vntReturn, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=True)
    End If
End Sub

Ich habe angegeben dass die komplette Mappe exportiert wird. Wenn du nur eine Tabelle willst, dann musst du an Stelle von ThisWorkbook die gewünschte Tabelle angeben, z.B. Worksheets("Tabelle1"). Wenn du einen bestimmten Speicherpfad angeben willst, kannst du das in der GetSaveAsFilename-Methode bei InitialFileName. Z.B. "D:\Daten\Test.pdf"

Gruß
Nepumuk

Bild

Betrifft: Zusatzfrage
von: WalterK
Geschrieben am: 21.04.2015 22:12:16
Hallo und schönen Abend,
der Code von Nepumuk passt genau in mein derzeitiges Projekt.
Allerdings hätte ich noch gerne 2 Ergänzungen/Änderungen:
1.) Die pdf-Datei soll immer gespeichert werden und zwar ohne jede Rückfrage. Derzeit muss das Fenster "Speichern unter" bestätigt werden.
2.) Die pdf-Datei soll nicht geöffnet werden.
Lässt sich das noch machen.
Besten Dank für Eure Hilfe und Servus, Walter

Bild

Betrifft: AW: Zusatzfrage
von: Nepumuk
Geschrieben am: 22.04.2015 10:43:50
Hallo Walter,
dann benötigst du nur die ExportAsFixedFormat-Methode dabei setzt du den Parameter OpenAfterPublish auf False.
Gruß
Nepumuk

Bild

Betrifft: AW: Zusatzfrage
von: WalterK
Geschrieben am: 22.04.2015 12:37:27
Hallo Nepumuk,
Nach der Änderung des Parameters auf False wird die Datei nicht mehr geöffnet. Das passt jetzt so.
Gibt es für Punkt 1 auch noch eine Lösung? Es öffnet sich nach dem START des Makros immer ein Fenster wo man auf "Speichern" klicken muss. Im Code selbst habe ich einen Speicherpfad angegeben.
Lässt sich da etwas machen, das gleich gespeichert wird ohne den Button "Speichern" anzuklicken.
Danke für Deine Hilfe und Servus, Walter

Bild

Betrifft: AW: Zusatzfrage
von: Nepumuk
Geschrieben am: 22.04.2015 12:57:35
Hallo,
na dann lass do einfach die Methode GetSaveAsFilename weg.
Gruß
Nepumuk

Bild

Betrifft: AW: Speichern unter variabel als pdf
von: Stephan
Geschrieben am: 22.04.2015 08:19:43
Hallo Nepumuk,
vielen Dank für die schnelle Antwort.
Soweit funktioniert das Ganze nur möchte ich nun die Namensvergabe ( hier "Test.pdf" ) variabel gestalten.
Wenn ich zuvor im Code einen String befülle und den Code dann wie folgt ändere - erhalte ich ein leeres Dateinamensfeld obwohl in der Variablen strDateiname der richtige Name drinsteht:

Public Sub PDF_Export()
    Dim vntReturn As Variant
    vntReturn = Application.GetSaveAsFilename(InitialFileName:=strDateiname, _
        FileFilter:="PDF-Datei (*.pdf), *.pdf)", Title:="PDF erzeugen")
    If vntReturn <> False Then
        Call ThisWorkbook.ExportAsFixedFormat(Type:=xlTypePDF, _
            Filename:=vntReturn, Quality:=xlQualityStandard, _
            IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=True)
    End If
End Sub
Was mache ich falsch ?
Danke für Deine Hilfe !
Stephan

Bild

Betrifft: AW: Speichern unter variabel als pdf
von: Nepumuk
Geschrieben am: 22.04.2015 10:24:48
Hallo Stephan,
kann ich nicht sagen da ich nicht weiß wie dein Programm aussieht, wo und wie die Variable deklariert ist und wo und wie sie gefüllt wird.
Gruß
Nepumuk

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Speichern unter variabel als pdf"