Clever-Excel-Forum

Normale Version: Excel Datei mit VBA auf individuellem Desktop speichern
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

ich stehe vor folgendem Problem:

Ich habe einen Button und dieser soll die aktuelle Mappe auf dem Desktop als PDF Datei abspeichern und öffnen.
Der Name soll in dem Beispiel jetzt mal "Test" sein.
Allerdings bekommen viele unterschiedliche Leute das Dokument, d.h. der jeweilige Desktop muss jedes Mal neu gesucht werden.
Anbei mein Code - dieser funktioniert auch, benennt die Datei aber "DesktopTest"...

Ideen? :)



Als_PDF_speichern Makro
'

'

ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        CreateObject("WScript.Shell").SpecialFolders("Desktop") & "Test" & ".pdf", _
        IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, _
        OpenAfterPublish:=True


EDIT: Es speichert es doch nicht auf dem Desktop, sondern in meinem Profil, das sollte eig. nicht so sein.
Moin!
Mit
Environ("UserProfile") & "\Desktop\"
landest Du auf dem jeweils aktivierten Desktop. 

Gruß Ralf
Danke erstmal.

Welchen Punkt lösche ich dafür bei mir raus? Bzw. wo setze ich diese Zeile hin?

Danke & Gruß
Nun,
so hast Du halt den Pfad, der zu Filename:= gehört.
Stehe ehrlich gesagt gerade etwas auf dem Schlauch und bekomme nur die Debug Fehlermeldung :/
(08.05.2022, 14:58)P4tt3x schrieb: [ -> ]Stehe ehrlich gesagt gerade etwas auf dem Schlauch ...

das geht Andern auch so. 

P4tt3x schrieb:Allerdings bekommen viele unterschiedliche Leute das Dokument, d.h. der jeweilige Desktop muss jedes Mal neu gesucht werden.

Was meinst du damit?  Sollen die unterschiedlichen Leute die Datei direkt auf Ihren Desktop bekommen?  Wie soll das gehen? Hast du überall Adminzugriff und Ordnerfreigaben?  Und sind die Rechner der Leute immer an? 
Dein Desktopordner ist immer in deinem Userprofil.   

Erleuchte uns.
[Hauch von Ironie]
Aha, ich bin erleuchtet!  19
Du willst also von Deinem Rechner aus eine Datei auf alle möglichen Desktops verteilen, und das Ganze gern auch mit einem Einzeiler in VBA …

Ich versuche ja auch schon seit längerem, per API zu steuern, dass von Jedem, der meine Antworten liest, automatisch 5 Euro auf mein Konto überwiesen werden.

Bei ralf_b klappt das zuverlässig ( 21
bei P4tt3x versuche ich bisher vergeblich, die Polymere dieses blöden Klebstoffs zu umgehen …

Und jetzt im Ernst:
Zitat:der jeweilige Desktop muss jedes Mal neu gesucht werden
Selbstverständlich!
Wie sollte das auch sonst gehen?
Selbst ein Virus muss erst einmal das Environment abgrasen.
Hallöchen,

Du hast auf (D)einem Rechner mehrere User?

Also mit Admin-Rechten sollte das fast kein Problem sein. Du klapperst alle Verzeichnisse unter c:\users\ durch, ausgenommen All Users, Default* und Öffentlich. Da brauchst Du auch keine API.

Ohne Admin-Rechte ginge es auch, wenn Du z.B. unter C:\Temp\ userspezifische Unterverzeichnisse anlegst und die Kollegen auf dem Desktop Verknüpfungen dorthin einrichten.

Oder die Kollegen machen eine Freigabe für Dich auf den ganzen Desktop oder schlimmstenfalls packst Du dort alles in einen Unterordner zwecks Freigabe ...

Die Verteilung machst Du dann per Script, da brauchst Du kein VBA.

Oder Du organisierst alles etwas anders, z.B. unter C:\Temp\das Programm und allgemeine Daten, und das Programm greift auf Userdaten auf dem Desktop oder wo auch immer in der Userstruktur zu.

Oder DU versendest die Excel-Datei und beim Öffnen / Ausführen wird selbige auf dem Desktop gespeichert.

Oder ...