Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Loesung: Sharepoint Datei existiert?

Forumthread: Loesung: Sharepoint Datei existiert?

Loesung: Sharepoint Datei existiert?
21.04.2020 15:35:23
MRUTor
Hallo zusammen,
fuer alle, die interessiert sind. Fuer Sharepoint Dateien.
Ich habe eine hilfreiche Funktion gefunden (endlich eine, die auch funktioniert) die feststellt, ob eine Datei auf dem vorgegebenen Pfad im vorgegebenen Ordner existiert. Man braucht dazu lediglich die https Adresse, also die URL der Datei. Die bekommt man leicht durch einen Debug.Print in der jeweiligen Datei, z.B.:

Sub URL_Datei()
Debug.Print ThisWorkbook.FullName
End Sub

Diesen dann als String an diese Funktion uebergeben:

Public Function F50_check_SP_File_Exists(URLStr As String) As Boolean
Dim oHttpRequest As Object
If Len(Trim(URLStr)) = 0 Then F50_check_SP_File_Exists = Empty: Exit Function
Set oHttpRequest = CreateObject("MSXML2.XMLHTTP.6.0")
With oHttpRequest
.Open "GET", URLStr, False ', [UserName], [Password]
.SetRequestHeader "Cache-Control", "no-cache"
.SetRequestHeader "Pragma", "no-cache"
.Send
End With
If oHttpRequest.Status = 200 Then
F50_check_SP_File_Exists = True
Else
F50_check_SP_File_Exists = False
End If
Set oHttpRequest = Nothing
End Function

und False or True abfragen. Z.B. so:

Sub start()
Dim strfile As String
strfile = "https://deine URL/deine Datei.xlsx"
If F50_check_SP_File_Exists(strfile) = False Then
MsgBox "File does not exist"
Exit Sub
Else
'was auch immer du machen willst
End If
End Sub
Viel Spass und Gruss Tor aus MRU
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Loesung: Sharepoint Datei existiert?
21.04.2020 16:17:21
Luschi
Hallo Tor aus MRU,
danke für den tollen Tipp, wurde sofort in die Excel-Schatzkiste berstaut.
Nur 1 Kleinigkeit;
If F50_check_SP_File_Exists(strfile) = False Then
beinhaltet eine doppelte Prüfung
Deshalb schreibe ich das so: If Not F50_check_SP_File_Exists(strfile) Then
Gruß von Luschi
aus klein-Paris
Anzeige
AW: Loesung: Sharepoint Datei existiert?
21.04.2020 16:44:34
MRUTor
Hi Luschi,
Danke fuer den Tip.
Gruss
;
Anzeige

Infobox / Tutorial

SharePoint Datei Überprüfen mit Excel VBA


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob eine Datei in SharePoint existiert, kannst Du eine benutzerdefinierte VBA-Funktion verwenden. Hier sind die Schritte:

  1. Öffne den Visual Basic for Applications (VBA) Editor in Excel.

    • Drücke ALT + F11, um den Editor zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke mit der rechten Maustaste auf „VBAProject (DeinWorkbookName)“.
    • Wähle „Einfügen“ und dann „Modul“.
  3. Füge die Funktion zur Prüfung der Datei ein:

    Public Function F50_check_SP_File_Exists(URLStr As String) As Boolean
       Dim oHttpRequest As Object
       If Len(Trim(URLStr)) = 0 Then F50_check_SP_File_Exists = Empty: Exit Function
       Set oHttpRequest = CreateObject("MSXML2.XMLHTTP.6.0")
       With oHttpRequest
           .Open "GET", URLStr, False
           .SetRequestHeader "Cache-Control", "no-cache"
           .SetRequestHeader "Pragma", "no-cache"
           .Send
       End With
       If oHttpRequest.Status = 200 Then
           F50_check_SP_File_Exists = True
       Else
           F50_check_SP_File_Exists = False
       End If
       Set oHttpRequest = Nothing
    End Function
  4. Verwende die Funktion in einem weiteren Sub:

    Sub start()
       Dim strfile As String
       strfile = "https://deine URL/deine Datei.xlsx"
       If Not F50_check_SP_File_Exists(strfile) Then
           MsgBox "Datei existiert nicht"
           Exit Sub
       Else
           ' Füge hier deinen gewünschten Code ein
       End If
    End Sub
  5. Ersetze die URL in strfile durch die tatsächliche URL Deiner SharePoint-Datei.


Häufige Fehler und Lösungen

  • Fehler: "Datei existiert nicht" wird immer angezeigt.

    • Lösung: Überprüfe die URL auf Tippfehler. Stelle sicher, dass die Datei tatsächlich im angegebenen SharePoint-Ordner vorhanden ist.
  • Fehler: Laufzeitfehler 91: Objektvariable oder With-Blockvariable nicht gesetzt.

    • Lösung: Stelle sicher, dass Du die Microsoft XML v6.0-Bibliothek aktiviert hast. Dies kannst Du über Extras > Verweise im VBA-Editor tun.

Alternative Methoden

Wenn Du keine VBA-Funktion verwenden möchtest, kannst Du auch die SharePoint-API direkt ansprechen oder die Datei manuell über den Browser überprüfen. In Excel gibt es jedoch keine eingebaute Funktion, die eine solche Überprüfung durchführt.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du die Funktion in einem praktischen Szenario verwenden kannst:

Sub CheckFile()
    Dim fileURL As String
    fileURL = "https://deine-url/ordner/datei.xlsx"

    If F50_check_SP_File_Exists(fileURL) Then
        MsgBox "Die Datei ist vorhanden!"
    Else
        MsgBox "Die Datei existiert nicht!"
    End If
End Sub

In diesem Beispiel wird überprüft, ob eine bestimmte Datei auf SharePoint vorhanden ist. Bei Erfolg wird eine entsprechende Nachricht angezeigt.


Tipps für Profis

  • Debugging: Verwende Debug.Print in Deinen Funktionen, um den Status und die Rückgabewerte zu verfolgen.
  • Fehlermanagement: Baue eine Fehlerbehandlung ein, um zu vermeiden, dass das Makro bei einem Fehler abstürzt.
  • Performance: Bei vielen Anfragen an SharePoint kann es sinnvoll sein, die Abfragen zu optimieren oder sie zu bündeln, um die Ladezeiten zu verkürzen.

FAQ: Häufige Fragen

1. Frage: Kann ich die Funktion auch in Excel Online verwenden?
Antwort: Die VBA-Funktion funktioniert nur in der Desktop-Version von Excel. Excel Online unterstützt kein VBA.

2. Frage: Was kann ich tun, wenn ich keinen Zugriff auf die SharePoint-Datei habe?
Antwort: Stelle sicher, dass Du die richtigen Berechtigungen für den Zugriff auf die Datei hast. Wende Dich an den Administrator Deines SharePoint-Servers.

3. Frage: Gibt es eine Möglichkeit, die URL automatisch zu generieren?
Antwort: Ja, Du kannst die URL für die Datei aus den Metadaten des Dokuments oder über eine andere Excel-Funktion generieren, wenn die Struktur konstant bleibt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige