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

Forumthread: URLs auf Erreichbarkeit prüfen

URLs auf Erreichbarkeit prüfen
23.02.2016 15:48:11
Ingo
Hallo
Ich habe eine Excel-Tabelle mit vielen URLs.
Diese befinden sich alle in Spalte A.
Ich möchte nun gerne per Makro überprüfen, ob diese erreichbar sind.
Ich meine damit, ob bei Aufruf der URL der Statuscode 404 zurück gegeben wird oder eben nicht.
Die URLs, bei denen der Statuscode 404 zurück gegeben wird, sollen in der Tabelle irgendwie kenntlich gemacht werden. Wie ist eigentlich ganz egal.
Falls es einfacher ist, wäre es auch OK, wenn die erreichbaren URLs gekennzeichnet werden.
Ich habe schon diverse Makros ergoogelt, aber die funktionieren alle nicht.
Meist auch, weil sie noch speziell auf andere Anliegen zugeschnitten sind oder so, denke ich.
Gibt es da nicht irgendwo ein schon fertiges Makro, mit dem das machbar ist?
Gruß
Ingo

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: URLs auf Erreichbarkeit prüfen
23.02.2016 16:28:00
Nepumuk
Hallo,
teste mal:
Option Explicit

Public Sub test()
    Dim lngRow As Long
    For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        Application.StatusBar = "Prüfe Zeile " & CStr(lngRow)
        If Not LinkStatus(Cells(lngRow, 1).Text) Then Cells(lngRow, 1).Interior.Color = vbRed
    Next
    Application.StatusBar = False
End Sub

Private Function LinkStatus(ByVal pvstrURL As String) As Boolean
    Dim objXMLHTTP As Object
    Set objXMLHTTP = CreateObject(Class:="Msxml2.XMLHTTP.4.0")
    On Error Resume Next
    Call objXMLHTTP.Open("GET", pvstrURL, False)
    Call objXMLHTTP.Send
    LinkStatus = objXMLHTTP.Status = 200
    Set objXMLHTTP = Nothing
End Function

Kann allerdings dauern, also nicht nervös werden. Ein Blick in die Statusleiste zeigt dir den Fortschritt.
Gruß
Nepumuk

Anzeige
AW: URLs auf Erreichbarkeit prüfen
23.02.2016 17:18:13
Ingo
Hallo Nepumuk
Ich habe das natürlich sogleich mal ausprobiert.
Aber ich erhalte eine Fehlermeldung:
Laufzeitfehler '429'
Objekterstellung durch Aktiv-X-Komponente nicht möglich.
Gruß
Ingo

AW: URLs auf Erreichbarkeit prüfen
23.02.2016 18:41:58
firmus
Hi Ingo,
das Thema interessiert mich auch, deshalb habe ich es gleich probiert auf xls2013.
Es hat auf Anhieb funktioniert. Achtung bei http vs https.
https://www.google.de wird im MSIE Rel.11 automatisch durch https://www.google.de ersetzt und rennt.
Im XMLHTTP-test jedoch nicht, ergo: https://www.google.de wird nicht gefunden und sagt Fehler.
Schau mal unter
http://answers.microsoft.com/en-us/office/forum/office_365hp-excel/active-x-controls-are-disabled-on-excel-2013/e3a97fcb-331a-47b9-98e1-9cf70f46e668?auth=1
nach. %appdata%\..\Local\Temp loeschen, dann sollte es behoben sein.
Gruß
Firmus

Anzeige
AW: URLs auf Erreichbarkeit prüfen
23.02.2016 19:34:46
Ingo
Also bei mir funktioniert es nicht.
Es kommt immer diese Fehlermeldung.
Und im VBA-Code ist dann diese Zeile gelb markiert:
Set objXMLHTTP = CreateObject(Class:="Msxml2.XMLHTTP.4.0")
Habe ich da was falsch gemacht?
Ich habe einfach den kompletten Code in ein Modul kopiert und führe dann das Makro aus.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

URLs auf Erreichbarkeit prüfen


Schritt-für-Schritt-Anleitung

Um die Erreichbarkeit von Webseiten zu prüfen, kannst Du ein einfaches Makro in Excel verwenden. Folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Public Sub test()
       Dim lngRow As Long
       For lngRow = 1 To Cells(Rows.Count, 1).End(xlUp).Row
           Application.StatusBar = "Prüfe Zeile " & CStr(lngRow)
           If Not LinkStatus(Cells(lngRow, 1).Text) Then 
               Cells(lngRow, 1).Interior.Color = vbRed
           End If
       Next
       Application.StatusBar = False
    End Sub
    
    Private Function LinkStatus(ByVal pvstrURL As String) As Boolean
       Dim objXMLHTTP As Object
       Set objXMLHTTP = CreateObject(Class:="Msxml2.XMLHTTP.4.0")
       On Error Resume Next
       Call objXMLHTTP.Open("GET", pvstrURL, False)
       Call objXMLHTTP.Send
       LinkStatus = objXMLHTTP.Status = 200
       Set objXMLHTTP = Nothing
    End Function
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Füge Deine URLs in die Spalte A ein.

  6. Führe das Makro aus: Drücke ALT + F8, wähle test aus und klicke auf Ausführen.


Häufige Fehler und Lösungen

  • Laufzeitfehler '429': Dieser Fehler zeigt an, dass die ActiveX-Komponente nicht erstellt werden kann. Überprüfe, ob die ActiveX-Steuerelemente in Excel aktiviert sind. Du kannst die Einstellungen unter Datei > Optionen > Trust Center > Trust Center-Einstellungen > ActiveX-Einstellungen anpassen.

  • Fehlermeldung bei CreateObject: Wenn die Zeile Set objXMLHTTP = CreateObject(Class:="Msxml2.XMLHTTP.4.0") gelb markiert ist, könnte es daran liegen, dass Du die falsche Version von Excel verwendest oder die Bibliothek nicht verfügbar ist. Stelle sicher, dass Du die richtige Version (z.B. Excel 2013) benutzt.


Alternative Methoden

Falls das oben genannte Makro nicht funktioniert, kannst Du folgende Methoden ausprobieren:

  • Web Scraping Tools: Nutze Tools wie Power Query, um Daten von Webseiten zu importieren und deren Erreichbarkeit zu überprüfen.
  • Online URL-Prüftools: Es gibt zahlreiche kostenlose Online-Tools, die Dir helfen, die Erreichbarkeit von Webseiten zu testen.

Praktische Beispiele

  1. URLs in Spalte A: Stelle sicher, dass Deine URLs, wie z.B. https://www.example.com, direkt in der Spalte A stehen.
  2. Farbliche Kennzeichnung: Das Makro färbt die Zellen rot, wenn der Statuscode nicht 200 (OK) ist. So kannst Du schnell erkennen, welche Webseiten nicht erreichbar sind.

Tipps für Profis

  • Verwende eine Fehlerbehandlung, um spezifische Fehlermeldungen auszugeben, falls eine URL nicht erreichbar ist.
  • Überprüfe die HTTP-Statuscodes (z.B. 404, 500) und passe die Logik im Makro entsprechend an, um diese gezielt zu kennzeichnen.
  • Optimiere das Makro, um die Performance zu verbessern, besonders bei langen Listen von URLs.

FAQ: Häufige Fragen

1. Wie kann ich die Erreichbarkeit von mehreren URLs prüfen? Du kannst einfach alle URLs in Spalte A einfügen und das Makro test ausführen.

2. Was kann ich tun, wenn URLs mit HTTPS nicht erkannt werden? Achte darauf, dass Du die richtige URL verwendest. Manchmal kann es auch hilfreich sein, die URLs ohne www zu testen.

3. Gibt es eine Möglichkeit, die Ergebnisse zu speichern? Du kannst die Ergebnisse in eine neue Spalte kopieren oder in eine separate Datei ausgeben, indem Du den Code entsprechend anpasst.

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