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.

DefaultFilePath mit Makro ändern
#1
Hallo

Folgende Ausgangslage; ein Berechnungs-Excel ist auf einem schreibgeschütztem Server gespeichert. Nutzer speichern das Excel neu auf ihren lokalen PC, füllen das aus etc.

Wenn Sie fertig sind, hab ich ein Makro geschrieben, welches über einen Klicken auf ein Bild aus den richtigen Arbeitsblätter ein PDF erstellt. Um das PDf anzuzeigenn, muss dieses jedoch zuerst irgendwo abgespeichert werden. Da die Datei vom schreibgeschützten Server stammt, kann das PDF dort nicht gespeichert werden, das Makro versucht es dort abzuspeichern, obwohl die Datei nun lokal auf dem PC des Nutzers liegt.

Wie kann ich nun den Speicherort für das PDF-File ändern, dass es den Speicherort des neu gespeicherten Excel-File übernimmt?

Hier der Code des Makro:

Sub Druckvorschau_Klicken()

    'Druckvorschau_Klicken Makro
    Worksheets(Array("Eingabe", "Lastfall A -20°C", "Lastfall B +5°C", "Lastfall C -5°C", "Lastfall D -5°C")).PrintPreview

End Sub
Sub PDF_Klicken()

    Application.DefaultFilePath = Application.ActiveWorkbook.path
    
    'Setzt die einzelnen Blätter aktiv
    ThisWorkbook.Sheets(Array("Eingabe", "Lastfall A -20°C", "Lastfall B +5°C", "Lastfall C -5°C", "Lastfall D -5°C")).Select
    
    'Erstellt PDF der selektierten Blätter
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, OpenAfterPublish:=True
    
    'Setzt "Eingabe" wieder aktiv
    Sheets("Eingabe").Select
    
End Sub

Wie zu sehen, hab ich es mit dem Application.DefaultFilePath probiert, jedoch erfolglos.

Das eigentliche Problem ist, dass ich keinen fixen Pfad vorgeben kann, das jeder "Dokumente"-Ordner des Nutzers seinen Benutzername beinhaltet.
Antworten Top
#2
Hallo,

Du brauchst doch die Zeile
 Application.DefaultFilePath = Application.ActiveWorkbook.path
nur wegzulassen. Wink

Gruß Uwe
Antworten Top
#3
Dann versucht das Makro die PDF-Datei auf dem schreibgeschützten Server zu speichern und das Makro schlägt fehlt, weil das der usprüngliche DefaultFilePath war.
Antworten Top
#4
(09.01.2019, 14:05)Lopezoli schrieb: Dann versucht das Makro die PDF-Datei auf dem schreibgeschützten Server zu speichern und das Makro schlägt fehlt, weil das der usprüngliche DefaultFilePath war.

Auch bei einem neu gestarteten Excel?

Gruß Uwe
Antworten Top
#5
Willst Du damit sagen, dass das ein Problem ist

Zitat:Das eigentliche Problem ist, dass ich keinen fixen Pfad vorgeben kann, das jeder "Dokumente"-Ordner des Nutzers seinen Benutzername beinhaltet.
Antworten Top
#6
Hallo,

MsgBox Environ("USERPROFILE")
VG Sabina

bei mir läuft Win 7 32-Bit - Office 2010 Pro Plus 32-Bit und Office 2016 Pro Plus 32-Bit
Wer auch weiter Hilfe erwartet, sollte sich nicht zu schade sein, ein kurzes Feedback zu geben.
Antworten Top
#7
@Flotter Feger: Das ergibt bei mir z.B. den falschen Pfad.
Liegt zwar an mir, wie ich den Rechner "verkonfiguriert" habe, aber das machen andere auch.

Eine andere Variante, mit der ich noch keine Probleme hatte

PHP-Code:
Function GetDocumentPathC() As String

Dim WshShell 
As Object
    
    Set WshShell 
CreateObject("WScript.Shell")
    GetDocumentPathC WshShell.SpecialFolders("MyDocuments")
    
End 
Function 

PS Ich habe noch eine andere Variante. Die ist dann mit APIs und wo wir dem OP nicht mal google zumuten, lass ich die lieber stecken.

PS 1 Environ("Userprofile") ist schon richitg, aber Environ("Userprofile") & "\Documents" ist bei mir falsch
Antworten Top
#8
(09.01.2019, 14:08)Kuwer schrieb:
(09.01.2019, 14:05)Lopezoli schrieb: Dann versucht das Makro die PDF-Datei auf dem schreibgeschützten Server zu speichern und das Makro schlägt fehlt, weil das der usprüngliche DefaultFilePath war.

Auch bei einem neu gestarteten Excel?

Ja, auch bei Restart bleibt der Pfad. Ich hatte es verwechselt mit ChDir und ChDrive, welche dann den (geänderten) CurDir ergeben, welcher sich nach Neustart wieder auf den DefaultFilePath einstellt. Blush
Wenn Du Dich nicht unbeliebt machen willst, darfst Du den DefaultFilePath für andere Benutzer niemals einfach ungefragt ändern!

Gruß Uwe
Antworten Top


Gehe zu:


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