VBA Zugriff auf SharePoint-Verzeichnis
31.01.2022 16:19:45
paul
Auf dem neuen SharePoint365 haben wir ein Verzeichnis mit ein paar Ordnern für die letzten Jahre. Also "2018" ... bis "2022". In diesen Ordnern liegen 15 gleich strukturierte (aber von verschiedenen Ländern ausgefüllte) ".xlsx" Dateien und je eine ".xlsm". Die ".xlsm" ist mit einem Makro dafür zuständig, eben über dieses Makro aus den anderen Excel Dateien bestimmte Daten zu kopieren und zu konsolidieren.
Jetzt haben wir vor einer Weile vom "alten" zum "neuen" SharePoint-System gewechselt. Seit dem bringen die Verlinkung innerhalb der Makros auf die Verzeichnisse mich echt auf die Palme.
Ich habe die grobe Makrostruktur mal im Anhang. Explizit geht es aber vermutlich um diesen Schnipsel (Pfad1 und Pfad2 hier nur zur Veranschaulichung):
sPfad1 = "//FIRMA.sharepoint.com/sites/000123/Reporting/2022/"
sPfad2 = "C:\Users\BENUTZERNAME\OneDrive - NAME\Reporting\2022\"
sDatei = Dir(CStr(sPfad & "*.xlsx"))
Letzte Woche funktionierte es beim 5. Mal wieder. Diese Woche wieder nicht... Mit Pfad1 soll es eigentlich getan sein und auf das SharePoint-Verzeichnis zugegriffen werden. Das Makro öffnet dann einmal alle ".xlsx" Dateien, kopiert die Daten raus uns gut.
Es kommt entweder Fehlernummer 0 oder 52. Beim Debugging bringt er mich dann immer zu Dir(). Es wird vermutlich an dem Link liegen, aber was genau läuft hier falsch?
Bei Pfad2 klappt es jedoch ohne Probleme. Hier habe ich aus dem SP Verzeichnis eine OneDrive Verknüpfung auf meinem PC angelegt. Das ist aber nur ein Workaround und würde in dem Fall nur bei mir funktionieren.
Hier nochmal die Struktur des Makros:
Public Sub Daten_mehrerer_Dateien_zusammenfuehren_Neu()
On Error GoTo errExit
'Q= Quelle, Z=Ziel
Set WBZ = ThisWorkbook
With Application
.ScreenUpdating = False
.EnableEvents = False
.AskToUpdateLinks = False
.Calculation = xlCalculationManual
End With
'Setzt Dateireferenz
'sPfad = "//FIRMA.sharepoint.com/sites/000123/Reporting/2022/"
sPfad = "C:\Users\BENUTZERNAME\OneDrive - NAME\Reporting\2022\"
sDatei = Dir(CStr(sPfad & "*.xlsx"))
Do While sDatei ""
Set WBQ = Workbooks.Open(sPfad & sDatei)
Set wsQ = WBQ.Worksheets("CiE")
Set wsZ = WBZ.Worksheets("SpD")
Application.CutCopyMode = False
WBQ.Close
sDatei = Dir()
Loop
With Application
Exit Sub
errExit:
End Sub