Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1892to1896
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Tab in Firefox auch wieder schliessen

Tab in Firefox auch wieder schliessen
05.08.2022 13:41:00
Richard
Hi,
mit folgendem Code öffne ich unter Firefox eine Seite und kopiere die Daten in Excel. Allerdings möcte ich auch den gerade geöffneten Tab anschliessend wieder schliessen.
Kann hier jemand weiter helfen?

Function OpenUrl(sURL As String, InFireFox As Boolean) As Integer
If InFireFox Then
OpenUrl = Shell("C:\Programme\Mozilla Firefox\firefox.exe " & sURL)
End If
End Function

Sub TestOpenUrl()
intResult = OpenUrl("https://www.onvista.de/aktien/handelsplaetze/Aixtron-Aktie-DE000A0WMPJ6", True)
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^a"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^c"
Application.Wait Now + TimeSerial(0, 0, 3)
Worksheets("Tabelle1").Select
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
End Sub

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tab in Firefox auch wieder schliessen
05.08.2022 14:55:38
Zwenn
Hallo Richard,
mit dem Aufruf eines Browsers über die Shell und dann mit SendKeys zu arbeiten ist ... ohne Deine Bemühungen schmälern zu wollen ... ungeschickt. Wenn Du mit einem Browser arbeiten willst (schonmal gut, dass Du es nicht mit dem IE versuchst, denn der ist ausgemustert), dann verwende SeleniumBasic.
Schaue in die akzeptierte Antwort von Yasser Khalil, um einen Einstieg zu bekommen. Achte darauf, ggf. die aktuellsten Versionen zu verwenden. SeleniumBasic selbst wird nicht mehr gepflegt, funktioniert mit aktuellen Browsern und den zugehörigen WebDrivern aber nach wie vor. Verwende Chrome oder Edge, FireFox wird seit längerem nicht mehr unterstützt, soweit ich weiß:
https://stackoverflow.com/questions/57216623/using-google-chrome-in-selenium-vba-installation-steps
Allerdings kann onvista auch über xhr abgerufen werden, was um einiges schneller geht, da nur die HTML Seite abgerufen wird. Keine StyleSheets, Grafiken, usw. und keine Browseraufrufe. Um am Ende an die gewünschten Daten zu kommen, ist der Aufwand dann gleich.
Hier ein kurzer Code, wie die Tabelle mit den Werten (ich denke um die geht es Dir), mittels xhr runtergeladen werden kann:

Sub getOnvista()
Dim doc As Object
Dim url As String
url = "https://www.onvista.de/aktien/handelsplaetze/Aixtron-Aktie-DE000A0WMPJ6"
Set doc = CreateObject("htmlFile")
With CreateObject("MSXML2.ServerXMLHTTP.6.0")
.Open "GET", url, False
.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0"
.Send
If .Status = 200 Then
doc.body.innerHTML = .responseText
MsgBox doc.getElementsByClassName("grid")(3).innertext
Else
MsgBox "Page not loaded. HTTP status " & .Status
End If
End With
End Sub
Dass das nicht intuitiv zu verstehen ist, ist mir klar. Aber vertiefe Dein Wissen nicht in Shell und SendKeys.
Viele Grüße,
Zwenn
Anzeige
AW: Tab in Firefox auch wieder schliessen
05.08.2022 15:10:05
Richard
Hi,
vielen Dank hierfür...... wenn ich allerdings deinen Code laufen lasse, bekomme ich einen Laufzeitfehler.......
AW: Tab in Firefox auch wieder schliessen
05.08.2022 15:55:30
Zwenn
Etwas wenig Infos für eine hilfreiche Reaktion, denn bei mir läuft das ganz wunderbar. Welche Fehlermeldung und welche Zeile wird gelb markiert?
AW: Tab in Firefox auch wieder schliessen
05.08.2022 15:16:50
Alwin
Hallo Richard,
da du das eh schon alles mit .sendkeys machst, dann vielleicht so:

Function OpenUrl(sURL As String, InFireFox As Boolean) As Integer
If InFireFox Then
OpenUrl = Shell("C:\Programme\Mozilla Firefox\firefox.exe " & sURL)
End If
End Function
Sub TestOpenUrl()
intResult = OpenUrl("https://www.onvista.de/aktien/handelsplaetze/Aixtron-Aktie-DE000A0WMPJ6", True)
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^a"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^c"
Application.Wait Now + TimeSerial(0, 0, 3)
Worksheets("Tabelle1").Select
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
'Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^{F4}", True
End Sub
Ich habe mal den letzten Wait Befehl auskommentiert drin gelassen. Falls es stolpern sollte, nimms du einfach die Auskommentierung raus.
Gruß Uwe
Anzeige
AW: Tab in Firefox auch wieder schliessen
05.08.2022 16:39:41
Alwin
der Gedanke ganz ohne Browser hat mich noch auf folgende Idee gebracht:

Sub OnVistaHolen()
Application.ScreenUpdating = False
Application.CutCopyMode = False
With Sheets("Tabelle1").QueryTables.Add(Connection:= _
"URL;https://www.onvista.de/aktien/handelsplaetze/Aixtron-Aktie-DE000A0WMPJ6" _
, Destination:=Range("$A$1"))
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingNone
.Refresh BackgroundQuery:=False
End With
Application.ScreenUpdating = True
End Sub
Ich habs getestet. Es scheint die Seite brauchbar auszulesen. Ist aber auch nicht die Allerschnellste.
Gruß Uwe
Anzeige
AW: Tab in Firefox auch wieder schliessen
05.08.2022 18:42:04
Zwenn
Hallo Uwe,
das ist doch eine schöne kurze Lösung. Das Einlesen der Daten ging mit Deinem Code recht schnell bei mir. 10 Sekunden geschätzt. Auch hier muss man natürlich noch die Daten aus dem Datenwust holen, die es wirklich sein sollen.
Viele Grüße,
Zwenn
AW: Tab in Firefox auch wieder schliessen
06.08.2022 16:12:43
Richard
Super...vielen Dank euch !
AW: Tab in Firefox auch wieder schliessen
07.08.2022 09:31:52
Richard
Hi,
ich habe leider feststellen müssen, dass die elegantere Lösung die Webseite nicht richtig ausliest (historische Daten fehlen bzw. werden nicht übertragen)... ich dachte es wäre dem Browser geschuldet, also habe ich Firefox eingebaut....doch das Ergebnis blieb...
Also muss ich leider zu der Lösung mit den Send.keys zurück...sei es drum...
Hier wäre nur die Frage, wie ich den geöffneten Tab auch wieder per VBA schliessen kann?

Function OpenUrl(sURL As String, InFireFox As Boolean) As Integer
If InFireFox Then
OpenUrl = Shell("C:\Programme\Mozilla Firefox\firefox.exe " & sURL)
End If
End Function

Sub TestOpenUrl()
intResult = OpenUrl("https://www.onvista.de/aktien/handelsplaetze/Aixtron-Aktie-DE000A0WMPJ6", True)
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^a"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^c"
Application.Wait Now + TimeSerial(0, 0, 3)
Worksheets("Tabelle1").Select
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
End Sub

Anzeige
AW: Tab in Firefox auch wieder schliessen
07.08.2022 14:39:11
Alwin
Hallo,
ja das sehe ich jetzt auch. Das Sendkey:

Application.SendKeys "^{F4}", True
Da wird Strg/F4 ausgeführt und der aktive Tab im Browser geschlossen.
Gruß Uwe
AW: Tab in Firefox auch wieder schliessen
08.08.2022 14:19:44
Richard
Hi,
wenn ich die Zeile hinzufüge...kriege ich immer für genau diese Zeile einen Laufzeitfehler 1004....

Function OpenUrl(sURL As String, InFireFox As Boolean) As Integer
If InFireFox Then
OpenUrl = Shell("C:\Programme\Mozilla Firefox\firefox.exe " & sURL)
End If
End Function

Sub AixtronKurse()
intResult = OpenUrl("https://www.onvista.de/aktien/handelsplaetze/Aixtron-Aktie-DE000A0WMPJ6", True)
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^a"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^c"
Application.Wait Now + TimeSerial(0, 0, 3)
Application.SendKeys "^{F4}", True
Worksheets("Tabelle1").Select
Range("A1").Select
ActiveSheet.PasteSpecial Format:="Text", Link:=False, DisplayAsIcon:=False
End Sub

Anzeige
AW: Tab in Firefox auch wieder schliessen
08.08.2022 16:10:01
Alwin
Hallo,
wenn es zu einer Fehlermeldung kommt, liegt es daran, dass dieses SendKey ^ = StrgTaste und {F4}=F4 Taste dein Browser so nicht eingestellt ist.
Teste mal bei welcher Tastenkombination dein Browser (Firefoxversion) der aktive Tab geschlossen wird. Wenn du die Tastenkombi rausgefunden hast (mittels Addon oder ausprobieren) kannst du dir bei Tante Google das Sendkey zusammenbauen. Bei mir funktioniert Strg/F4 auf jeden Fall ohne Probleme.
Gruß Uwe
AW: Tab in Firefox auch wieder schliessen
08.08.2022 17:28:36
Zwenn
Funktioniert bei mir auch genau so.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige