VBA Abfrage ob URL existiert

Hallo zusammen!
ich habe 2 Fragen und hoffe das Ihr mir weiterhelfen koennt.

wie kann man in VBA pruefen ob eine bestimmte URL existiert und eine boolsche varible mit true oder false belegen je nach dem ob die URL existiert?
z.B. URL: http://www.fda.gov/ora/oasis/3/ora_oasis_c_ar.html
-> urltest = ture
URL: http://www.fda.gov/ora/oasis/0/ora_oasis_c_ar.html
-> urltest = false

es haldelt sich um eine page auf den oben genannten domain. es wird ein 404 error gesendet.

wie kann ich den inhalt eines excel sheets so loeschen, dass wirklich nichts mehr vorhanden ist. ich moechte die letzte row eines sheets suchen die daten beinhaltet (wie mit ctrl+end) der curser springt zur letzten zelle, die einmal daten enthalten hat, obwohl ich diese schon geloescht habe und meiner meinung nach diese zelle leer sein sollte. auch wenn ich clear all benutzte bekomme ich das gleiche ergebnis

danke fuer eure hilfe

sebastian

Hallo zusammen!
ich habe 2 Fragen und hoffe das Ihr mir weiterhelfen koennt.

wie kann man in VBA pruefen ob eine bestimmte URL existiert
und eine boolsche varible mit true oder false belegen je nach
dem ob die URL existiert?
z.B. URL: http://www.fda.gov/ora/oasis/3/ora_oasis_c_ar.html
-> urltest = ture
URL: http://www.fda.gov/ora/oasis/0/ora_oasis_c_ar.html
-> urltest = false

es haldelt sich um eine page auf den oben genannten domain. es
wird ein 404 error gesendet.

Hallo,

Dafür eignet sich eine „Head“-Abfrage am besten. Auf ein Head-Request antwortet der Webserver nur mit dem header, nicht mit dem Inhalt! Für dich wichtig, ist der header „HTTP/1.0 404 Not Found“. Du kannst es dir aber einfacher machen, indem du dir nur die letzte Zeile des headers anschaust. Steht da „200 ok“, dann ist die URL vorhanden. Steht da auf der anderen Seite „404 Not Found“, dann gibt es sie nicht.

Du musst aber aufpassen, es gibt noch viele weitere „Status-Codes“, die auftauchen können.

Ab hier bin ich mir nicht sicher, ob das funktioniert:
Für eine Internet-Verbindung habe ich das xmlhttp-Objekt gefunden:
http://msdn.microsoft.com/library/default.asp?url=/l…

Dim HttpReq As New MSXML2.XMLHTTP30
HttpReq.open „HEAD“, url, False
HttpReq.send
myhead = HttpReq.responseText

nun müsstest du nur noch myhead untersuchen. Hoffe, das hilft…

Gruss, Omar Abo-Namous

Tja, so ist es mit den Crosspostern
Hallo Omar,
da gibst du dir Mühe und weisst nicht das der Fragesteller schon gestern um 19:00 die nachfolgende Lösung in einem anderen Forum bekam.
Gruß
Reinhard

Option Explicit
Private Const FLAG\_ICC\_FORCE\_CONNECTION = &H1
Private Declare Function CheckURL Lib "wininet.dll" Alias "InternetCheckConnectionA" (ByVal lpszUrl As String, ByVal dwFlags As Long, ByVal dwReserved As Long) As Long

Function URLExist(chkUrl As String) As Boolean
If CheckURL(chkUrl, FLAG\_ICC\_FORCE\_CONNECTION, 0&amp:wink: = 0 Then
 URLExist = False
Else
 URLExist = True
End If
End Function

Hallo,

naja, das ist halt ein wenig schade; aber ich hab ja auch dazu gelernt! Danke auf jeden Fall für die Banachrichtigung.

Gruss, Omar Abo-Namous

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Omar,
wegen dem Lernen habe ich rumgebastelt,so lief es dann:

Sub tt()
Dim HttpReq As New MSXML2.XMLHTTP30
HttpReq.Open "get", "http://www.fda.gov/ora/oasis/0/ora\_oasis\_c\_ar.html", False
HttpReq.send
Nachricht = HttpReq.responseText
If InStr(Nachricht, "404 Message--Page Not Found") Then
 vorhanden = False
Else
 vorhanden = True
End If
MsgBox vorhanden
End Sub

Man muss dazu den Verweis auf MS XML anlegen.
Gruß
Reinhard

Hallo Reinhard,

willst du nur diese Seite überprüfen, oder kommen andere Seiten hinzu? Bspw. wäre eine Abfrage folgender Seite:
http://www.google.de/asd

nicht erfolgreich. Wenn du dir dann aber den Header beider Seiten anschaust, dann wirst du feststellen, dass sie die Zeile

„404 Not Found“

als letzte Zeile des Headers enthalten. Prinzipiell lassen sich 404-Fehlerseiten auch so gestalten, dass sie keine „404“-Aussage enthalten. Den Header zu überprüfen wäre in meinen Augen korrekter. Das kannst du machen, indem du die ganze Seite per „get“ abfragst (und dann nach dem Satz „404 Not Found“ suchst, oder du lässt dir nur den Seitenheader per „head“ angeben, das ist weitaus effektiver.

Gruss, Omar Abo-Namous

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Omar,
mit „head“ klappte gar nix, ging nur mit „get“ bei mir.
Gruß
Reinhard