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

Forumthread: Prüfen ob URL existiert

Prüfen ob URL existiert
Henner
Hallo zusammen,
leider bringt mich meine bisherige Netzrecherche nicht weiter, auch die SuFu dieses Forums nicht. Ich möchte per VBA ermitteln, ob eine URL bzw. eine Datei im Internet erreichbar ist (Bsp.: http://www.testseite.com/test.txt).
Sofern die Datei text.txt existiert soll Makro A aufgerufen werden, wenn nicht dann Makro B.
Folgenden Code habe ich als Ansatz gefunden:
Sub tt()
Dim HttpReq As New MSXML2.XMLHTTP30
HttpReq.Open "get", "https://www.google.de", False
HttpReq.send
Nachricht = HttpReq.responseText
If InStr(Nachricht, "404 Message--Page Not Found") Then
vorhanden = False
Else
vorhanden = True
End If
End Sub
Viele Grüße und vorab besten Dank!
Henner
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Prüfen ob URL existiert
12.09.2010 18:15:20
Nepumuk
Hallo,
versuch es mal so:
Option Explicit

Public Function GetLinkStatus(ByVal strUrl As String) As Boolean
    Dim objXMLHTTP As Object
    If Not Left$(strUrl, 7) = "http://" Then strUrl = "http://" & strUrl
    Set objXMLHTTP = CreateObject("Msxml2.XMLHTTP")
    On Error Resume Next
    objXMLHTTP.Open "GET", strUrl, False
    objXMLHTTP.Send
    GetLinkStatus = objXMLHTTP.Status = 200
    Set objXMLHTTP = Nothing
    On Error GoTo 0
End Function

Public Sub test()
    If GetLinkStatus("http://www.testseite.com/test.txt") Then
        Call Makro_A
    Else
        Call Makro_B
    End If
End Sub

Public Sub Makro_A()
    MsgBox "A"
End Sub

Public Sub Makro_B()
    MsgBox "B"
End Sub

Gruß
Nepumuk
Anzeige
AW: Prüfen ob URL existiert
12.09.2010 22:21:06
Henner
Hi Nepumuk,
ich werds morgen mal testen, heute schaffe ich es leider nicht mehr. Besten Dank schonmal!!
Gruß Henner
AW: Prüfen ob URL existiert (ERL/DANKE!)
12.09.2010 22:35:41
Henner
Hmpf... die Neugierde war (viel) zu groß :-) Ich musste es eben schnell testen - und: Es funktioniert!
Super - vielen vielen Dank und einen guten Start in die Woche!
Gruß Henner
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

URLs in Excel prüfen und testen


Schritt-für-Schritt-Anleitung

Um zu prüfen, ob eine URL erreichbar ist und ob eine Datei im Internet existiert, kannst du folgenden VBA-Code verwenden:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke im Menü auf Einfügen und dann auf Modul, um ein neues Modul zu erstellen.
  3. Füge den folgenden Code in das Modul ein:
Option Explicit

Public Function GetLinkStatus(ByVal strUrl As String) As Boolean
    Dim objXMLHTTP As Object
    If Not Left$(strUrl, 7) = "http://" Then strUrl = "http://" & strUrl
    Set objXMLHTTP = CreateObject("Msxml2.XMLHTTP")
    On Error Resume Next
    objXMLHTTP.Open "GET", strUrl, False
    objXMLHTTP.Send
    GetLinkStatus = objXMLHTTP.Status = 200
    Set objXMLHTTP = Nothing
    On Error GoTo 0
End Function

Public Sub test()
    If GetLinkStatus("http://www.testseite.com/test.txt") Then
        Call Makro_A
    Else
        Call Makro_B
    End If
End Sub

Public Sub Makro_A()
    MsgBox "A"
End Sub

Public Sub Makro_B()
    MsgBox "B"
End Sub
  1. Ändere die URL in der test-Subroutine nach Bedarf.
  2. Führe das Makro test aus, um zu überprüfen, ob die URL erreichbar ist.

Häufige Fehler und Lösungen

  • Fehler 404: Dieser Fehler tritt auf, wenn die URL nicht gefunden wird. Stelle sicher, dass die URL korrekt eingegeben ist.
  • Kein Internetzugang: Überprüfe deine Internetverbindung, da der Code eine aktive Verbindung benötigt, um die URL zu prüfen.
  • Sicherheitseinstellungen: Möglicherweise blockiert deine Excel-Installation den Zugriff auf externe URLs. Überprüfe die Sicherheitseinstellungen in Excel.

Alternative Methoden

Eine einfache Methode, um Links zu prüfen, ist die Verwendung von Excel-Formeln. Mit der WEBSERVICE-Funktion in Excel 2013 und höher kannst du die Verfügbarkeit einer URL testen. Beispiel:

=WEBSERVICE("http://www.testseite.com/test.txt")

Diese Formel gibt den Inhalt der URL zurück, wenn sie erreichbar ist, oder einen Fehler, wenn sie nicht erreichbar ist.


Praktische Beispiele

  1. URL prüfen und Makro ausführen: Du kannst das oben genannte Makro verwenden, um verschiedene Aktionen abhängig vom Status einer URL auszuführen.

  2. Mehrere URLs prüfen: Erweitere die test-Subroutine, um eine Liste von URLs zu durchlaufen und deren Verfügbarkeit zu prüfen.

Public Sub testMultipleUrls()
    Dim urls As Variant
    Dim url As Variant
    urls = Array("http://www.testseite.com/test.txt", "http://www.beispiel.com/test.txt")

    For Each url In urls
        If GetLinkStatus(url) Then
            MsgBox url & " ist erreichbar."
        Else
            MsgBox url & " ist nicht erreichbar."
        End If
    Next url
End Sub

Tipps für Profis

  • Verwende On Error Resume Next vorsichtig, um zu vermeiden, dass andere Fehler ignoriert werden.
  • Optimiere deinen Code, indem du die HTTP-Anfragen asynchron verarbeiten lässt, um die Performance bei vielen URLs zu verbessern.
  • Dokumentiere deine Makros gut, damit andere (oder du selbst später) den Code leicht nachvollziehen können.

FAQ: Häufige Fragen

1. Wie kann ich mehrere URLs gleichzeitig prüfen? Du kannst eine Schleife in VBA verwenden, um durch ein Array von URLs zu iterieren und die Verfügbarkeit jeder URL zu überprüfen.

2. Was mache ich, wenn ich einen Fehler beim Ausführen des Makros bekomme? Überprüfe deine Internetverbindung und die Sicherheitseinstellungen in Excel. Achte auch darauf, dass die URL korrekt formatiert ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige