Datei temporär speichern, unabhängig vom User

Bild

Betrifft: Datei temporär speichern, unabhängig vom User
von: Marie
Geschrieben am: 25.10.2015 09:13:55

Hallo,
ich nutze VBA, um ein Pdf eines Blattes in Excel zu erstellen, was soweit auch funktioniert.
Mein Problem:
Die ursprüngliche Datei ist in einem Ordner gespeichert, in dem der User keine Speicherrechte hat, so dass ich dort das Pdf nicht temporär speichern kann.
Wie kann ich die Datei temporär auf dem Rechner / Laufwerk des Users speichern und das unabhängig vom User ?
Ideal wäre der Desktop des Users, ansonsten ginge auch ein Temp oder anderer Ordner.
Bisher habe ich folgendes, diesen Pfad scheint aber nicht jeder User zu haben - LValue ist dabei ein Zeitstempel:

Filename:="C:\Users\Public\" & ThisWorkbook.Name & "_" & LValue & ".pdf"

Kann mir jemand weiterhelfen ?
LG,
Marie

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Hajo_Zi
Geschrieben am: 25.10.2015 09:19:06
Hallo Marie,

Sub DesktopPfad()
    ' Code für Desktop-Pfad von Kl@us-M. (Clever-Forum.de)
    Dim WSHShell As Object
    Set WSHShell = CreateObject("wscript.Shell")
    strDesktopPath = WSHShell.SpecialFolders.Item("Desktop")
    Set WSHShell = Nothing
End Sub


Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Marie
Geschrieben am: 25.10.2015 09:24:08
Hallo Hajo,
vielen Dank !
Wie integriere ich das in meinen Code, d.h. was gebe ich dann als Filename an ?
LG,
Marie

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Hajo_Zi
Geschrieben am: 25.10.2015 09:26:15
Hallo Marie,
unter Option Explicit
Dim strDesktopPath as String
Im Makro
DesktopPfad
Und der Ordner steht dann auf
strDesktopPath
Gruß Hajo

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Marie
Geschrieben am: 25.10.2015 09:34:53
Hallo Hajo,
vielen Dank.
Sorry, ich muss nochmal nachfragen, weil ich bei VBA noch ganz am Anfang bin:
Bis jetzt habe ich einen Button, der folgendes Makro aufruft (mit Deiner Zeile am Anfang) und hier geht es um den Filename - ist der Filename dann einfach nur strDesktopPath ... ?
Option Explicit

Sub PrintPdf()
    Dim LValue As String
    Dim strDesktopPath as String
    LValue = Format(Now(), "yyyymmddhhmmss")
    
    ActiveWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
    Filename:="C:\Users\Public\" & ThisWorkbook.Name & "_" & LValue & ".pdf", _
    Quality:=xlQualityStandard, _
    IncludeDocProperties:=False, _
    IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
End Sub
LG,
Marie

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Hajo_Zi
Geschrieben am: 25.10.2015 09:37:07
Hallo Marie,
dazu musst Du mich nicht Fragen, sondern den der Dir Dein Code vorgeschlagen hat. Ich war es nicht.
Ja auf strDesktopPath steht der Ordner.
Gruß Hajo

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Marie
Geschrieben am: 25.10.2015 09:45:24
Hallo,
kann mir jemand anderes hier weiterhelfen ?
LG,
Marie

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Hajo_Zi
Geschrieben am: 25.10.2015 09:50:06
warum sollte jemand anderes Helfen, wenn Du die gemachten Vorschläge nicht umsetzt. Und Meinst jemand anderes kann es besser und den Vorschlag setzt Du um.
Gruß Hajo

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Nepumuk
Geschrieben am: 25.10.2015 09:55:11
Hallo,
so:

Option Explicit

Public Sub PrintPdf()
    Dim LValue As String
    Dim strDesktopPath As String
    
    LValue = Format(Now(), "yyyymmddhhmmss")
    strDesktopPath = DesktopPath
    
    ThisWorkbook.ExportAsFixedFormat Type:=xlTypePDF, _
        Filename:=strDesktopPath & "\" & ThisWorkbook.Name & "_" & LValue & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=False, _
        IgnorePrintAreas:=False, OpenAfterPublish:=True
    
End Sub

Private Function DesktopPath() As String
    Dim WSHShell As Object
    Set WSHShell = CreateObject("wscript.Shell")
    DesktopPath = WSHShell.SpecialFolders.Item("Desktop")
    Set WSHShell = Nothing
End Function

Gruß
Nepumuk

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Marie
Geschrieben am: 25.10.2015 10:07:45
Hallo Nepumuk,
das ist super - vielen Dank dafür. Ist eine riesen Hilfe !
LG und einen schönen Sonntag,
Marie

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Marie
Geschrieben am: 25.10.2015 10:09:29
Leider gibt es hier auch Leute wie Dich, die nur sich selbst oder ihre Webseite profilieren wollen und an echter Hilfe gar kein Interesse haben - damit verschendest Du nur meine Zeit.

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Hajo_Zi
Geschrieben am: 25.10.2015 10:13:56
ich hatte nur 2 Sachen vorgeschlagen und beide wurden nicht realisiert, da Dein Berater gesagt hat mache es so.
Gruß Hajo

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Luschi
Geschrieben am: 25.10.2015 10:25:32
Hallo Marie,
Deine Vorwürfe gegen über Hajo kann ich in diesem Fall nicht nachvollziehen - auch wenn ich sonst mal mit Hajo nicht einer Meinung bin.
Vielleicht solltest Du Dich in Deiner Freizeit mal mehr mit Vba beschäftigen, statt nur auf vorgefertigte Musterlösungen zu warten.
Gruß von Luschi
aus klein-Paris
PS: ich bin mir sicher, daß Du von Nepumuk's Anwort kaum die Bohne verstehst - Hauptsache es klappt!

Bild

Betrifft: AW: Datei temporär speichern, unabhängig vom User
von: Schneider
Geschrieben am: 25.10.2015 10:22:40
Marie,
Mit der folgende Zeile erhälst du dein gewünschtes Ergebnis:
Filename:=Environ("Public") & "\" & ThisWorkbook.Name & "_" & LValue & ".pdf"
Das Systemkommando "Environ" gibt Inhalte von Systemvariablen zurück, z.B.:
Environ("Public") = Pfad des öffentlichen Ordner
Environ("Temp") = Pfad des temporären Verzeichnis
Environ("Usersprofile") = Pfad des persönlichen Ordners des angemeldeten Nutzer
Gruß, Chris

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datei temporär speichern, unabhängig vom User"