Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: aus Sharpoint Dateien abrufen

aus Sharpoint Dateien abrufen
06.08.2020 15:46:18
Manuel
Hallo zusammen,
wir sind vor kurzem auf Sharepoint umgezogen und seit dem funktioniert eine Datei nicht mehr.
Über eine Userform werden bestimmte Werte aus Excel angezeigt. Zusätzlich wird aus einer Ordnerstruktur ein Bild angezeigt und die Dateien aufgelistet die sich in diesen Ordner befinden.
Die Programmierung hängt sich immer an der DIR-Funktion auf. Öffne ich den Pfad über wshshell.Run wird er korrekt angezeigt.
Hier ein Auszug aus der Datei
Sub Bild_laden()
strPath = "https://sharepoint.com/.../.../"
ImagePfad = strPath & TextBox1 & "/" & TextBox1 & ".jpg"
If Dir(ImagePfad) = "" Then
Frame2.Picture = LoadPicture("")    'kein Bild
Frame1.Caption = "Bild" 'Bildtext setzen
Else
Frame2.PictureSizeMode = fmPictureSizeModeStretch      'Bild auf Rahmen einpassen
Frame2.Picture = LoadPicture(ImagePfad) 'Bild hochladen
Frame1.Caption = "Bild zu Mat.-Nr.: " & TextBox1    'Bildtext setzen
End If
'Dateien aus Ordner der SAP-Nr lesen
Dim Datei
Dim Ordner
Dim FSO As Object
Set FSO = CreateObject("Scripting.filesystemobject")
Me.ListBox2.Clear
SAP_Nr = TextBox1 & "/"
If Dir(strPath & SAP_Nr) = "" Then
ListBox2.Clear
Else
For Each Datei In FSO.getfolder(strPath & SAP_Nr).Files
Me.ListBox2.AddItem Datei.Name
Next
For Each Ordner In FSO.getfolder(strPath & SAP_Nr).subfolders
Me.ListBox2.AddItem Ordner.Name
Next
End If
End Sub
Wie bekomme ich per VBA den Pfad korrekt aufgelistet?
Im Pfand sind keine Leer- oder Sonderzeichen enthalten
Danke für Eure Hilfe
Gruß
Manuel Sauer
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
aus Sharpoint Dateien abrufen
09.08.2020 12:28:46
Anton
Hallo Manuel,
probier's hiermit (ungetestet, weil ich kein Zugriff auf ein Sharepoint habe):
Code in Zwischenablage:

Sub sharepoint_verbinden()
  Dim objNetzwerk As Object  
  Dim strPath As String, strBenutzername As String, strPasswort As String  
  Set objNetzwerk = CreateObject("WScript.Network")  
  strPath = "https://sharepoint.com/.../.../" 'anpassen
 '  strBenutzername = "Benutzername"
 '  strPasswort = "Passwort"
  If Not CreateObject("Scripting.FileSystemObject").DriveExists("b") Then    
    On Error Resume Next    
   'sharepoint verbinden
    objNetzwerk.MapNetworkDrive "b:", strPath ', , strBenutzername, strPasswort
    If Err.Number <> 0 Then  
      MsgBox Err.Description, vbCritical, "Fehler bei Verbindung!"
    Else
      Bild_laden
    End If  
  End If  
End Sub  
Sub Bild_laden()
  ImagePfad = "b:\" & TextBox1 & "\" & TextBox1 & ".jpg"
 
 'mach weiter
End Sub  
Sub sharepoint_trennen()
  If CreateObject("Scripting.FileSystemObject").DriveExists("b") Then  
   'wichtig!sonst funktioniert das Trennen nicht!
    ChDrive ("c:\")
   'sharepoint trennen
    CreateObject("WScript.Network").RemoveNetworkDrive "b:"
  End If  
End Sub

mfg Anton
Anzeige
AW: aus Sharpoint Dateien abrufen
10.08.2020 13:07:07
Manuel
Hallo Anton,
danke für den Code, nun habe ich das Problem, dass ich nicht das Passwort jedes einzelnen Nutzers kenne.
Gibt es da noch eine andere Möglichkeit Daten abzurufen?
Gruß Manuel
AW: aus Sharpoint Dateien abrufen
10.08.2020 15:48:39
Anton
Hallo Manuel,
das Problem, dass ich nicht das Passwort jedes einzelnen Nutzers kenne.
ist IMHO auch nicht nötig, weil laut der Online Hilfe zur MapNetworkDrive-Methode
sind strBenutzer und strKennwort optional:
Wenn Sie den Freigabepunkt mit den Angaben eines anderen Benutzers als des aktuellen zuordnen, können Sie strBenutzer und strKennwort angeben.
mfg Anton
Anzeige
AW: aus Sharpoint Dateien abrufen
11.08.2020 13:17:58
Manuel
Hallo Anton,
ha, mein Fehler entdeckt, habe natürlich den Code in den einem Sub zusammen gefasst und gekürzt. Dann habe ich "SharePoint trennen" vor meiner eigentlichen "LoadPicture" gesetzt, so hat der nie ein Bild angezeigt. Ich habe dann gedacht ich muss das Passwort und den Nutzername noch angeben, damit das was passiert.
Jetzt funzt zumindest erstmal die Anzeige wieder, mit den Speichern befasse ich mich erstmal später, sollte ich aber jetzt selbst hinkriegen.
Danke Anton, in diesem Forum wird man immer kompetent und schnell beraten.
Gruß Manu
Anzeige
AW: aus Sharpoint Dateien abrufen
11.08.2020 13:19:59
Manuel
Thread erledigt.
AW: aus Sharpoint Dateien abrufen
11.08.2020 15:58:36
Manuel
Hallo Anton,
zu früh gefreut, habe den Rechner eben neu gestartet und Fehler: der Nutzer ist nicht authentifiziert.
Vielleicht habe ich auch irgendwo was vorhin nicht gespeichert.
Der Pfad funktioniert jedenfalls. Kann man die Authentifizierung extra einleiten?
Hier nochmal mein Code
Sub
Dim objNetzwerk As Object
Dim strBenutzername As String, strPasswort As String
Set objNetzwerk = CreateObject("WScript.Network")
If Not CreateObject("Scripting.FileSystemObject").DriveExists("b") Then
On Error Resume Next
' sharepoint verbinden
objNetzwerk.MapNetworkDrive "b:", strPath ', , strBenutzername, strPasswort   ' _
kurze Version
If Err.Number  0 Then
MsgBox Err.Description, vbCritical, "Fehler bei Verbindung!"
Else
ImagePfad = "b:\" & TextBox1 & "\" & TextBox1 & ".jpg"  'kurze Version
SAP_NR = "b:\" & TextBox1 & "\"  'kurze Version
End If
End If
If Dir(ImagePfad) = "" Then
Frame2.Picture = LoadPicture("")    'kein Bild
Frame1.Caption = "Bild" 'Bildtext setzen
Else
Frame2.PictureSizeMode = fmPictureSizeModeStretch      'Bild auf Rahmen einpassen
Frame2.Picture = LoadPicture(ImagePfad) 'Bild hochladen
Frame1.Caption = "Bild zu Mat.-Nr.: " & TextBox1    'Bildtext setzen
End If
End Sub
Gruß Manu
Anzeige
AW: aus Sharpoint Dateien abrufen
11.08.2020 16:12:08
Manuel
Hallo Anton,
ich weiß, ich schreib mit mir alleine. Aber habe eben den Fehler wieder selbst entdeckt. Habe die Datei auf meinen Desktop abgelegt gehabt, das ging dann auch prima bis zum Neustart des Rechners. Wenn die Excel-Datei im SharePoint liegt und von da aus geöffnet wird ist alles gut.
Gruß Manu
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Excel-Daten aus SharePoint abrufen


Schritt-für-Schritt-Anleitung

Um Daten aus einem SharePoint-Ordner in Excel abzurufen, kannst Du VBA verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. VBA-Umgebung öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Modul erstellen: Rechtsklicke im VBA-Projektfenster auf dein Projekt und wähle Einfügen > Modul.

  3. Code einfügen: Füge den folgenden Code in das Modul ein:

    Sub sharepoint_verbinden()
       Dim objNetzwerk As Object
       Dim strPath As String
    
       Set objNetzwerk = CreateObject("WScript.Network")
       strPath = "https://sharepoint.com/.../.../" ' Pfad anpassen
    
       If Not CreateObject("Scripting.FileSystemObject").DriveExists("b") Then
           On Error Resume Next
           objNetzwerk.MapNetworkDrive "b:", strPath
           If Err.Number <> 0 Then
               MsgBox Err.Description, vbCritical, "Fehler bei Verbindung!"
           End If
       End If
    
       Call Bild_laden
    End Sub
    
    Sub Bild_laden()
       Dim ImagePfad As String
       ImagePfad = "b:\" & TextBox1 & "\" & TextBox1 & ".jpg"
    
       If Dir(ImagePfad) = "" Then
           Frame2.Picture = LoadPicture("")    ' kein Bild
           Frame1.Caption = "Bild"             ' Bildtext setzen
       Else
           Frame2.Picture = LoadPicture(ImagePfad) ' Bild hochladen
           Frame1.Caption = "Bild zu Mat.-Nr.: " & TextBox1 ' Bildtext setzen
       End If
    End Sub
  4. Führe das Skript aus: Du kannst das Skript nun ausführen, um eine Verbindung zu SharePoint herzustellen und die Daten abzurufen.


Häufige Fehler und Lösungen

  1. Fehler: "Der Nutzer ist nicht authentifiziert."

    • Stelle sicher, dass Du die Excel-Datei direkt von SharePoint öffnest und nicht von einem lokal gespeicherten Pfad.
  2. Fehler: "Fehler bei Verbindung!"

    • Überprüfe den strPath auf korrekte Schreibweise. Möglicherweise musst Du auch die Berechtigungen auf dem SharePoint überprüfen.
  3. Bilder werden nicht geladen.

    • Überprüfe, ob der Pfad zu den Bildern korrekt ist und ob die Bilder tatsächlich im angegebenen Ordner vorhanden sind.

Alternative Methoden

Wenn Du keine VBA verwenden möchtest, kannst Du auch Power Query in Excel verwenden, um Daten aus einem SharePoint-Ordner abzurufen:

  1. Gehe zu Daten > Daten abrufen > Aus Online-Diensten > Von SharePoint-Ordner.
  2. Gib die URL des SharePoint-Ordners ein und folge den Anweisungen zum Abrufen der Daten.

Praktische Beispiele

Ein nützliches Beispiel für die Verwendung von vba filesystemobject sharepoint:

Sub Dateien_auflisten()
    Dim FSO As Object
    Dim Ordner As Object
    Dim Datei As Object
    Dim strPath As String

    strPath = "b:\"
    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set Ordner = FSO.GetFolder(strPath)

    For Each Datei In Ordner.Files
        Debug.Print Datei.Name ' Auflisten der Dateien im Direktfenster
    Next
End Sub

Dieses Skript listet alle Dateien im angegebenen SharePoint-Ordner auf.


Tipps für Profis

  • Verwende On Error Resume Next: Dies kann helfen, Fehler zu ignorieren, aber sei vorsichtig, da es auch versteckte Fehler verursachen kann.
  • Automatisiere die Authentifizierung: Falls Nutzerpasswörter benötigt werden, kann eine Authentifizierung über Windows-Anmeldeinformationen in Erwägung gezogen werden.

FAQ: Häufige Fragen

1. Wie kann ich das Passwort speichern, um es nicht jedes Mal eingeben zu müssen? Du kannst Windows-Anmeldeinformationen verwenden, um die Authentifizierung zu automatisieren, wodurch die Passworteingabe entfällt.

2. Funktioniert dieser Code in allen Excel-Versionen? Der VBA-Code sollte in den meisten modernen Excel-Versionen (2010 und höher) funktionieren, die die Verwendung von VBA unterstützen.

3. Was ist, wenn die Dir-Funktion nicht funktioniert? Stelle sicher, dass der Pfad korrekt ist und dass Du die benötigten Berechtigungen hast, um auf den SharePoint-Ordner zuzugreifen.

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