Url automatisch im Browser aus Excel aufrufen
#1
Hallo!

Ich hoffe es geht euch allen gut.

Ich habe eine Liste/Spalte mit (vielen) URL`s.

https://domain.com/ersteurl
https://domain.com/zweiteurl
https://domain.com/dritteurl
usw.

Gibt es ein Script/Makro was die Liste/Spalte durchgeht und jede URL automatisch im Browser aufruft und mit kurzer Pause (z.B. 5 Sek.wenn möglich das Browserfenster wieder schließt?

Also Url 1 öffnen, kurz warten, Url 1 schließen, url 2 öffnen usw.

Danke
Top
#2
Hallöchen,

nutze mal unsere Suche nach followhyperlink, da findest Du schon den einen oder anderen Ansatz.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Top
#3
Hallo Michael, 19

nachfolgend mal zwei Ansätze (CreateObject und ShellExecute): 21

Code:
Option Explicit
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Public Sub Main_1()
    Dim objIEApp As Object
    Dim lngTMP As Long
    On Error GoTo Fin
    Set objIEApp = CreateObject("InternetExplorer.Application")
    With ThisWorkbook.Worksheets("Tabelle1")
        ' In Tabelle1 - Spalte A - ab Zeile 1 bis Ende
        For lngTMP = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
            objIEApp.Navigate .Cells(lngTMP, 1).Value
            Do: Loop Until objIEApp.Busy = False
            objIEApp.Visible = True
            Call Sleep(10000) '10 Sekunden
        Next lngTMP
    End With
    Shell "wmic Process where ""name like '%iexplo%'"" call terminate", vbHide
Fin:
    Set objIEApp = Nothing
    If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub

Dann habe ich es mal mit dem Edge auf diese Weise probiert: 21

Code:
Option Explicit
Private Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
    ByVal lpParameters As String, ByVal lpDirectory As String, _
    ByVal nShowCmd As Long) As Long
Private Declare PtrSafe Sub Sleep Lib "kernel32.dll" (ByVal dwMilliseconds As Long)
Private Const SW_MAXIMIZE = 3&
Public Sub Main_2()
    On Error GoTo Fin
    Dim lngTMP As Long
    With ThisWorkbook.Worksheets("Tabelle1")
        ' In Tabelle1 - Spalte A - ab Zeile 1 bis Ende
        For lngTMP = 1 To .Cells(.Rows.Count, 1).End(xlUp).Row
            ShellExecute 0, "open", .Cells(lngTMP, 1).Value, vbNullString, vbNullString, SW_MAXIMIZE
            Call Sleep(10000) '10 Sekunden
        Next lngTMP
    End With
    Shell "wmic Process where ""name like '%edg%'"" call terminate", vbHide
Fin:
    If Err.Number <> 0 Then MsgBox "Error: " & Err.Number & " " & Err.Description
End Sub

Gilt für Tabelle1 - Spalte A - ab Zeile 1 bis Ende.

Mach was draus. Dodgy
Top
#4
Hi Case!

Vielen Dank für die beiden Vorschläge.

Gerne würde ich was draus machen, aber weiß leider nicht wie.

Ich habe die Codes in Dateien eingefügt und als Makro gespeichert, aber wenn ich den Code starte passiert nix.

Wie und wo müsste ich den Code jeweils einfügen damit es geht?

Funktioniert der eine Code auch im Chrome?

Könntest Du mir die Codes bitte jeweils in einer Exceldatei integriert schicken?

Vielen Dank

Michael
Top
#5
Hallo, 19

jetzt mach aber was draus (3 Beispiele - CreateObject, ShellExecute, FollowHyperlink): 21
[attachment=38413]
Top
#6
Hallo Case!

Vielen Dank!

Varianten/Buttons 2 &3 fuer Chrome funktionieren (im kurzen Test) einwandfrei.

Variante 1 bleibt bei der dritten Zeile immer hängen.

Wenn man es mehrfach versucht kommen zwei verschiedene Fehlermeldungen, mal die eine, mal die andere.

Bei deinen 5 Test URL`s kommt die Fehlermeldung: Error 462: The remote server machine does not exist or is unavailable.

Wenn man die URL`s anders sortiert oder eine URL fünfmal probiert kommt die Fehlermeldung Error 2147467259 Method busy of object WebBrowser2 failed.

Die erste Variante würde mir am besten gefallen, weil die Browserfenster automatisch geschlossen werden.

Ginge das auch bei den Varianten 1 &2 für Chrome?

Michael
Top
#7
Hallo, 19

ich bekomme keine Fehlermeldung. 21

Wenn du den Chrome terminieren willst, dann die Codezeile so ändern: Dodgy

Code:
Shell "wmic Process where ""name like '%chrom%'"" call terminate", vbHide
Top
#8
Hi!

Danke.

Habe Variante 2 & 3 wie genannt angepasst und der Browser öffnet auch alle, schließt aber nix. Nur wenn ich einen Tab manuell schließe, schließt der Browser alle Fenster, auch die nicht von Deinem Tool geöffneten.

Michael
Top
#9
Hallo,  19

wenn das Schließen überhaupt nicht funktioniert - ist der PC im beruflichen Umfeld? Dort ist WMI bzw. WMIC häufig gesperrt. 21

Schau auch mal im Taskmanager, dass durch lauter probieren nicht viele Browser noch offen sind.

Wenn du im VBA-Editor diese Zeile im Direktfenster eingibst/reinkopierst UND Return drückst, dann wird der Browser gekillt:

Code:
Shell "wmic Process where ""name like '%chrom%'"" call terminate", vbHide

Natürlich ""name like '%chrom%'"" anpassen in ""name like '%edg%'"" bzw. ""name like '%iexplo%'"" - je nachdem, welcher Browser offen ist. Dodgy

Es können auch Browsereinstellungen reinfunken, oder eine lahme Internetverbindung. Sonst habe ich auch keine Idee mehr.
Top
#10
Hi Case!

Habe noch mal ein wenig rumprobiert, aber am Ende leider ohne Erfolg.

Notebook ist übrigens privat, also ich denke dann ohne WMI oder WMIC. Wo kann man das denn nachsehen oder entblocken falls notwendig?

Danke

Michael
Top


Gehe zu:


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