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

Checken, ob File auf SharePoint existiert

Forumthread: Checken, ob File auf SharePoint existiert

Checken, ob File auf SharePoint existiert
20.07.2018 14:01:42
Oliver
Hallo zusammen,
ich habe eine kurze Frage:
ich habe einen Code, der öffnet mehrere Excel sheets und kopiert daraus Werte.
Ich habe eine For schleife, da ich dies mit 12 Dateien machen muss. (alle andere Pfade und andere Namen)
Ich speichere die Pfade und Dateinamen als Strings (Ich weiß, nicht schön, aber zu mehr reichen meine Skills aktuell nicht, und ich muss fertig werden ;-))
Ich habe nun einen Check eingebaut, ob das File überhaupt existiert. Bei meinen Tests mit lokalen Pfaden (C:\…) hat das auch einwandfrei geklappt.
Nun liegen diese Dateien aber auf einem SharePoint. Alles andere funktioniert, an den Variablen kanns also nicht liegen.
Kann mir jemand einen Trick verraten?
hier mein Code Schnipsel:

For n = 1 To 12                                                                                  _
_
_
_
If Len(Dir(Projectpath(n) & Projectfile(n))) = 0 Then                                        _
_
_
_
MsgBox "The file '" & Projectfile(n) & "' can not be found "
Else

Ich meine gelesen zu haben, das "DIR" auf Sharepointseiten (URLs) nicht funktioniert... Habe aber leider keine Alternative im Kopf.
Vielen Dank für Eure Ideen
Oliver
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Checken, ob File auf SharePoint existiert
20.07.2018 15:44:36
Marla
Hallo,
mit dem Code von Kenneth Hobson aus dem mrexcel forum gehts:
(https://www.mrexcel.com/forum/excel-questions/567315-check-if-url-exists-so-then-return-true.html)
Function Test_URLExists()
Dim url As String
url = "http://www.mrexcel.com/forum/showthread.php?t=567315"
MsgBox url, vbInformation, URLExists(url)
url = "http://xwww.mrexcel.com/forum/showthread.php?t=567315"
MsgBox url, vbInformation, URLExists(url)
End Function
Function URLExists(url As String) As Boolean
Dim Request As Object
Dim ff As Integer
Dim rc As Variant
On Error GoTo EndNow
Set Request = CreateObject("WinHttp.WinHttpRequest.5.1")
With Request
.Open "GET", url, False
.Send
rc = .StatusText
End With
Set Request = Nothing
If rc = "OK" Then URLExists = True
Exit Function
EndNow:
End Function

Anzeige
Ups falschen Namen verwendet...
20.07.2018 15:45:38
Peter(silie)
heiße hier nur Peter(silie)
;
Anzeige
Anzeige

Infobox / Tutorial

Überprüfung, ob eine Datei auf SharePoint existiert


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob eine Datei auf SharePoint existiert, kannst du die VBA Dir Funktion in Kombination mit einer Fehlerbehandlung verwenden. Da Dir bei SharePoint-URLs nicht zuverlässig funktioniert, ist es sinnvoll, alternative Methoden zu verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

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

  2. Füge ein neues Modul hinzu.

  3. Kopiere den folgenden Code in das Modul:

    Function URLExists(url As String) As Boolean
       Dim Request As Object
       Dim rc As Variant
       On Error GoTo EndNow
       Set Request = CreateObject("WinHttp.WinHttpRequest.5.1")
       With Request
           .Open "GET", url, False
           .Send
           rc = .StatusText
       End With
       Set Request = Nothing
       If rc = "OK" Then URLExists = True
       Exit Function
    EndNow:
       URLExists = False
    End Function
  4. Rufe die Funktion auf, um zu überprüfen, ob eine Datei existiert:

    Dim filePath As String
    filePath = "https://deinsharepoint.com/pfad/zur/datei.xlsx"
    If URLExists(filePath) Then
       MsgBox "Die Datei existiert."
    Else
       MsgBox "Die Datei existiert nicht."
    End If
  5. Teste den Code, um sicherzustellen, dass die Datei auf SharePoint gefunden wird.


Häufige Fehler und Lösungen

  • Fehler: "Die Datei konnte nicht gefunden werden."

    • Lösung: Überprüfe, ob die URL korrekt ist und dass du die richtigen Berechtigungen hast, um auf die Datei zuzugreifen.
  • Fehler: "Fehler beim Senden der Anfrage."

    • Lösung: Stelle sicher, dass die Internetverbindung aktiv ist und dass die URL korrekt eingegeben wurde.
  • Fehler: "VBA kann das Objekt nicht finden."

    • Lösung: Überprüfe, ob die WinHttp.WinHttpRequest.5.1 Bibliothek in deinem System registriert ist.

Alternative Methoden

Wenn die VBA Dir Funktion nicht funktioniert, kannst du folgende Alternativen ausprobieren:

  1. Webanfragen mit WinHttp: Wie im oben genannten Code gezeigt, ist die Verwendung von WinHttp eine zuverlässige Methode, um zu überprüfen, ob eine Datei auf SharePoint existiert.

  2. SharePoint API nutzen: Eine weitere Möglichkeit wäre, die SharePoint REST API zu verwenden, um Programmierschnittstellen für den Zugriff auf Dateien zu nutzen.

  3. PowerShell-Skripte: Wenn du mit PowerShell vertraut bist, kannst du auch PowerShell verwenden, um die Existenz einer Datei auf SharePoint zu überprüfen.


Praktische Beispiele

Hier sind einige Beispiele für die Verwendung der Funktion:

  1. Überprüfung einer Excel-Datei auf SharePoint:

    Dim filePath As String
    filePath = "https://deinsharepoint.com/sites/deinordner/deinedatei.xlsx"
    If URLExists(filePath) Then
       MsgBox "Die Datei 'deinedatei.xlsx' existiert."
    Else
       MsgBox "Die Datei 'deinedatei.xlsx' existiert nicht."
    End If
  2. Schleife durch mehrere Dateien:

    Dim i As Integer
    Dim filePaths(1 To 3) As String
    filePaths(1) = "https://deinsharepoint.com/pfad/datei1.xlsx"
    filePaths(2) = "https://deinsharepoint.com/pfad/datei2.xlsx"
    filePaths(3) = "https://deinsharepoint.com/pfad/datei3.xlsx"
    
    For i = 1 To 3
       If URLExists(filePaths(i)) Then
           MsgBox "Die Datei " & filePaths(i) & " existiert."
       Else
           MsgBox "Die Datei " & filePaths(i) & " existiert nicht."
       End If
    Next i

Tipps für Profis

  • Fehlerbehandlung optimieren: Füge zusätzliche Fehlerbehandlungslogik hinzu, um verschiedene Arten von Fehlern zu erkennen und spezifische Fehlermeldungen anzuzeigen.
  • Verwende Option Explicit: Dies hilft dabei, Fehler bei der Variablenbenennung zu vermeiden und sorgt für mehr Klarheit im Code.
  • Teste die URL lokal: Bevor du die URL in deinem VBA-Skript verwendest, teste sie im Browser, um sicherzustellen, dass sie erreichbar ist.

FAQ: Häufige Fragen

1. Funktioniert die Dir Funktion auf SharePoint?
Nein, die Dir Funktion funktioniert nicht zuverlässig mit SharePoint-URLs. Stattdessen solltest du die WinHttp-Methode verwenden.

2. Wie kann ich mehrere Dateien gleichzeitig überprüfen?
Du kannst eine Schleife verwenden, um durch ein Array von Dateipfaden zu iterieren und die URLExists Funktion für jeden Pfad aufzurufen.

3. Welche Excel-Version benötige ich?
Der vorgestellte Code funktioniert ab Excel 2010 und höher, solange VBA unterstützt wird.

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