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.

Excel VBA PDF Export auf OneDrive
#1
Hallo,
ich habe eine Excel Datei wo ich mit VBA raus gerne ein PDF auf meinem OneDrive wo auch die Exceldatei liegt speichern, allerdings bekomme ich dann immer die Fehlermeldung "Laufzeitfehler 1004 Das Dokument wurde nicht gespeichert. Das Dokument ist möglicherweise geöffnet, oder beim Speichern ist ein Fehler aufgetreten."

Den Speicher String habe ich so zusammengesetzt, 
Code:
strPfad = ThisWorkbook.Path & "/Berichte/listen/" & "liste-" & Month(Date) & "-" & Now & ".pdf"

Das PDF soll dann so generiert werden
Code:
wksTemp.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad, IncludeDocProperties:=True, OpenAfterPublish:=True

Wenn ich den Part "Filename" rausnehme, dann wird das PDF auch korrekt geöffnet und angezeigt, nur das Speichern auf dem OneDrive klappt wohl nicht. Schreibrechte habe ich grundsätzlich auf das OneDrive...

Was kann da falsch laufen, bzw. was müsste ich tun?

Danke
Antworten Top
#2
Hallöchen,

1)
schaue mal, was ThisWorkbbok.Path enthält
2)
Zeichne mal das Speichern als pdf auf

siehst Du den Unterschied? Du musst den Pfad aus 2) nehmen.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Mila
Antworten Top
#3
Hi,
was meinst du mit Aufzeichnen? Mit dem Makro Rekorder? Dann erstellt er mir nur ein leeres Modul ohne Inhalt wenn ich das Tabellenblatt über als "Als Adobe PDF speichern" wähle.

Zitat:1)
schaue mal, was ThisWorkbbok.Path enthält
Das hatte ich schon gemacht und der Pfad sieht anders aus wie erwartet, allerdings nutze ich den gleichen Pfad um das Arbeitsblatt als neue Arbeitsmappe zu speichern und das klappt ohne Probleme, nur beim PDF nicht...

Die Excelmappe wird so gespeichert und das funktioniert
Code:
'Das Arbeitsblatt wird in die Zwischenablage kopiert und als neue Arbeitsmappe mit der korrekten Bezeichnung als Excel Datei gespeichert
.Copy
    With ActiveWorkbook
    .SaveAs ThisWorkbook.Path & "/Berichte/listen/" & "liste-" & Month(Date) & "-" & Now & ".xlsx"
    .Close
    End With
[size=large][/size]
Und die PDF so und da klappt es nicht

Code:
Dim strPfad
strPfad = ThisWorkbook.Path & "/Berichte/listen/" & "listen-" & Month(Date) & "-" & Now & ".pdf"
'Das Arbeitsblatt wird als PDF Exportiert
wksTemp.ExportAsFixedFormat Type:=xlTypePDF, Filename:=strPfad, IncludeDocProperties:=True, OpenAfterPublish:=True

EDIT:

Hab jetzt nochmal was probiert und das Problem glaub ich jetzt gefunden, "Now" macht die Probleme, wenn ich das durch "Date" ersetze, dann klappt es wie es soll.....

Wenn ich "Now" formatiere, dann klappt das speichern auch
Code:
Format(Now, "dd.mm.yyyy hh mm")
Antworten Top
#4
Moin!
(09.02.2023, 05:14)Mila schrieb: Das hatte ich schon gemacht und der Pfad sieht anders aus wie erwartet, …
Richtig!
ThisWorkbook.Path ergibt so etwas:
https://d.docs.live.net/a57c84517c01/Test

Kopierst Du den Pfad aus dem Explorer, erhältst Du den "Spiegelpfad":
C:\Users\Nutzername\OneDrive\Test

Mit VBA ermittelst Du ihn so:
Environ("Onedrive")
ergibt
C:\Users\Nutzername\OneDrive

Kannst Du damit etwas anfangen?

Gruß Ralf

Sehe jetzt Dein EDIT
Now() liefert in Deutschland den für einen Dateinamen ungültigen Doppelpunkt als Uhrzeittrenner.
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)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Mila
Antworten Top
#5
Hi,
super Danke für die Info, wie gesagt, das Problem lag aber nicht am Pfad, sondern am "Now" ich hab den Pfad unverändert gelassen auf " ThisWorkbook.Path" und nur das Now formatiert und dann klappt es wie es soll.
Antworten Top
#6
Hallöchen,

noch ein kleiner Hinweis. Mal unabhängig davon, wie die Trennzeichen von Datum oder Zeit aussehen, gibt es in WINDOWS und UNIX "verbotene" Zeichen für Pfade und Dateinamen, wobei UNIX da etwas überschaubarer ist Smile . Hier mal für die druckbaren Zeichen:


Windows
<>:"/\|?*

UNIX
/
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Mila
Antworten Top


Gehe zu:


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