Test Hyperlink-URL auf broken link

Bild

Betrifft: Test Hyperlink-URL auf broken link
von: pawari
Geschrieben am: 29.09.2015 17:10:12

Einen herzlichen Gruß,
kann mir VBA-Laien bitte jemand helfen, eine userdefinierte Funktion zu bauen, mit der betehede Hyperlinks auf externe URLs getestet werden können, ob sie einen broken link beinhalten? Die Funktion soll den Hyperlink testen und WAHR oder FALSCH liefern, je nachdem, ob der Hyperlink funktioniert oder nicht. Geht das?
Ich nutze Office 2007 unter Windows 7.
Vielen Dank im Voraus.
pawari

Bild

Betrifft: AW: Test Hyperlink-URL auf broken link
von: Michael
Geschrieben am: 29.09.2015 18:44:09
Hi pawari,
ob das so praxistauglich ist, weiß ich nicht, aber kopiere das mal in ein Modul (im VB-Editor: Einfügen/Modul):

Option Explicit
Public Function TestURL(r As Range) As Boolean
Dim sResult As String
sResult = GetHTTPResult(r.Value)
If InStr(sResult, "404") > 0 And InStr(sResult, "not found") > 0 Then
  TestURL = False
 Else
  TestURL = True
End If
End Function
Function GetHTTPResult(sURL As String) As String
' Quelle u.a.:
' http://stackoverflow.com/questions/18163560/excel-vba-http-request-download-data-from-yahoo-finance
    Dim XMLHTTP As Variant, sResult As String
    Set XMLHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
    XMLHTTP.Open "GET", sURL, False
    XMLHTTP.Send
    sResult = XMLHTTP.Status & " - " & XMLHTTP.StatusText & vbLf & XMLHTTP.ResponseText
    Set XMLHTTP = Nothing
    GetHTTPResult = sResult
End Function

Es wird nicht der Server "direkt" abgefragt, sondern der Text, den er zurückgibt, auf "404" und "not found" durchsucht.
Wenn der Hundezüchterverein Paris, Texas, auf seiner Seite stehen hat: we looked for the 404 most pulchritudinous dogs but more than 200 were not found, wird halt auch ein Fehler ausgegeben.
Außerdem kann das bei umfangreichen Linksammlungen schon mal dauern.
Schöne Grüße,
Michael

Bild

Betrifft: AW: Test Hyperlink-URL auf broken link
von: pawari
Geschrieben am: 30.09.2015 11:34:05
Hallo Michael,
vielen Dank für Deine Hilfe. Die Funktion ist im Ergebnis leider nur teilweise wirksam. Sie bringt korrekt das Ergebnis WAHR, wenn die URL existiert. Sie gibt aber auch WAHR zurück, wenn die URL nicht vorhanden ist.
Getestet mit:
http://www.boerse-frankfurt.de/de/aktien/+CA84841Q1090: Ergebnis WAHR, URL besteht
http://www.boerse-frankfurt.de/de/aktien/+DE0005391908: Ergebnis WAHR, URL existiert nicht
Wenn ich den Makrogenerator einsetze und den Link anklicke, generiert EXCEL den Code "Selection.Hyperlinks(1).Follow NewWindow:=False, AddHistory:=True" und der Aufruf öffnet ein Nachrichtenfenster mit dem Inhalt "http://www.boerse-frankfurt.de/de/aktien/+DE0005391908 konnte nicht geöffnet werden. Die angeforderten Informationen können nicht heruntergeladen werden."
Hilft dies weiter?
Gruß, pawari

Bild

Betrifft: wer anders bitte
von: Michael
Geschrieben am: 30.09.2015 15:34:58
Hallo pawari,
dann ist das alles nicht so einfach!
Wenn Du den unteren link händisch im Browser eingibst, erscheint nämlich eine Seite der Börse und *keine* Fehlermeldung á la "404 not found".
Tatsächlich kannst Du hier anscheinend *irgendwas* eingeben (z.B. http://www.boerse-frankfurt.de/de/blabla), und es erscheint auch *kein* Fehler.
Das liegt daran, daß deren Server offensichtlich so programmiert ist, daß er alle Fehleingaben abfängt und immer auf die Hauptseite leitet.
Naja, das ist alles in allem ein anderes Problem, für das ich im Moment leider keine Zeit habe. Ich stelle den Thread auf offen.
Schöne Grüße,
Michael

Bild

Betrifft: AW: wer anders bitte
von: pawari
Geschrieben am: 03.10.2015 23:24:30
Michael, danke für den Versuch. Ich kann auch ohne Lösung leben. Beste Grüße, pawari

Bild

Betrifft: sorry! Vielen Dank für die Rückmeldung owT
von: Michael
Geschrieben am: 05.10.2015 17:38:23


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Datum + Uhrzeit Rechnung auf Stundenbasis"