Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Datei an 3 Orten speichern, zweimal .xls und einmal als .pdf
#1
Guten Morgen zusammen,

ich habe eine Tabelle, die ich schon an 2 Speicherorten ablege. Dazu nutze ich folgenden Code:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Application.DisplayAlerts = False
Const LW = "c:\"
Const ordner = "c:\Eigene Dateien\Dokumente"
ChDrive LW
ChDir ordner
ActiveWorkbook.SaveCopyAs Filename:=ActiveWorkbook.Name
Application.DisplayAlerts = True
End Sub

Nun möchte ich gerne noch einen dritten Speicherort einfügen und an diesem die Tabelle als .pdf ablegen.

Ich hoffe das ist auch mit dem Code möglich.

Vielen Dank für eure Hilfe.

Liebe Grüße Robbie1985
Antworten Top
#2
Hallo Robbie,

wie du eine Datei als pdf exportierst, kannst du problemlos mit dem Makrorekorder aufzeichnen.
Schöne Grüße
Berni
Antworten Top
#3
Hallo,

so etwas komprimierter:


Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
On Error Resume Next
Application.DisplayAlerts = False
Const ordner = "c:\Eigene Dateien\Dokumente\"
ActiveWorkbook.SaveCopyAs Filename:=ordner & ActiveWorkbook.Name & ".xlsm"
ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ordner & ActiveWorkbook.Name & ".pdf", Quality:=xlQualityStandard _
, IncludeDocProperties:=False, IgnorePrintAreas:=False, OpenAfterPublish:=False
Application.DisplayAlerts = True
End Sub
Grüße aus Nürnberg
Armin
Ich benutze WIN 10 (64bit) und Office 19 (32bit)
[-] Folgende(r) 1 Nutzer sagt Danke an EbyAS für diesen Beitrag:
  • Robbie1985
Antworten Top
#4
Danke für die Antworten,

@ EbyAS - der Code geht leider nicht, es wird weder eine .xlsm noch eine .pdf Datei erzeugt. wenn ich den Code aus meinem ersten Post eingebe, wird eine Datei erzeugt.

Mfg
Antworten Top
#5
Hat doch geklappt, vielen Dank für die Hilfe :)
Antworten Top
#6
Hallo,

ich hab den folgenden Code jetzt als Modul in meiner Excel Tabelle eingetragen. Es legt auch eine .pdf Datei ab, aber wenn ich in der Tabelle was ändere, dann wird die Änderung nicht als .pdf gespeichert.

VBA Code:

Sub PDFDatei()

    'Tabelle als PDF speichern
    Sheets("Arbeitsplanung Druck").ExportAsFixedFormat xlTypePDF, Filename:="M:\Datenaustausch\AM Döbeln\Arbeitsplanung.pdf", _
    from:=1, To:=1
    Sheets("Arbeitsaufträge").Range("A451:GW495").ExportAsFixedFormat xlTypePDF, Filename:="M:\Datenaustausch\AM Döbeln\Arbeitsauftrag_Spät.pdf"
    Sheets("Arbeitsaufträge").Range("A496:GW540").ExportAsFixedFormat xlTypePDF, Filename:="M:\Datenaustausch\AM Döbeln\Arbeitsauftrag_Nacht.pdf"

End Sub

Ich habe noch 2 andere Tabellen, in denen ich den gleichen Speicherort angegeben habe, funktioniert das Speichern einer Änderung auch nicht.

Ich weiß leider nicht was ich falsch mache.

Anbei noch die Tabelle.

Vielen Dank für eure Hilfe


Angehängte Dateien
.xlsm   Arbeitsplanung AM Döbeln Woche Testxlsm.xlsm (Größe: 859,75 KB / Downloads: 4)
Antworten Top
#7
Ich kann dein Problem nicht nachvollziehen. Sobald ich den Code ausführe, werden 3 pdf-Dateien erstellt. Bei Änderungen in den Tabellen werden die pdf überschrieben (nach erneuter Codeausführung).
Führst du den Code auch aus? Von selbst passiert da gar nix, du musst schon aktiv den Code aufrufen.

Es ist übrigens nicht besonders hilfreich, wenn du Hilfe im Forum suchst und den Blattschutz inkl. Kennwort in der Datei lässt.
Schöne Grüße
Berni
Antworten Top
#8
Tut mir leid, ich hab vergessen das Passwort mit anzugeben. Es lautet: Test100%

Wie führe ich denn den Code aus? Geht das über eine Tastenkombination oder kann ich das in den Code mit einbringen, dass das automatisch geht?
Antworten Top
#9
Wie führst du denn den Code beim ersten Mal aus? Du hast geschrieben
Zitat:Es legt auch eine .pdf Datei ab, aber wenn ich in der Tabelle was ändere, dann wird die Änderung nicht als .pdf gespeichert.
Das impliziert doch, dass du den Code schon einmal ausgeführt hast. Und genau gleich führst du ihn wieder aus.

Zitat:kann ich das in den Code mit einbringen, dass das automatisch geht?
Das geht natürlich schon, aber ich glaube nicht, dass du das möchtest. Denn das würde bedeuten, dass der Code bei jeder Änderung in deiner Tabelle ausgeführt würde. Eine aktive Ausführung deinerseits ist da eindeutig zu bevorzugen. Da hast du mehrere Möglichkeiten:
  1. Reiter Ansicht - Makros --> Makro PDFDatei markieren und auf Ausführen klicken
  2. Einen Button in deiner Exceldatei anlegen, der mit dem Makro verknüpft wird
  3. Eine Tastenkombination zuweisen, das geht wieder unter Reiter Ansicht - Makros - Optionen --> Dort kannst du in das kleine Feld ein Zeichen deiner Wahl eintragen, in Kombination mit Strg ist das dann deine Tastenkombination
  4. In der Schnellstartleiste einen Button anlegen. Wie das geht, erfährst du hier: https://support.office.com/de-de/article...7f84eb5d2c
Schöne Grüße
Berni
Antworten Top
#10
Guten Abend,

ich habe meine Tabelle mit einem Makro versehen, wie ihr das beschrieben habt.

Folgendes Makro nutze ich:

Sub PDFDatei()

    'Tabelle als PDF speichern
    Sheets("Arbeitsplanung Druck").ExportAsFixedFormat xlTypePDF, Filename:="C:\Users\Laptop\Documents\Arbeitsplanung.pdf", _
    from:=1, To:=1
    Sheets("Arbeitsaufträge").Range("A1:F5").ExportAsFixedFormat xlTypePDF, Filename:="C:\Users\Laptop\Documents\Arbeitsauftrag_Spät.pdf"
    Sheets("Arbeitsaufträge").Range("A10:F15").ExportAsFixedFormat xlTypePDF, Filename:="C:\Users\Laptop\Documents\Arbeitsauftrag_Nacht.pdf"

End Sub

Das klappt auch alles wunderbar. Um das Makro zu starten habe ich MisterBurns rat befolgt und in der Schnellstartleiste einen Button angelegt, mit dem ich das Makro vor dem Beenden starten kann. Wie gesagt, das klappt prima, die Dateien werden genau so gespeichert, wie ich das möchte.

Nun zu meinem Problem:

Ich möchte gerne eine zweite Datei erstellen und das Makro nutzen. Dazu folgender Code:

Sub PDFDatei()

    'Tabelle als PDF speichern
    Sheets("Arbeitsplanung WE").ExportAsFixedFormat xlTypePDF, Filename:="C:\Users\Laptop\Documents\Arbeitsplanung WE.pdf", _
    from:=1, To:=1
    
End Sub

Das Problem ist, wenn ich in der zweiten Datei auf den Makro Button klicke, dann geht immer die erste Datei mit auf und ich kann das Makro nicht ausführen. Es kommt immer "Laufzeitfehler '9': Index außerhalb des gültigen Bereiches".

Wie kann ich denn das Problem beheben? 

Vielen Dank für eure Hilfe im Voraus.

PS: Ich möchte gerne auch noch eine dritte Datei mit dem Makro Button aktivieren.
Antworten Top


Gehe zu:


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