Guten Tag zusammen,
mein Kollege hatte mir mal vor zwei Jahren eine Abfrage angepasst um auf einer Webseite eine Tabelle auszulesen, dieses geschieht in Excel wie folgt. In einer Zelle steht der Link zu der Webseite, dieser Link generiert sich automatisch wenn ich ein Spiel auswähle. Durch starten des Makros wird die entsprechende Tabelle ausgelesen und unterhalb des Links eingefügt. Diese Makro wurde speziel für diese Seite erstellt http://de.futbol24.com/team/Germany/RB-Leipzig/#statTR-Table=1&statTR-Limit=0
Das funktiniert auch super und nun wollte ich dieses Makro an diese Seite anpassen http://eishockey.wettpoint.com/statistiken/heim-5560.html da es im Quelltext aber keinen Bezug zur ID gibt, hänge ich in der Luft.
Was mir auffällt, meinen Link gibt es so im Quelltext oberhalb der Tabelle nicht, über Excel Query kann ich die Webseite und nur die Tabelle auslesen, das ist aber statistisch und nicht dynamisch an meine Zelle gebunden. Bedeutet ich müsste jedesmal im Query zuerst den Link ändern, damit ich die Daten einlesen kann, das ist umständlich und bei max. 40 Abfragen jeden Tag auch lästig. Was ich geschafft habe, die Links in den Abfragen werden automatisch geändert und man klickt dann eben 40mal auf aktualisieren. Lieber wäre mir natürlich das über mein VBA die Daten in Excel aktulasiert werden, denn dazu muss ich nur ein Button anklicken und dann dauert es zwei Minuten und alles ist so wie man es für die Weiterverarbeitung benötigt.
Hätte ich den kompletten Quellcode einspielen müssen? Dann bitte eine Rückinfo geben ich werde versuchen mich zu bessern.
Ich habe mir einige Themen angeschaut Daten aus HTML-Tabelle auslesen. auch dieses hier, aber ich komme nicht weiter, weil ich wahrscheinlich einfach zu blöde bin, das ganze als Laie zu interpretieren.
Set DivStatTR = IEApp.Document.getElementByID("statTR") hier in diesem Teil wird doch das Element festgeslegt nach dem im WQuelltext gesucht werden soll? Richtig?
If DivStatTR.Children.Length = 2 Then
For Each resultRow In DivStatTR.Children(1).Children(0).Children(0).Children Was hier ganz genau passiert ist mir nicht klar, aber soweit ich das verstehe sucht er in dem angegeben Bereich "StatTR" und gibt dann das Ergebnis zurück oder?
Was muss ich wie und wo einbauen, damit die vorhanden Tabelle abgerufen wird?
Als Beispieldatei habe ich mal eine Test-Excel-Datei hochgeladen mit dem alten Makro, vllt. hilft das weiter und jemand könnte mir zeigen wie ich da was an welcher Stelle verändern muss.
Was ich auch nicht verstanden habe, im Makro wird zuerst nach der ID gesucht, wenn es aber keine ID gibt, muss man nach td und tr suchen oder? Was aber ist wenn dieses mehrfach vorkommt?
Vielen Dank für eine Hilfestellung oder Lösungsvorschläge für einen alten Dummi wie mich.
Gruß User1964 Vielen Dank fufu für die Info, aber beim Einfügen meines Makros als Code wurde automatisch nun im neuen Beitrag von mir bestimmte Zeichen rot markiert,
das kann ich nicht ändern leider. Was habe ich falsch gemacht?
PS: Habe ich etwas falsch gemacht bei der Beschreibung? Wie kann ich etwas verbessern, damit ich vllt. ein Antwort oder Hilfestellung erhalte oder ist das zwecklos?
EDIT: Die Farbe rot sollte nur von Mods verwendet werden, um moderative Eingriffe leicht ersichtlich zu kennzeichnen. ~fufu
mein Kollege hatte mir mal vor zwei Jahren eine Abfrage angepasst um auf einer Webseite eine Tabelle auszulesen, dieses geschieht in Excel wie folgt. In einer Zelle steht der Link zu der Webseite, dieser Link generiert sich automatisch wenn ich ein Spiel auswähle. Durch starten des Makros wird die entsprechende Tabelle ausgelesen und unterhalb des Links eingefügt. Diese Makro wurde speziel für diese Seite erstellt http://de.futbol24.com/team/Germany/RB-Leipzig/#statTR-Table=1&statTR-Limit=0
Quellcode
- Sub Abfrage_Heim_Ausw()Dim IEApp As Object, all As ObjectDim zeile As Long, spalte As Integerzeile = ActiveCell.Row + 1Set IEApp = CreateObject("InternetExplorer.Application")IEApp.Visible = FalseIEApp.Navigate Range(ActiveCell.Address).TextDo While IEApp.Busy Application.Wait DateAdd("s", 1, Now)LoopSet [color=#FF0000]DivStatTR[/color] = IEApp.Document.getElementByID([color=#FF0000]"statTR"[/color])If DivStatTR.Children.Length = 2 Then For Each resultRow In Div[color=#FF0000]StatTR[/color].Children(1).Children(0).Children(0).Childrenspalte = ActiveCell.Column For Each resultColumn In resultRow.Children ' MsgBox resultColumn.innerTextActiveSheet.Cells(zeile, spalte) = resultColumn.innerText spalte = spalte + 1 Next zeile = zeile + 1 NextEnd IfIEApp.QuitSet IEApp = NothingMsgBox "Fertig"End Sub[url='http://de.futbol24.com/team/Germany/RB-Leipzig/#statTR-Table=1&statTR-Limit=0']
Das funktiniert auch super und nun wollte ich dieses Makro an diese Seite anpassen http://eishockey.wettpoint.com/statistiken/heim-5560.html da es im Quelltext aber keinen Bezug zur ID gibt, hänge ich in der Luft.
Quellcode
- [/color] <table summary="Anaheim Ducks Heimspiele NHL"><tr><td width="130px">20.01.2017. 04:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239857.html"><b>Anaheim Ducks</b> - Colorado Avalanche</a></td><td class="sps1">2:1 (0 : 0) (0 : 1) (2 : 0) </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">18.01.2017. 04:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239842.html"><b>Anaheim Ducks</b> - Tampa Bay Lightning</a></td><td class="sps1">2:1 (0 : 0) (1 : 1) (0 : 0) n.V. </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">16.01.2017. 03:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239825.html">Anaheim Ducks - <b>St. Louis Blues</b></a></td><td class="sps1">1:2 (0 : 0) (0 : 1) (1 : 0) n.V. </td><td class="sps1">FT (<b>N</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">11.01.2017. 04:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239784.html"><b>Anaheim Ducks</b> - Dallas Stars</a></td><td class="sps1">2:0 (0 : 0) (1 : 0) (1 : 0) </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">09.01.2017. 02:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239771.html">Anaheim Ducks - <b>Minnesota Wild</b></a></td><td class="sps1">1:2 (1 : 0) (0 : 2) (0 : 0) </td><td class="sps1">FT (<b>N</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">07.01.2017. 04:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239750.html"><b>Anaheim Ducks</b> - Arizona Coyotes</a></td><td class="sps1">3:2 (1 : 0) (1 : 1) (0 : 1) n.V. </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">05.01.2017. 04:35 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239736.html"><b>Anaheim Ducks</b> - Detroit Red Wings</a></td><td class="sps1">2:0 (1 : 0) (0 : 0) (1 : 0) </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">02.01.2017. 02:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239717.html"><b>Anaheim Ducks</b> - Philadelphia Flyers</a></td><td class="sps1">4:3 (2 : 1) (1 : 2) (0 : 0) n.P. </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">28.12.2016. 04:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239677.html">Anaheim Ducks - <b>San Jose Sharks</b></a></td><td class="sps1">2:3 (0 : 1) (1 : 1) (1 : 0) n.V. </td><td class="sps1">FT (<b>N</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">11.12.2016. 22:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239560.html"><b>Anaheim Ducks</b> - Ottawa Senators</a></td><td class="sps1">5:1 (3 : 1) (1 : 0) (1 : 0) </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">10.12.2016. 04:05 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239547.html"><b>Anaheim Ducks</b> - San Jose Sharks</a></td><td class="sps1">3:2 (2 : 1) (0 : 1) (1 : 0) </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr><tr><td width="130px">08.12.2016. 04:35 Uhr</td><td class="sps1"><a href="http://eishockey.wettpoint.com/spiele/2239528.html"><b>Anaheim Ducks</b> - Carolina Hurricanes</a></td><td class="sps1">6:5 (1 : 1) (1 : 2) (3 : 2) n.P. </td><td class="sps1">FT (<b>S</b>)</td><td class="sps1"><img src="/images/land/usa.gif" class="lnd" alt="USA Eishockey Ergebnisse" border="0" /></td><td class="sps2">NHL</td></tr></table>[color=#000000]
Was mir auffällt, meinen Link gibt es so im Quelltext oberhalb der Tabelle nicht, über Excel Query kann ich die Webseite und nur die Tabelle auslesen, das ist aber statistisch und nicht dynamisch an meine Zelle gebunden. Bedeutet ich müsste jedesmal im Query zuerst den Link ändern, damit ich die Daten einlesen kann, das ist umständlich und bei max. 40 Abfragen jeden Tag auch lästig. Was ich geschafft habe, die Links in den Abfragen werden automatisch geändert und man klickt dann eben 40mal auf aktualisieren. Lieber wäre mir natürlich das über mein VBA die Daten in Excel aktulasiert werden, denn dazu muss ich nur ein Button anklicken und dann dauert es zwei Minuten und alles ist so wie man es für die Weiterverarbeitung benötigt.
Hätte ich den kompletten Quellcode einspielen müssen? Dann bitte eine Rückinfo geben ich werde versuchen mich zu bessern.
Ich habe mir einige Themen angeschaut Daten aus HTML-Tabelle auslesen. auch dieses hier, aber ich komme nicht weiter, weil ich wahrscheinlich einfach zu blöde bin, das ganze als Laie zu interpretieren.
Set DivStatTR = IEApp.Document.getElementByID("statTR") hier in diesem Teil wird doch das Element festgeslegt nach dem im WQuelltext gesucht werden soll? Richtig?
If DivStatTR.Children.Length = 2 Then
For Each resultRow In DivStatTR.Children(1).Children(0).Children(0).Children Was hier ganz genau passiert ist mir nicht klar, aber soweit ich das verstehe sucht er in dem angegeben Bereich "StatTR" und gibt dann das Ergebnis zurück oder?
Was muss ich wie und wo einbauen, damit die vorhanden Tabelle abgerufen wird?
Als Beispieldatei habe ich mal eine Test-Excel-Datei hochgeladen mit dem alten Makro, vllt. hilft das weiter und jemand könnte mir zeigen wie ich da was an welcher Stelle verändern muss.
Was ich auch nicht verstanden habe, im Makro wird zuerst nach der ID gesucht, wenn es aber keine ID gibt, muss man nach td und tr suchen oder? Was aber ist wenn dieses mehrfach vorkommt?
Vielen Dank für eine Hilfestellung oder Lösungsvorschläge für einen alten Dummi wie mich.
Gruß User1964 Vielen Dank fufu für die Info, aber beim Einfügen meines Makros als Code wurde automatisch nun im neuen Beitrag von mir bestimmte Zeichen rot markiert,
das kann ich nicht ändern leider. Was habe ich falsch gemacht?
PS: Habe ich etwas falsch gemacht bei der Beschreibung? Wie kann ich etwas verbessern, damit ich vllt. ein Antwort oder Hilfestellung erhalte oder ist das zwecklos?
EDIT: Die Farbe rot sollte nur von Mods verwendet werden, um moderative Eingriffe leicht ersichtlich zu kennzeichnen. ~fufu
Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „User1964“ ()