Office: (Office 2016 Mac) Excel Blatt als PDF speichern mit VBA

Helfe beim Thema Excel Blatt als PDF speichern mit VBA in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Leute wie könnte ein VBA Code aussehen wenn ich ein Excel Blatt als PDF mit Datum und einem bestimmten Namen speichern möchte. Speicherort soll... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von polat78, 16. Oktober 2022.

  1. Excel Blatt als PDF speichern mit VBA


    Hallo Leute
    wie könnte ein VBA Code aussehen wenn ich ein Excel Blatt als PDF mit Datum und einem bestimmten Namen speichern möchte.
    Speicherort soll ein Ort sein in der nur die PDF's gespeichert sind.
    Super wäre es wenn die PDF Datei sich öffnet nach dem ich Sie gespeichert habe.
    Danke euch jetzt schon für eure Hilfe

    Grüße aus Stuttgart
     
    polat78, 16. Oktober 2022
    #1
  2. Exl121150 Erfahrener User
    Hallo,

    Code:
    Option Explicit
    
    Sub AktivesBlatt_Als_PDF()
    '
        Dim strDatum As String, strDateiname As String, strPfad As String
     
        strDatum = Format$(Now, "DD.MM.YYYY")
        strDateiname = "DeinDateiname " & strDatum  'Dateiname mit heutigem Datum am Ende des Namens
        strPfad = "C:\PDF-Verzeichnis"              'Dateipfad
     
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
            Filename:=strPfad & "\" & strDateiname & ".pdf", _
            Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
            OpenAfterPublish:=True
    End Sub
    

    Speicherort und Dateinamen wirst schon du selber festlegen müssen - wie auch sollte ich diese kennen?
     
    Exl121150, 16. Oktober 2022
    #2
  3. Hallo
    vielen dank für die schnelle antwort.
    Leider bringt er mir fehler code 1004.
    füge mal bilder hinzu.

     
    polat78, 16. Oktober 2022
    #3
  4. Excel Blatt als PDF speichern mit VBA

    Sorry
    nach dem ich Option Explicit gelöscht habe hat es zwar funktioniert aber er speichert es in dem falschen ordner
    unter diesem namen (siehe Bild)

     
    polat78, 16. Oktober 2022
    #4
  5. Hallo Anton Exl
    nach langen rummachen funktioniert es soweit doch leider ist im Dateinamen am anfang
    ein Leerzeichen (Siehe Bild).
    Was ich vergessen hatte zu erwähnen ist das das Datum z.b unter Zeile
    C2 eingetragen wird. Falls du wissen möchtest warum das So ist, da die Nachtschicht z.b am 17.10 um 23 Uhr beginnt
    aber das Schichtbuch erst morgens um 5 einträgt.Dann ist es aber schon der 18.10.
    Was müsste ich ändern das er dieses Datum übernimmt. Super wäre es wenn
    der Dateiname wie folgt aussehen würde: Schichtbuch vom 17.10.2022. KW 41
    Wenn es gespeichert ist öffnet die PDF Datei nicht automatisch.

    Ich bedanke mich herzlichst für deine Hilfe.

    So steht der Code bei mir :

    Sub AktivesBlatt_Als_PDF()
    '
    Dim strDatum As String, strDateiname As String, strPfad As String

    strDatum = Format$(Now, "DD.MM.YYYY")
    strDateiname = "Schichtbuch vom " & strDatum
    strPfad = "/Volumes/ScanDisk1/1094 Central Point Master/Als XLSM Daten/PDF /"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    FileName:=strPfad & " " & strDateiname, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    End Sub





     
    polat78, 17. Oktober 2022
    #5
  6. Exl121150 Erfahrener User
    Hallo,
    1) Ich musste mich danach richten, was du mir mitgeteilt hast:
    - dass es ein Dateiname (aber welcher?) sein sollte, der das Datum enthalten solle;
    - dass es ein Speicherort sein solle, der nur PDFs enthält (aber sollte ich den kennen - wie denn auch?)

    2) Dass dein Dateiname am Anfang ein Leerzeichen enthält, liegt eindeutig an deiner Programmiererei:
    strPfad = "/Volumes/ScanDisk1/1094 Central Point Master/Als XLSM Daten/PDF /"
    '....
    FileName:=strPfad & " " & strDateiname

    Zu was soll nämlich das " " gut sein in der Zeile davor? Das muss doch lauten:
    FileName:=strPfad & strDateiname
    Übrigens: der 17.10.2022 liegt nicht in KW 41, sondern in KW 42 (nach internationaler Datumsnorm) oder aber in KW 43 (nach USA-Norm). Ich habe die ISO-Norm (=international) eingefügt.
    Code:
    Option Explicit
    
    Sub AktivesBlatt_Als_PDF()
       '
       Dim DatumVal As Date
       Dim strDatum As String, strKalWoche As String
       Dim strDateiname As String, strPfad As String
      
       With ActiveSheet
      
          DatumVal = .Range("C2").Value
          strDatum = Format$(DatumVal, "DD.MM.YYYY")
          strKalWoche = "KW " & WorksheetFunction.IsoWeekNum(DatumVal)
        
          strDateiname = "Schichtbuch vom " & strDatum & ". " & strKalWoche
          strPfad = "/Volumes/ScanDisk1/1094 Central Point Master/Als XLSM Daten/PDF /"
      
          .ExportAsFixedFormat Type:=xlTypePDF, _
             Filename:=strPfad & strDateiname, _
             Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
             OpenAfterPublish:=True
            
       End With
    End Sub
    
    Was die Beschreibung der ExportAsFixedFormat-Methode des Worksheet-Objektes betrifft, gibt es von Microsoft in folgendem Link eine vollständige Dokumentation:
    Worksheet.ExportAsFixedFormat-Methode (Excel) | Microsoft Learn
    Dort wird auch die Bedeutung des "OpenAfterPublish"-Parameters beschrieben.
     
    Exl121150, 17. Oktober 2022
    #6
  7. Hallo Anton
    Tausend Dank. Es funktioniert Super bis auf zwei Sachen.
    1. Wird das Blatt auf 4 PDF Seiten Quer dargestellt. Bei deinem ersten Code waren es eine Seite und Hochformat.
    2. Die Pdf wird nicht Automatisch geöffnet.

    Trotzdem Tausend dank an dich das du mir hilfst.

    Gruß Polat

     
    polat78, 17. Oktober 2022
    #7
  8. Excel Blatt als PDF speichern mit VBA

    Guten Morgen
    gestern hat alles soweit , bis auf das das die PDF Datei sich automatisch öffnet , auf meinem Mac Funktioniert.
    Dann dachte ich ich versuche es mal auf einem Windows Rechner. Doch es Funktioniert nicht.
    Mir wird Laufzeitfehler 1004 angezeigt.
    Dann wollte ich es wieder auf meinem Mac versuchen. Da ist es nun so das nach dem ich es ausführe versucht wird die Datei auszudrucken. Fenster von meiner Drucker App öffnet sich.
    Ich habe den Code den du mir geschickt hast kopiert und versucht aber es funktioniert nicht :-(
    Ich weis nicht was ich falsch mache.

    Gruß Polat


     
    polat78, 18. Oktober 2022
    #8
  9. Was müsste ich an diesem Code ändern damit mir nach dem Speichern ein "Schichtbuch gespeichert" angeziegt wird.
    Das ist der Aktuelle Code :
    Option Explicit

    Sub AktivesBlatt_Als_PDF()
    '
    Dim DatumVal As Date
    Dim strDatum As String, strKalWoche As String
    Dim strDateiname As String, strPfad As String

    With ActiveSheet

    DatumVal = .Range("C2").Value
    strDatum = Format$(DatumVal, "DD.MM.YYYY")
    strKalWoche = "KW " & WorksheetFunction.IsoWeekNum(DatumVal)

    strDateiname = "Schichtbuch vom " & strDatum & ". " & strKalWoche
    strPfad = "/Volumes/ScanDisk1/1094 Central Point Master/Als XLSM Daten/PDF/"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, _
    FileName:=strPfad & strDateiname, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True

    End With
    End Sub







     
    polat78, 27. Oktober 2022
    #9
  10. RPP63_neu hat Ahnung
    Moin!
    Windows und MacOS sind nun mal 2 Welten!
    Du musst also per Code feststellen, welches OS und welcher Pfad-Trenner vorliegen und Dir den Pfad entsprechend basteln.
    Bei Windows beginnt ein kompletter Pfad immer mit einem Laufwerksbuchstaben nebst Doppelpunkt.
    Der Trenner ist unter Windows ein Backslash \, beim Mac ist es wohl meist ein Slash /.
    Du ermittelst das Zeichen mittels Application.PathSeparator
    Mal Quick And Dirty:
    Code:
    Dim Pfad$
    Pfad = "|Ordner1|Ordner2|Ordner3|"
    Pfad = Replace(Pfad, "|", Application.PathSeparator)
    
    Gruß Ralf
     
    RPP63_neu, 28. Oktober 2022
    #10
  11. Guten Morgen Ralf
    vielen dank erst mal.Ich bin jetzt ein bisschen durcheinander.
    Ist deine Antwort für diese Frage ?
    " Was müsste ich an diesem Code ändern damit mir nach dem Speichern ein "Schichtbuch gespeichert" angezeigt wird."
    Ich kenne mich mit VBA nicht aus.Diesen Code (Siehe Oben) habe ich von einem Lieben User bekommen.
    Gruß Polat
     
  12. Exl121150 Erfahrener User
    Hallo,

    wenn du nicht weißt, wie sich bei deinem Betriebssystem bzw. Dateisystem der Pfad zusammensetzt (Inhalt der Variablen "strPfad"), da kann ich dir nicht weiterhelfen. Diese grundlegenden Dinge musst du selbst wissen. Ich habe auf meinem Rechner Windows10 installiert, wobei dieser Rechner Teil eines lokalen Windows-Netzwerkes ist. Aber selbst da ist es so, dass ich Verzeichnisse, die auf meinem Rechner liegen, anders ansprechen muss als Verzeichnisse im lokalen Netzwerk.

    Im folgenden VBA-Code habe ich dir den Dateinamen (Inhalt der Variablen "strDatei") um die sogenannte Dateierweiterung (".PDF") ergänzt, wobei ich nicht weiß, wie sich diese beim Mac darstellt. Unter Windows ist diese zuständig dafür, dass Windows weiß, welche Programme zum Öffnen, zum Ausführen, zum .... zuständig sind.
    Dafür ist der nachfolgende VBA-Code überhaupt nicht zuständig. Das ist einerseits allein Aufgabe deiner Druckersteuerung bzw. des PDF-Anzeigeprogramms bzw. andererseits deiner Arbeitsblattinhalte, die ins PDF-Format konvertiert werden.
    Man könnte zusätzlich noch 2 Parameter angeben (.From:=...) bzw. (.To:=....) um die Seitenzahlen zu begrenzen, die für die Veröffentlichung ins PDF-Dokument herangezogen werden.

    Code:
    Option Explicit
    
    Sub AktivesBlatt_Als_PDF()
       '
       Dim DatumVal As Date
       Dim strDatum As String, strKalWoche As String
       Dim strDateiname As String, strPfad As String
     
       With ActiveSheet
     
          DatumVal = .Range("C2").Value
          strDatum = Format$(DatumVal, "DD.MM.YYYY")
          strKalWoche = "KW " & WorksheetFunction.IsoWeekNum(DatumVal)
      
          strDateiname = "Schichtbuch vom " & strDatum & ". " & strKalWoche & ".PDF"
          strPfad = "/Volumes/ScanDisk1/1094 Central Point Master/Als XLSM Daten/PDF/"
     
          .ExportAsFixedFormat Type:=xlTypePDF, _
             Filename:=strPfad & strDateiname, _
             Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
             OpenAfterPublish:=True
          
       End With
    End Sub
    
     
    Exl121150, 28. Oktober 2022
    #12
Thema:

Excel Blatt als PDF speichern mit VBA

Die Seite wird geladen...
  1. Excel Blatt als PDF speichern mit VBA - Similar Threads - Excel Blatt PDF

  2. Excel - ganze Zeile in anderes Blatt verschieben, wenn Bedingung erfüllt

    in Microsoft Excel Hilfe
    Excel - ganze Zeile in anderes Blatt verschieben, wenn Bedingung erfüllt: Hallo zusammen Ich bin leider ein absoluter Excel-Banause und habe folgendes Problem: Ich habe eine Materialliste für Baugespanne. Dabei möchte ich mit zwei Blättern arbeiten (Baugespanne...
  3. Excel Blatt einzeln versenden

    in Microsoft Excel Hilfe
    Excel Blatt einzeln versenden: Wie kann ich ein einzelnes excel Blatt per Email versenden?
  4. Drucken eines Blatts auf nur einer Seite in Excel für Mac

    in Microsoft Excel Tutorials
    Drucken eines Blatts auf nur einer Seite in Excel für Mac: Drucken eines Blatts auf nur einer Seite in Excel für Mac Excel für Microsoft 365 für Mac Excel 2019 für Mac Excel 2016 für Mac Mehr... Weniger...
  5. Mehr als ein Blatt von Excel in eine .pdf Datei speichern

    in Microsoft Excel Hilfe
    Mehr als ein Blatt von Excel in eine .pdf Datei speichern: Hallo an alle, meine Frage an euch betrifft das Kopieren von Excel Blättern in eine .pdf Datei Mein Code bearbeitet jedes Blatt und wenn drin ein Pivottable vorhanden ist, dann wird der...
  6. Excel nur 1 Blatt darstellen

    in Microsoft Excel Hilfe
    Excel nur 1 Blatt darstellen: Hallo werte Forengemeinde, ich habe eine banale Frage. Kann ich mir in Excel das Tabellenblatt/A4 als Seitennlayout als eine einzelne Seite anzeigen lassen? Ich will mir ein Dokument zur...
  7. Excel Blatt von einer Datei in eine andere kopieren

    in Microsoft Access Hilfe
    Excel Blatt von einer Datei in eine andere kopieren: Hallo, ich habe in einer Excel-Datei (Datei1) auf einem Blatt (Blatt1) eine Liste. Basierend auf dieser Liste soll 1. Ein Blatt (Blatt2) aus einer anderen Datei (Datei2) kopiert werden 2. Auf...
  8. Wie bestimmte Zellen aus mehreren Blättern kopieren

    in Microsoft Excel Hilfe
    Wie bestimmte Zellen aus mehreren Blättern kopieren: Hallo, ich habe ein Problem, bei dem ich trotz Googlen als Laie einfach nicht weiterkomme. Ich möchte Zahlen aus ganz bestimmten Zellen (siehe unten), die über mehrere Tabellenblätter verteilt...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden