URL Aufruf per Makro
#1
Hallo ihr lieben Wissenden,

ich habe hier vor Jahren besten Rat erthalten, in der Zwischenzeit vieles geändert und die LogIn-Daten nicht mehr gefunden. Also neu registriert.

Ich habe vor Jahren über eine kleines Makro ein paar 1000 URL geprüft und das liegt nun wieder an.
In einer Tabelle ist die Spalte A für den Eintrag "OK" oder "Fehler" vorgesehen, B für den URL (ohne http://) und C für Hinweise zum URL.

--------------------------------------------------------------------------------------------------------------
Set wshshell = CreateObject("WScript.Shell")
For n = StartZeile To LetzteZeile
 
    ' URL um "http://" ergänzen (sonst kein Aufruf im Browser bei URL ohne dieses)
   
    URL = "http://" & Cells(n, 2)
   
    wshshell.Run URL

' Abfrage, ob URL OK
WebsiteOK = MsgBox("Ist der URL OK?", vbYesNoCancel)
' Eintrag "OK" oder "Fehler" in Spalte 1
If WebsiteOK = vbYes Then Cells(n, 1) = "OK" Else Cells(n, 1) = "FEHLER"
If WebsiteOK = vbCancel Then GoTo DasWars

Next n

'Ausstieg
DasWars:

---------------------------------------------------------
Das läuft auch nach wie vor prima. 
Aber: Damals konnte man im Browser einstellen, dass alle Links im gleichen Tab geöffnet werden. Das geht jetzt nicht mehr (Google findet auch nur Lösungen mit AddOns) und ein paar 1000 Tabs sind nicht so wirklich gut.
Frage: Weiß jemand eine Lösung, dass aus dem Makro heraus zu lösen (Tab schließen oder eben im gleichen Tab öffnen?


LG Gitte
Top
#2
Hallo,

was soll geprüft werden?

Z.B der Statuscode bei http bzw https?

Falls nur der Stutus geprüft werden soll, geht das mit VBA, aber auch jeder anderen Programmiersprache.

Falls Du Win 10 nutzt, ist es "elegant" eine Abfrage mit "curl -I url" durchführen und auf "Location" zu prüfen.

mfg

(der gezeigte Code ist "unausgereift")
Top
#3
Der gezeigte Code mag ja "unausgereift" sein, aber er funktioniert zu 100% - das reicht mir.

Die Frage geht nicht danach, was ich prüfen möchte (das ist nur mit Auge und Hirn möglich).

Sondern, wie ich verhindere, dass 1000 Tab geöffnet sind (das ging früher per Einstellung im Browser - jetzt halt nicht mehr)

LG Gitte
Top
#4
Hi,
es hilft immer im englischen zu suchen.

https://www.mrexcel.com/board/threads/ch...ue.567315/

Hilft dir weiter und funktioniert auch,
die Funktion dort:

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
Top
#5
Vielen Dank!

Natürlich schließe ich englischsprachige Googleergebnisse nicht aus.

Leider hilft mir diese Funktion (auf die ich in verschiedenen Varianten deutsch und englisch gestoßen bin) aber in keiner Weise in meiner Fragestellung (die ich aber unglücklich und missverständlich formuliert habe).

Inzwischen habe ich eine ganze Reihe ähnlicher Funktionen gefunden und getestet (auch englisch, viele der Beispiele enthalten aber Fehler), welche mir den Responsekode in eine Spalte schreiben. Ist zwar nicht das Ziel, aber für andere Zielsetzungen auch hilfreich.

Ich habe hier keine Möglichkeit gefunden, ein Bild ohne URL einzubinden. Das sieht dann so aus:

Responsekode                                  URL
200                                                 www.cwefwefef......
200                                                 sdfsdff.com
200                                                 www.was-immer.us
Der Vorgang wurde abgebrochen       www.sddqwe-wdewd.rus                  Hier stimmt was mit dem URL nicht - sollen sich andere drum kümmern - ich gebe es rüber
200                                                krika-tu.it

usw. 

Zitat:Die Frage geht nicht danach, was ich prüfen möchte (das ist nur mit Auge und Hirn möglich).

Die Frage geht also ausschließlich danach, wie ich verhinderte, dass 1000e Tabs öffnen (der Inhalt der Website ist zu beurteilen - nicht nach maschinenmäßig abzuarbeitenden Kriterien).

Da ich viele Fragen, aber keine Lösungen gefunden haben, gehe ich jetzt davon aus, dass es die Lösung nicht gibt.

Dann werde ich das eben doch über den Browser selbst (per AddOn dort) lösen müssen. 


LG Gitte
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste