Registriert seit: 05.03.2021
Version(en): 2007/2013
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
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
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)
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo Michael,
nachfolgend mal zwei Ansätze ( CreateObject und ShellExecute):
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:
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.
________
Servus
Case
Registriert seit: 05.03.2021
Version(en): 2007/2013
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
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
20.04.2021, 14:21
(Dieser Beitrag wurde zuletzt bearbeitet: 20.04.2021, 14:31 von Case.
Bearbeitungsgrund: Datei ausgetauscht...
)
Hallo,
jetzt mach aber was draus ( 3 Beispiele - CreateObject, ShellExecute, FollowHyperlink):
Internetexplorer_ShellExecute_FollowHyperlink_mehrere_Seiten_aufrufen_dann_schliessen.xlsb (Größe: 19,49 KB / Downloads: 4)
________
Servus
Case
Registriert seit: 05.03.2021
Version(en): 2007/2013
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
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo,
ich bekomme keine Fehlermeldung.
Wenn du den Chrome terminieren willst, dann die Codezeile so ändern:
Code: Shell "wmic Process where ""name like '%chrom%'"" call terminate", vbHide
________
Servus
Case
Registriert seit: 05.03.2021
Version(en): 2007/2013
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
Registriert seit: 30.08.2014
Version(en): Office 365 - Beta 32 Bit
Hallo,
wenn das Schließen überhaupt nicht funktioniert - ist der PC im beruflichen Umfeld? Dort ist WMI bzw. WMIC häufig gesperrt.
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.
Es können auch Browsereinstellungen reinfunken, oder eine lahme Internetverbindung. Sonst habe ich auch keine Idee mehr.
________
Servus
Case
Registriert seit: 05.03.2021
Version(en): 2007/2013
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
|