Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Datei in einem Sharepoint mit VBA speichern

Datei in einem Sharepoint mit VBA speichern
03.06.2024 16:05:09
Thomas
Hallo,
ich möchte mittels VBA aus einer Exceldatei raus Dateien in einem Sharepoint speichern, allerdings bekomme ich es nicht hin, leider auch nicht mit google oder GPT, so hoffe ich das ihr mir helfen könnt.

Um den Pfad dynamisch zu erstellen, durchlaufe ich das Verzeichnis wo die Dateien liegen und hole mir über "Mid" den Teil den ich aus dem Dateinamen brauche um mit diesem dann in einer Suchtabelle ("Verzeichnis") den korrekten Namen zu suchen und dann an den Sharepoint pfad dran zu hängen.

Ich bekomme dann aber immer hier
fso.CopyFile quelleDatei, sharePointURL & "/" & quelleDatei
den Fehler Laufzeitfehler 52 Dateiname oder -nummer falsch

Was muss ich ändern um in dem Sharepoint speichern zu können?

Danke




Sub DateienKopierenUndInSharePointSpeichern()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim sharePointURL As String
Dim rngGefunden As Range
Dim quelleVerzeichnis As String
quelleVerzeichnis = ThisWorkbook.Path & "/PDF/"
Dim filePart As String
Dim quelleDatei As Object
Dim zielVerzeichnis As String

' Arbeitsblatt "Verzeichnis" festlegen
Dim wsVerzeichnis As Worksheet
Set wsVerzeichnis = ThisWorkbook.Worksheets("Verzeichnis")

' Durchsuche das Quellverzeichnis nach Dateien
For Each quelleDatei In fso.GetFolder(quelleVerzeichnis).Files
' Suche den Dateinamen in Spalte A der Tabelle "Verzeichnis"
filePart = Mid(quelleDatei.Name, InStrRev(quelleDatei.Name, "-") + 1, InStr(quelleDatei.Name, ".") - InStrRev(quelleDatei.Name, "-") - 1)
Set rngGefunden = wsVerzeichnis.Columns("A").Find(What:=filePart, LookIn:=xlValues, LookAt:=xlWhole)

If Not rngGefunden Is Nothing Then
' Zielverzeichnis aus Spalte B der Tabelle "Verzeichnis" abrufen
zielVerzeichnis = rngGefunden.Offset(0, 1).Value & "/Test/"


sharePointURL = "https://mx.sharepoint.com/sites/Test/zifische%20Angelten/" & zielVerzeichnis
fso.CopyFile quelleDatei, sharePointURL & "/" & quelleDatei

End If
Next quelleDatei

MsgBox "Die Dateien wurden kopiert und im SharePoint gespeichert."

End Sub

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
03.06.2024 18:48:12
Yal
Hallo Thomas,

"quelleDatei" in der Schleife
For Each quelleDatei In fso.GetFolder(quelleVerzeichnis).Files

hat den Datentyp File-Object.

Dementsprechend ist der aufruf von CopyFile so zu gestalten
fso.CopyFile quelleDatei.Path, sharePointURL & "/" & quelleDatei.Name


Allgemein ist bei intensiver Verwendung von Objekte aus einer Library zu empfehlen, diese Library einzubinden: in VB-Editor, "Extras", "Verweise..." und Haken bei "Microsoft Scripting Runtime"

Sub DateienKopierenUndInSharePointSpeichern()

'Unter Anbindung ("Extras", "Verweise..") von
'Microsoft Scripting Runtime
Dim fso As New FileSystemObject
Dim quelleDatei As File
Dim sharePointURL As String
Dim rngGefunden As Range
Dim filePart As String

' Durchsuche das Quellverzeichnis nach Dateien
For Each quelleDatei In fso.GetFolder(ThisWorkbook.Path & "/PDF/").Files
' Suche den Dateinamen in Spalte A der Tabelle "Verzeichnis"
filePart = Right(quelleDatei.Name, InStrRev(quelleDatei.Name, "-") + 1)
filePart = Left(filePart, InStr(quelleDatei.Name, ".") - 1)
Set rngGefunden = ThisWorkbook.Worksheets("Verzeichnis").Columns("A").Find(What:=filePart, LookIn:=xlValues, LookAt:=xlWhole)

If Not rngGefunden Is Nothing Then
' Zielverzeichnis aus Spalte B der Tabelle "Verzeichnis" abrufen
sharePointURL = "https://mx.sharepoint.com/sites/Test/zifische%20Angelten/" & rngGefunden.Offset(0, 1).Value & "/Test/"
fso.CopyFile quelleDatei.Path, sharePointURL & "/" & quelleDatei.Name
Debug.Print "Gespeichert: " & quelleDatei.Name
Else
Debug.Print "nicht gesp.: " & quelleDatei.Name
End If
Next quelleDatei
MsgBox "Die Dateien wurden kopiert und im SharePoint gespeichert."
End Sub


VG
Yal
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 08:34:47
Oberschlumpf
Hi Thomas,

schau dir mal das hier an:
https://www.herber.de/forum/archiv/1976to1980/1976538_pruefen_ob_Verzeichnis_in_Sharepoint_vorhanden.html

In dem Beitrag geht es zwar "nur" um den DIR-Befehl, aber auch fso.CopyFile... "erwartet" in seinen Parameter-Werten genau wie DIR Pfadangaben in Form von

"LW:\Ordnername\Dateiname"

LW = Laufwerksbuchstabe, z Bsp C

Du aber versuchst, als Ziel einen Pfad in Form einer Internetadresse zu übergeben, deswegen erhältst du Fehler 52...

Vielleicht hilft ja mein Workaround im obigen Beitrag auch für dich.

Ciao
Thorsten
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 15:49:08
Thomas
Hallo Thorsten,
vielen Dank für den Tip, ein erster schneller Test hatte direkt erfolg, ich werd das jetzt mal komplett einbauen wie ich es brauche und mich dann hoffentlich nicht mehr melden weil es funktioniert hat :-)!

Danke
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 17:05:20
Thomas
Hallo nochmal,
auch die weiteren Test waren erfolgreich und so funktioniert es genau wie es soll, dafür schonmal vielen Dank.

Jetzt bin ich aber noch über zwei Punkte gestoßen, zum einen gibt es in einer der Sharepoint Bibliotheken eine Pflicht Spalte "Monat" kann man die auch über VBA befüllen und in einer anderen Bibliothek gibt es die Pflicht die Dateien "einzuchecken", auch da wäre es super wenn ich das über VBA lösen könnte, wäre super wenn ihr da noch ein paar Tips hättet.

Danke

MFG
Thomas
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 18:26:01
Oberschlumpf
Hi Thomas,

bitte was ist eine Sharepoint Bibliothek?

Anhand deiner nur-Beschreibung für deine - neuen - Probleme verstehe zumindest ich....nix.

Mit VBA ist sehr viel möglich.

Aber dazu müsstest du uns mal 1 oder 2 Bsp-Dateien mit Bsp-Daten in den richtigen Zeilen/Spalten zeigen und....dann noch mal genau erklären, was wann wie wo warum passieren soll.

Ciao
Thorsten
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 21:07:27
Oberschlumpf
Moin,

ich weiß nich, ob deine Antwort an mich gerichtet war, aber ich sag trotzdem danke, weil wieder was dazu-gelesen...mal sehen, ob ich das auch lerne :-)
Auf jeden Fall aber hat auch Thomas etwas, woran er sich versuchen kann.

Ciao
Thorsten
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 23:07:10
schauan
Hi,

ja, ist für Euch beide. Der Punkt ist, dass man einer Datei zusätzliche Informationen mitgeben bzw. auf Sharepoint verwalten kann. Ist natürlich hier auch die Frage wo das mit dem Monat hingehört. :-)
https://support.microsoft.com/de-de/office/erstellen-einer-spalte-in-einer-liste-oder-bibliothek-2b0361ae-1bd3-41a3-8329-269e5f81cfa2

Für das Einchecken hab ich noch diesen Link
https://stackoverflow.com/questions/51606517/how-to-check-in-a-file-on-sharepoint

Allerdings hatte ich bislang nur mit Drittanbieter-Software zu tun und dadurch keine Veranlassung und Möglichkeit, da mit VBA was zu experimentieren :-( Könnte auch sein, dass für den Einen oder Anderen "programmatischen" Zugriff spezielle Rechte oder andere Voraussetzungen erforderlich sind.
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
05.06.2024 09:53:08
Thomas
Hallo zusammen,
@Thorsten, mit Sharepoint Bibliothek meinte ich eine Dokumentenbibliothek im Sharepoint.

Die Daten die jetzt dank deiner Hilfe über VBA in die jeweilige Dokumentenbibliothek geladen werden sind immer Monatsdaten und in der Dokumenthenbibliothek gibt es eine Spalte wo der jeweilige Monat eingetragen wird, damit man darüber dann auch Filtern/Sortieren kann.
Sieht dann in etwa so im Sharepoint aus Sieht dann in etwa so im Sharepoint aus Userbild
Und diese Spalte würde ich dann für die einzelnen Dokumente auch gerne über VBA füllen, den Aktuelle Monat kann ich ja relativ leicht in VBA ermitteln, nur wie die Spalte dann gefüllt wird ist mir noch nicht ganz klar.

@Schauan, danke für die Links, die werde ich mir mal ansehen und hoffentlich verstehen, so das ich das Problem dann gelöst bekomme.

Danke für eure Hilfe
MFG
Thomas
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
05.06.2024 11:32:04
Oberschlumpf
Hi Thomas,

ich hab auf OneDrive nur Zugriff über den Office365-WEB-Zugang, sieht bei mir so aus:

Userbild

Hier kann ich nicht (oder ich finde nicht) einstellen, dass ich in der Dateiübersicht weitere Spalten, z Bsp "Monat", sehen will.

Du schreibst ja auch von Sharepoint, nicht OneDrive.
Meinst du damit das Gleiche, oder meinst du den eingerichteten OneDrive-Zugriff im Windows-Explorer?

Bei letzterem kann ich nicht helfen, da ich OneDrive im Win-Explorer deaktiviert habe, weil ich es nicht brauche.
Nun denn, ich wünsch weiter viel Erfolg.

Ciao
Thorsten

P.S. Vielleicht bietet es sich ja eh an, einen neuen Beitrag zu erstellen, da ja deine neuen Fragen mit der im Erstbeitrag gestellten und mittlerweile gelösten Frage eigentlich nix zu tun haben...nur so ne Idee...
Anzeige
AW: Datei in einem Sharepoint mit VBA speichern
04.06.2024 07:05:19
Thomas
Hallo Yal,
vielen Dank für deine Rückmeldung,
leider bekomme ich dann hier
fso.CopyFile quelleDatei.Path, sharePointURL & quelleDatei.Name
(Ich hab den "/" entfernt, da er ansonsten doppelt war)
immer den Fehler Laufzeitfehler 52 Dateiname oder -nummer falsch

Wenn ich mir die quelleDatei.Path im Direktbereich ansehe, dann ist der Wert korrekt, damit kann ich auch im Explorer direkt die Datei öffnen.
Die sharePointURL ist auch korrekt, wenn ich diese im Webbrowser eingebe, dann wird der entsprechende Ordner im Sharepoint geöffnet.
Die quelleDatei.Nameist auch korrekt, aber trotzdem kommt der Fehler

Hast du ggf. noch eine idee?
MFG
Thomas
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige