Per Makro als PDF auf Desktop speichern egal welcher User/PC
#11
Hallo,
wenn doch doch Onedrive,dannmüssten doch doch die BAckslahes in Slashes gewandelt werden, oder?

Probiere das mal durch:

Code:
Function GetOnedriveFolderPath(strPath As String) As String
'Die Arbeitsmappe muss sich im OneDrive Ordner befinden.
   
    Dim strPathLocalOnedriveFolder As String 'ie: C:\Benutzer\....\Onedrive
    Dim strWorkbookPath As String 'Variable: the adapted Path replaced "/"
    Dim arrPathSubStrings() As String 'The splitted Workbookpath, Split() reutrns an Array
    Dim fso As Object 'Object: the standard FileObject with VBScript FileSystemObject (activated with References)
       
    strPathLocalOnedriveFolder = Environ("OneDrive") 'the local Onedrive Paht
   
    arrPathSubStrings = Split(strPath, "/", 5)
    strWorkbookPath = Replace(arrPathSubStrings(4), "/", "\")
   
    Set fso = CreateObject("Scripting.FileSystemObject")
   
    GetOnedriveFolderPath = fso.BuildPath(strPathLocalOnedriveFolder, strWorkbookPath)

End Function

Teste es im Direktfenster [STRG]+ [G] mit:

Code:
?GetOnedriveFolderPath(ThisWorkbook.Path)

Aufrufen kannst du esin deinem jetzt könntest du noch abfangen, ob sich die Datei (also deine Arbeitsmappe) in einem "reinen" lokalen Ordner befindet oder in einem OneDrive Ordner und enstprechent das SetoTop nur mit .... wb.Path oder eben mit GetOneDrifeFolderPath... mit:

Code:
Set oTop = oFSO.GetFolder(GetOnedriveFolderPath(wb.path))
theTroother
mag auch vbasteleien.de
Antworten Top
#12
Hallo Daniel555,

ich würde es so machen.

    Dim fileSaveName As String
    Dim Dateiname As String
    fileSaveName = ActiveWorkbook.FullName
    Dateiname = Left(fileSaveName, Len(fileSaveName) - 26) & Range("N5") & "_" & Range("D3") & "_" & "KW" & Range("I5") & ".pdf"  ' -26 "anpassen" ist die länge des Namens deiner Datei inklusive Endung
    Range("A1:Q42").ExportAsFixedFormat Type:=xlTypePDF, Filename:=Dateiname, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Somit wird die PDF File immer dort abgelegt wo das Original liegt.

MfG Hans
Antworten Top
#13
(25.09.2024, 04:11)Daniel555 schrieb: Nein der zweite Laptop is genau der selbe Laptop.

Was spuckt der Code denn aus, wenn Du den im VBA-Editor im Direktbereich eingibst? (strg+g zum Einblenden)

Code:
? environ("userprofile") & "\Desktop\"
Gruss Ralf
Antworten Top
#14
Hallo,

ich gehe mal davon aus, daß du den gleichen Laptop meinst?
Was ist mit der Frage von mumpel?
Antworten Top


Gehe zu:


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