Anzeige
Archiv - Navigation
1664to1668
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

Quellcode einer Webseite nach Login bearbeiten

Quellcode einer Webseite nach Login bearbeiten
03.01.2019 13:45:37
Rasenack
Hallo liebe Community, ich habe folgendes Problem. Ich möchte gern nach einem Login auf einer Webseite die Werte einer Exceltabelle, in die Tabelle der der Webseite übergeben. Das mit dem Login funktioniert super, da mir ein Herr Zwenn hier im Forum sehr geholfen hat. Nach seinen Hinweisen und Erklärungen, habe ich mich in den letzten Tagen mit der Webseite beschäftigt , die nach dem Login zu sehen ist.
Mein Hauptproblem liegt nun bei einem Laufzeitfehler, dass das Objekt browser nicht vohanden sei und dieses als "Is Nothing" ausgegeben wird. Nach einigen Überlegungen scheint es mir logisch, da ja die Webseite nicht mehr dieselbe ist wie vorher. Es öffnet sich kein neues Fenster, sondern sie heißt nur anders nämlich https://www.laola-zentralkueche.de/web/orderchange
Kann mir jemand bei meinem Problem behilflich sein, denn meine Kenntnisse mit HTML sind nicht sehr gut? Also im Prinzip braucht mein Code wieder Objekt der Webseite nach dem Login, um damit arbeiten zu können.
Vielen Dank im Voraus und liebe Grüße
Hier noch der ungetestete Code und im Anhang die Textdatei der Webseite nach dem Login:

Sub Login_Laola()
Dim browser As Object
Dim knotenStamm As Object
Dim wochentage As Object
Dim m, n As Integer
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL ?bergeben und warten bis URL ganz geladen wurde
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = True
browser.navigate "https://www.laola-zentralkueche.de/web/menu"
Do Until browser.readyState = 4: DoEvents: Loop
'HTML-Ausschnitt aus DOM holen, in dem die Login Eingabefelder liegen
Set knotenStamm = browser.document.getElementById("login1")
'Mit dem HTML-Ausschnitt weiterarbeiten, indem die richtigen HTML-Tag
'Namen angesprochen werden, um Benutzername und Passwort einzutragen
knotenStamm.getElementsByTagName("input")(0).Value = "#########"
knotenStamm.getElementsByTagName("input")(1).Value = "#########"
'Die eingetragenen Daten ?ber den Login-Button absenden
knotenStamm.getElementsByTagName("input")(4).Click
'klickt den jeweiligen Button der in der Exceltabelle eingetragenen Kalenderwoche an
Set wochentage = browser.document.getElementById("selectedweek_ & cells(56, 9). _
Value").Click
'tr?gt die jeweiligen Werte der Exceltabelle in die zugeh?rigen Felder der Tabelle
'auf der Webseite ein
For m = 61 To 65
For n = 0 To 9
Set wochentage = browser.document.getElementsByClassName("bottomoff")(n)
wochentage.getElementsByTagName("input")(0).Value = Cells(m, n + 2).Value
Next n
Next m
End Sub

https://www.herber.de/bbs/user/126459.txt

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
03.01.2019 14:22:33
Zwenn
Hallo ,
das Herr vor meinem Vornamen lass mal lieber weg ;-)
Für das Problem, dass Du im Moment lösen willst, gibt es drei Möglichkeiten denke ich. Der Teil, den ich Dir geschrieben habe, endet ja hinter knotenStamm.getElementsByTagName("input")(4).Click
Du schreibst nun direkt dahinter eine Zeile, die einen Button anklicken soll. Sieht grundsätzlich erstmal gut aus (ausser dass Du eine Anführungszeichen vergessen hast. Nicht ...getElementById("selectedweek_ & cells(56, 9)... sondern ...getElementById("selectedweek_" & cells(56, 9)...)
Bevor Du klickst, musst Du aber warten, bis die Seite durch den zuvor ausgelösten Klick auch ganz geladen wurde. Füge also hinter dem von mir stammenden Code folgende Zeile nochmal ein:
Do Until browser.readyState = 4: DoEvents: Loop
Wenn der Zugriff auf das Dokument danach wieder funktioniert gut, wenn nicht, kann es sein, dass die Seite in echt doch noch nicht geladen wurde. Dann kann man eine manuelle feste Pause einbauen. Bei der dritten Möglichkeit muss man den IE wieder "einfangen". Wie die Methoden 2 und 3 funktionieren, kann ich Dir ggf. noch hier posten.
Nachdem Du letztes Mal den HTML-Code schon als TXT-Datei gepostet hattest, habe ich ihn auch als .htm-Datei im Browser anzeigen lassen. Das Layout wird leider sehr zerschossen. So überlagern sich die Namen der Gerichte sehr stark. Im Quelltext selbst habe ich dann für das Eintragen in die Felder für die Anzahl der jeweiligen Gerichte gesehen, dass beim Eintragen mit dem onChange-Ereignis des Stuerelements gearbeitet wird. Was es macht weiß ich nicht. Wenn ich mich aber recht erinnere, wird dieses Ereignis nicht ausgelöst, wenn man die Zahlen über ein Makro eintragen lässt. Ich habe selbst leider bisher nicht rausgefunden, wie man es auslösen kann (ich habe das schonmal versucht für eine andere Webpage zu lösen).
Ich schreibe das hier schonmal hin, damit Du für den Fall, dass es auf Deiner Seite auch nicht so ohne weiteres funktioniert, einen Ansatzpunkt hast, nach dem Du recherchieren oder hier im Forum nochmal gezielt fragen musst musst. Wenn ich spekulieren müsste, würde ich davon ausgehen, dass zwar alle Zahlen eingetragen werden, in der ausgelösten Bestellung aber lauter Nullen stehen bzw. die Bestellung sich gar nicht auslösen lässt, weil die Seite nicht erkennt, dass Zahlen eingetragen wurden. Aber wie gesagt, dass ist reine Spakulation.
Viele Grüße,
Zwenn
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
03.01.2019 15:00:22
Matthias
Moin!
Ist zwar keine Hilfe aber falls ihr ein onchange auslösen müsst, geht es ggf. so wie hier:
https://microsoft-programmierer.de/Office-365/Access/Controls/webBrowser/Vba,-HTMLSelect_colon_-FireEvent-OnChange-oder-DispatchEvent?2095
VG
AW: Quellcode einer Webseite nach Login bearbeiten
03.01.2019 15:22:08
Zwenn
Hallo Matthias,
danke für den Link :-) Damals habe ich es auch über FireEvent versucht, aber damit kann man wohl nix mehr erreichen. Bei mir ging es um das Auslösen des onChange-Ereignisses für eine Auswahlliste. Ich gehe aber davon aus, dass das Auslösen für alle Steuerelemente gleich funktioniert.
Im Moment habe ich keine Zeit die Lösung hinter dem von Dir geposteten Link auszuprobieren, werde das aber auf jeden Fall machen. Vielleicht hilft es hier im Thread und vielleicht sogar noch demjenigen, dem ich damals versuchte zu helfen.
Viele Grüße,
Zwenn
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
03.01.2019 18:44:05
Rasenack
Hallo Zwenn, vielen Dank für die schnelle Antwort
Also ich habe das mal mit der Zeile deines Codes ausprobiert, um den Browser fertig laden zu lassen, aber leider bekomme ich immer noch einen Laufzeitfehler 462 "der Remotecomputer-Server-Computer existiert nicht, oder ist nicht verfügbar" ab der Zeile Set Wochentage...
liebe Grüße
AW: Quellcode einer Webseite nach Login bearbeiten
03.01.2019 21:44:39
Zwenn
Hallo Rasenack,
probiere das mal aus. Ich habe in Deinem Code unten noch etwas umgestellt. Deine Logik bleibt erhalten, aber ich habe nicht geprüft, ob das Ganze so auch Sinn macht. Prüfe erstmal, ob die von Dir genannte Fehlermeldung jetzt ausbleibt.

Sub Login_Laola()
Dim browser As Object
Dim knotenStamm As Object
Dim wochentage As Object
Dim objShell As Object
Dim url As String
Dim win As Object
Dim m As Integer
Dim n As Integer
url = "https://www.laola-zentralkueche.de/web/menu"
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL uebergeben und warten bis URL ganz geladen wurde
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = True
browser.navigate url
Do Until browser.readyState = 4: DoEvents: Loop
'HTML-Ausschnitt aus DOM holen, in dem die Login Eingabefelder liegen
Set knotenStamm = browser.document.getElementById("login1")
'Mit dem HTML-Ausschnitt weiterarbeiten, indem die richtigen HTML-Tag
'Namen angesprochen werden, um Benutzername und Passwort einzutragen
knotenStamm.getElementsByTagName("input")(0).Value = "#########"
knotenStamm.getElementsByTagName("input")(1).Value = "#########"
'Die eingetragenen Daten ueber den Login-Button absenden
knotenStamm.getElementsByTagName("input")(4).Click
'Warten, bis Seite nach Click vollständig geladen
Do Until browser.readyState = 4: DoEvents: Loop
'Manuelle Pause, falls Warten auf readyState nicht funktioniert
'Zeit anpassen falls notwendig
'Format: TimeSerial(Stunden, Minuten, Sekunden)
'(Auskommentierung aufheben, falls notwendig)
'Application.Wait (Now + TimeSerial(0, 0, 3))
'IE wieder einfangen
'URL der erwarteten Seite (muss bekannt sein)
url = "https://www.laola-zentralkueche.de/web/orderchange"
'Ein Windows Shell-Objekt instanzieren
Set objShell = CreateObject("Shell.Application")
'Alle Fenster des Betriebssystems durchgehen
For Each win In objShell.Windows
'Pruefen, ob der Programmname des aktuellen Fensters
'IEXPLORE enthält
If InStr(1, UCase(win.FullName), "IEXPLORE") > 0 Then
'Pruefen, ob der gefundene IE als URL
'die zuvor festgelegte enthaelt
If win.document.Location = url Then
'Wenn ja, unsere Browser-Objekt
'Variable auf das aktuelle Fenster
'setzen
Set browser = win
'IE gefunden, Schleife verlassen
Exit For
End If
End If
Next
'klickt den jeweiligen Butto der in der Exceltabelle eingetragenen Kalenderwoche an
Set wochentage = browser.document.getElementById("selectedweek_" & Cells(56, 9).Value) _
.Click
'traegt die jeweiligen Werte der Exceltabelle in die zugehoerigen Felder der Tabelle
'auf der Webseite ein
For m = 61 To 65
Set wochentage = browser.document.getElementsByClassName("bottomoff")
For n = 0 To 9
wochentage(n).getElementsByTagName("input")(0).Value = Cells(m, n + 2).Value
Next n
Next m
End Sub

Die Kommentare erklären den Code. Neben den neu eingeführten Variablen habe ich Deine Zeile
Dim m, n As Integer

umgeschrieben in
Dim m As Integer
Dim n As Integer

In VBA muss jeder Variablen ein Datentyp zugewiesen werden, ansonsten wird er auf Variant gesetzt. Wenn man also Variablen in einer Zeile durch Kommas trennt, ohne jeder einen Datentyp zuzuweisen, bekommt nur die erste Variable in der Aufzählung den Datantyp, der am Ende steht. Alle anderen werden Variant. Man kann Deine Zeile auch in einer Zeile lassen, ich persönlich finde das nur unübersichtlich.
Dim m As Integer, n as Integer
Viele Grüße,
Zwenn
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 11:37:07
Rasenack
Hallöchen nochmal, also ich habe deinen Code umgehend ausprobiert und erstmal vor meiner eigentlichen Logik einen Haltepunkt gesetzt, um erstmal zu testen ob das mit der Webseite funktioniert. Leider nein auch wenn ich noch die manuelle Pause hinzufüge. Derselbe Laufzeitfehler und wenn ich mit der Maus über die betroffene Zeile fahre steht "Wochentage= Nothing", also hat er wieder kein Objekt wie es scheint. Gibt es noch eine Möglichkeit? Ich suche schon verzweifelt mit Google parallel andere Foren durch, aber finde dort leider auch nichts.
Liebe Grüße André
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 12:04:36
Zwenn
Hallo Rasenack,
wenn Du vor Deinem Codeteil einen Haltepunkt gesetzt hast, muss wochentag auch Nothing sein. Denn die Zeile wurde ja noch gar nicht ausgeführt.
Welche Fehlermeldung bekommst Du? Welche Zeile im Code wird gelb markiert? Ist die Seite im IE augenscheinlich geladen, wenn Excel den Fehler wirft oder nicht? Ist die erwartete URL die gleiche, die auch im IE steht? Hast Du die manuelle Pause mal auf einen "Sicherheitswert" gesetzt, wie z.B. 10 Sekunden? Handelt es sich bei der neu aufgerufenen Seite um ein Frameset (also mehrere HTML-Dokumente in einem Browserfenster)? Es ist leider etwas mühselig und stochern im Nebel, wenn man nicht selbst ausprobieren und direkt gucken kann :-/ Da kannst Du so viel recherchieren, wie Du willst. Du wirst dazu nix finden, was direkt Dein Problem löst.
Viele Grüße,
Zwenn
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 12:35:04
Rasenack
Ich meinte natürlich vor der For-Schleife mit "Logik".
ich bekomme die Fehlermeldung Laufzeitfehler 424 Objekt erforderlich und mit dem Debugger nicht mehr die Meldung, dass der Remote-Computer nicht erreichbar sei.
Es betrifft diese Zeile:

Set wochentage = browser.document.getElementById("selectedweek_" & Cells(56, 9).Value).Click

Die manuelle Pause hatte zuvor auf 6 Sekunden gestellt und jetzt nochmal auf 10 Sekunden. Verblüffend dabei ist aber, dass die Fehlermeldung schon kurz nach dem Start des Makros erscheint, also scheint es so al ob er die Pause nicht wirklich macht.
Das mit der Internetrecherche sollte auch nur darauf hinweisen, dass ich mich bemühe mein Problem zu lösen ;-)
Grüße Andre
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 12:37:03
Rasenack
Achso und wie genau bekomme ich heraus, ob es sich um ein Frameset handelt?
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 14:24:08
Zwenn
So,
nun habe ich mal in den HTML-Quelltext raingeschaut, den Du im ersten Thread gepostet hattest. Was Du versuchst anzusteuern ist kein Command Button (eine einfache Schaltfläche), sondern ein Radio Button (die runden Dinger, von denen man in einer Gruppe nur eins aktivieren kann). Das funktioniert nicht mit .click.
Ändere Deine Zeile:

Set wochentage = browser.document.getElementById("selectedweek_" & Cells(56, 9).Value).Click

mal in:

Set wochentage = browser.document.getElementById("selectedweek_" & Cells(56, 9)).Checked = True

In der von Dir im ersten Thread hochgeladenen Excel Datei steht in der Zelle (56, 9) (also J:56) auch nix drin. Also gehe ich davon aus, Du hast Deine Datei nochmal umgebaut.
Gruß,
Zwenn
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 15:22:27
Rasenack
Das habe ich nicht gewusst, dass es da einen Unterschied gibt. Habe das jetzt sofort geändert und erhalte immer noch denselben Fehler. Irgendwie steckt hier der Wurm drin. Hab es auch mal direkt mit selectedweek_02 versucht, quasi ohne die &-Verknüpfung, aber immer wieder dasselbe. Wenn diese Passage nicht so wichtig wäre, würde ich sie weglassen, aber da ich ja in der jetzt aktuellen Woche die Bestellung für die kommende Woche aufgebe, muss das so aktiviert werden. Beim Login lande ich ja immer auf der aktuellen Woche.
Ja du hast recht, ich habe das nochmal abgeändert in meiner Datei. Ansonsten aber nichts.
Ich habe auch nochmal versucht den Quelltext der Webseite ordentlich zu kopieren, aber es passiert immer dasselbe, dass er komplett verschoben wird. Hier im Forum könnte ich einige Abschnitte hochladen und anschließend die Klammern austauschen. Das funktioniert.
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 16:42:19
Zwenn
Ok,
jetzt habe ich mal selber etwas mit dem von Dir hochgeladenen Quelltext ausprobiert. Es sieht so aus, als darf man nicht alles in eine Zeile schreiben. So habe ich auch wieder etwas gelernt.
Statt:

Set wochentage = browser.document.getElementById("selectedweek_02").Checked = True

Muss es heißen:

Set wochentage = browser.document.getElementById("selectedweek_02")
wochentage.Checked = True

Offenbar kann das Objekt zur ID erst vollständig gebildet werden, wenn die Zeile abgeschlossen ist und man muss danach darauf zugreifen.
Gruß,
Zwenn
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 17:59:58
Rasenack
Okay das muss man erstmal herausfinden... Danke dir dafür. Der Laufzeitfehler verschwindet, wenn die manuelle Pause weiterhin aktiv ist (mit 3 Sekunden) und nur bei einer festgelegten selectedweek_.. aber nicht wenn ich es mit der UND-Verknüpfung versuche also mit dieser Zeile:
Set wochentage = browser.document.getElementById("selectedweek_" & "Cells(56, 9).Value")
'wochentage.Checked = True

auch ohne die Anführungszeichen bei Cells()…
Das ist schon mal ein Fortschritt mit dem Fehler, allerdings verstehe ich nicht warum er bei dieser Schreibweise auftritt. Das nächste Problem ist, dass er den Radio-Button für die Kalenderwoche 02 nicht drückt.
Positiv ist, dass mir einige Werte in die Kalenderwoche 01 aus meiner Tabelle eingetragen werden, auch wenn zwischendurch mal UND oder so eingetragen wird. Aber dazu später denke ich. Bei dem Code von dem Link, den Mattias bereitgestellt hat, bekomme ich einen Variablenfehler, dass hdoc. nicht deklariert sei. Ich weiß nicht als was ich das deklarieren muss, weil ich auch nicht ganz verstehe wie der Code funktioniert. Hier der Ausschnitt
Dim event_onChange As Object
Set event_onChange = hdoc.createEvent("HTMLEvents")
event_onChange.initEvent "change", True, False
vSelect.dispatchEvent event_onChange 
Grüße André
Anzeige
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 20:38:31
Zwenn
Hallo André,
den EventChange Code habe ich noch nicht näher untersucht. Aber die Variablen aus dem Beispiel kannst Du natürlich nicht so 1 zu 1 übernehmen. Die müssen entsprechend Deines Codes angepasst bzw. deklariert werden. Aber das schaue ich mir jetzt nicht an.
Was steht denn in Deiner Zelle (56, 9)? Hast Du die als Text formatiert? Ansonsten geht die führende 0 beim Eintragen von 02 verloren und Deine gesuchte ID heißt dann nicht "selectedweek_02" sondern "selectedweek_2" und die gibts nicht.
Die Anführungszeichen um Cells(56, 9).Value darfst Du auf keinen Fall setzen. Denn dann ist es einfach nur genau diese Zeichenkette und die gesuchte ID heißt dann selectedweek_Cells(56, 9).Value, was natürlich ebenfalls nicht klappen kann.
Du hast in der neuen Zeile danach auch noch Das Zeichen zum Auskommentieren vorangestellt. Das muss natürlich auch weg.
Auch bei mir hat es nur mit der manuellen Pause funktioniert und die ReadyState Zeile musste ich sogar auskommentieren. Ich hatte das nur nicht beschrieben, weil ich nicht wußte, ob das ein Effekt ist, weil ich ja nur mit einer lokalen HTML-Datei arbeiten kann. Bei mir wird der Radiobutton allerdings richtig 'angeklickt'.
Also, prüfe mal, wie der String lautet, den Du als ID suchst. Dazu deklariere mal eine String-Variable. Dieser weist Du vorher das Konstrukt zu, das jetzt noch in den Klammern der nicht funktionierenden Zeile steht. In die Klammer schreibst Du dann den Namen der String-Variablen. Das baust Du so hin, weil Du jetzt zwischen diesen Zeilen einfach eine Messagebox ausgeben lassen kannst, die diese Zeichenkette enthält. Das sieht dann so aus:

Dim pruefID As String
pruefID = "selectedweek_" & Cells(56, 9).Value
msgbox pruefID
Set wochentage = browser.document.getElementById(pruefID)
wochentage.Checked = True

Viele Grüße,
Zwenn
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 21:37:47
Rasenack
Also deine Anmerkung mit der Textformatierung war sehr gut...Schande über mein Haupt. Ich hatte es benutzerdefiniert formatiert mit vorangestellter 0. Prüfung mit Msgbox war erfolgreich und funktioniert nun. Den Radiobutton hatte ich aber direkt mit selectedweek_02 versucht zu drücken und es passiert einfach nichts. Das Auskommentierungszeichen ist in meinem Code nicht vorhanden, weiß nicht warum das hier auftaucht. Ganz so unwissend bin ich ja nun auch nicht ;-)
Ich habe die Pause auf 6 Sekunden angehoben und auch die ReadyState-Zeile aber es tut sich nichts. Bin langsam am Verzweifeln.
So sieht der Code nun aus bis zum Beginn der Schleife:
Sub Login_Laola()
Dim browser As Object
Dim knotenStamm As Object
Dim wochentage As Object
Dim event_onChange As Object
Dim objShell As Object
Dim url As String
Dim win As Object
Dim m As Integer
Dim n As Integer
'Internet Explorer initialisieren, Sichtbarkeit festlegen,
'URL ?bergeben und warten bis URL ganz geladen wurde
Set browser = CreateObject("InternetExplorer.Application")
browser.Visible = True
browser.navigate "https://www.laola-zentralkueche.de/web/menu"
Do Until browser.readyState = 4: DoEvents: Loop
'HTML-Ausschnitt aus DOM holen, in dem die Login Eingabefelder liegen
Set knotenStamm = browser.document.getElementById("login1")
'Mit dem HTML-Ausschnitt weiterarbeiten, indem die richtigen HTML-Tag
'Namen angesprochen werden, um Benutzername und Passwort einzutragen
knotenStamm.getElementsByTagName("input")(0).Value = "####"
knotenStamm.getElementsByTagName("input")(1).Value = "####"
'Die eingetragenen Daten ?ber den Login-Button absenden
knotenStamm.getElementsByTagName("input")(4).Click
'Do Until browser.readyState = 4: DoEvents: Loop
'Manuelle Pause, falls Warten auf readyState nicht funktioniert
'Zeit anpassen falls notwendig
'Format: TimeSerial(Stunden, Minuten, Sekunden)
'(Auskommentierung aufheben, falls notwendig)
Application.Wait (Now + TimeSerial(0, 0, 5))
'IE wieder einfangen
'URL der erwarteten Seite (muss bekannt sein)
url = "https://www.laola-zentralkueche.de/web/orderchange"
'Ein Windows Shell-Objekt instanzieren
Set objShell = CreateObject("Shell.Application")
'Alle Fenster des Betriebssystems durchgehen
For Each win In objShell.Windows
'Pruefen, ob der Programmname des aktuellen Fensters
'IEXPLORE enth?lt
If InStr(1, UCase(win.FullName), "IEXPLORE") > 0 Then
'Pruefen, ob der gefundene IE als URL
'die zuvor festgelegte enthaelt
If win.document.Location = url Then
'Wenn ja, unsere Browser-Objekt
'Variable auf das aktuelle Fenster
'setzen
Set browser = win
'IE gefunden, Schleife verlassen
Exit For
End If
End If
Next
'klickt den jeweiligen Button der in der Exceltabelle eingetragenen Kalenderwoche an
Set wochentage = browser.document.getElementById("selectedweek_" & Cells(56, 9). _
Value)
wochentage.Checked = True

AW: Quellcode einer Webseite nach Login bearbeiten
05.01.2019 00:17:56
Zwenn
Hallo André,
kommentiere mal den ganzen Block zum IE wieder einfangen aus. Ich kann mir gut vorstellen, dass der gar nicht benötigt wird. Jetzt habe ich nochmal in den Quellcode geguckt. Es wird was ausgelöst, wenn das onClick Ereignis ausgelöst wird. Also habe ich das mit dem Click doch nochmal ausprobiert. Dadurch wird der Button offenbar auch ausgelöst. Also ersetze mal
wochentage.Checked = True

durch
wochentage.Click

Das es doch auch mit Click geht wusste ich nicht, sorry dafür. Allerdings bin ich auch nicht sicher, ob das onClick Ereignis dadurch dann ausgelöst wird oder ob man es manuell triggern muss, wie das onChange Ereignis. Vielleicht hilft Dir das erstmal noch weiter.
Über das Wochenende bin ich nun unterwegs. Vielleicht schaue ich am Sonntagabend nochmal hier rein, wenn ich früh genug wieder zu Hause bin. Sonst wirds wohl erst am Montag nach der Arbeit wieder was.
Viele Grüße,
Zwenn
AW: Quellcode einer Webseite nach Login bearbeiten
07.01.2019 14:07:00
Rasenack
Ich bin überglücklich. Ich habe deinen Hinweis noch verarbeitet und siehe da, es klappt mit dem Button. Alles wird so angeklickt, wie erwünscht und anschließend fügt mein Makro auch die Werte aus der Exceltabelle in die Tabelle der Webseite ein.
Ich weiß gar nicht, wie ich dir danken soll für deine Mühe, Geduld und Zeit, die du investiert hast, um mich bei meinem Problem zu unterstützen. Deine Erklärungen sind echt super und leuchten auch immer ein. Mein Leben hat sich jetzt deutlich vereinfacht mit diesem Makro.
Also nochmal vielen vielen Dank für die Hilfe.
Liebe Grüße André
AW: Quellcode einer Webseite nach Login bearbeiten
07.01.2019 16:20:25
Zwenn
Hallo André,
das freut mich und ging jetzt schneller als ich dachte. Also wird das Auslösen des onChange Ereignisses gar nicht mehr benötigt, sondern es funktioniert für Dich so, wie es jetzt ist?
Viele Grüße,
Zwenn
AW: Quellcode einer Webseite nach Login bearbeiten
08.01.2019 13:24:39
Rasenack
Hallo, es funktioniert ohne das Auslösen des onChange Ereignisses. Ich trage die Werte einfach per Schleife in die entsprechenden Felder ein. Vielleicht hatte ich einfach nur Glück ;-)
Hab mich noch ein wenig mit dem Auslesen der Webseite beschäftigt und bin zu dem Entschluss gekommen, dass ich noch mehr machen möchte. Das Problem ist nämlich, dass die Preise einiger Menüs in den unterschiedlichen Kalenderwochen variieren. Also habe ich mein Makro noch etwas erweitert, um mir die Preise im "Hintergrund" von der Webseite hole und in mein Tabellenblatt einfüge. Hat auch dank deinen Ausführungen super geklappt Stichwort .innerText. Anschließender Logout funktioniert auch.
Bin wirklich sehr zufrieden und dankbar für die Hilfe.
Hier jetzt noch der vollständige Code, vielleicht stößt ja jemand mal auf ein ähnliches Problem und kann dies als Hilfe gebrauchen
Option Explicit
Sub Login_Laola()
Dim kalenderwoche As Variant
Dim browser As Object
Dim knotenStamm As Object
Dim wochentage As Object
Dim n As Integer
'?berpr?ft das Format der eingegebenen Kalenderwoche
kalenderwoche = Cells(56, 9).Value
If IsNumeric(kalenderwoche) = True And Len(kalenderwoche) = 2 And 1 

AW: Quellcode einer Webseite nach Login bearbeiten
08.01.2019 22:53:00
Zwenn
Hallo André,
das man die Namen der Gerichte und die Preise direkt von der Webseite in Deine Tabelle holen könnte war auch einer meiner ersten Gedanken, als ich mir das Ganze angeschaut habe. Schön dass Du das mit Deinem neu erworbenen Wissen selbst erkannt und hinbekommen hast :-)
Sehr gut, dass Du das onChange Ereignis nicht benötigst. Vielleicht macht das einfach etwas, was für Deine Belange gar nicht notwendig ist oder wird aus irgend einem Grund doch ausgelöst. Am wichtigsten ist aber, dass Du Dein Ziel erreicht hast :-)
Viele Grüße,
Zwenn
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 20:07:23
Rasenack
Alternativ könnte man doch den Spieß einfach umdrehen und irgendwie eine Warte bis... Schleife einbinden, die die Bedingung prüft Ist der Radiobutton true, dann geh in die For-Schleife also wenn ich den Radiobutton manuell betätige, dann füge die Werte ein. Fiel mir jetzt noch spontan ein :-)
Allerdings weiß ich nicht, ob er dann den Quellcode ständig neu einlesen muss, um das zu prüfen. Meine Logik mit den Werten musste von mir nochmal überarbeitet werden, da der Array ja durchweg alle Wochentage und jeweils 10 Essen unter dem Klassennamen "Buttomoff" einliest, also bis Freitag 49 Werte. Aber den Feinschliff kann ich erst machen, wenn das vorhergehende Problem gelöst ist.
Viele Grüße André
AW: Quellcode einer Webseite nach Login bearbeiten
04.01.2019 20:42:42
Zwenn
Das würde vermutlich irgendwie gehen, das würde ich aber nicht machen. Zumal der button ja auch dabei eindeutig identifiziert werden müsste. Außerdem, was nutzt Dir denn die ganze Automatisierung, wenn die hälfte manuell pasieren muss? Neee, wie im anderen Posting gesagt, bei mir hat der Button ja schon geschaltet. Das geht bei Dir auch :-)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige