Thema Datum  Von Nutzer Rating
Antwort
23.04.2021 09:54:10 Pauli
NotSolved
23.04.2021 11:28:16 Zwenn
NotSolved
23.04.2021 11:32:36 Gast91915
NotSolved
23.04.2021 12:04:40 Mase
NotSolved
23.04.2021 12:22:48 Gast60998
NotSolved
23.04.2021 12:55:25 Zwenn
NotSolved
23.04.2021 13:40:13 Gast28490
NotSolved
23.04.2021 14:51:17 Gast87694
NotSolved
23.04.2021 15:36:40 Gast45349
NotSolved
24.04.2021 11:55:10 Mase
NotSolved
26.04.2021 09:20:14 Gast41966
NotSolved
26.04.2021 09:24:37 Gast70583
NotSolved
26.04.2021 11:41:48 Zwenn
NotSolved
26.04.2021 11:57:43 Gast80229
NotSolved
27.04.2021 11:04:40 pauli
NotSolved
27.04.2021 11:13:49 pauli
NotSolved
27.04.2021 12:20:19 Gast38086
NotSolved
27.04.2021 12:43:42 Pauli
NotSolved
28.04.2021 12:04:22 pauli
NotSolved
Blau @Zwenn: "Events mit VBA ansprechen"
28.04.2021 21:13:36 Gast48480
NotSolved
29.04.2021 07:09:29 Pauli
NotSolved
29.04.2021 01:12:32 Trägheit
NotSolved
27.04.2021 12:47:37 Mase
NotSolved
27.04.2021 14:22:36 Pauli
NotSolved

Ansicht des Beitrags:
Von:
Gast48480
Datum:
28.04.2021 21:13:36
Views:
508
Rating: Antwort:
  Ja
Thema:
@Zwenn: "Events mit VBA ansprechen"

Hallo Pauli,

ich fasse mich mal kurz und gebe Dir ein paar Hinweise, wo Du in Deinem Code aufräumen musst.

  • In jedem Modul ganz oben sollte als erstes Option Explicit stehen. Dadurch wirst Du gezwungen alle Variablen zu deklarieren. Es geht auch ohne, aber dann treiben Dich kleinste Schreibfehler in einem Variablennamen bei der Fehlersuche in den Wahnsinn
  • Wie gesagt, deklariere alle Variablen mit Dim und dem richtigen zugehörigen Datentyp
  • Die Zeile On Error Resume Next löschst Du bitte ersatzlos. Sie sorgt dafür, dass kein Laufzeitfehler angezeigt wird. So findest Du im Zweifelsfall nicht raus, warum etwas nicht so funktioniert, wie Du es erwartest. On Error Resume Next macht z.B. Sinn, wenn der Versuch eine Objektvariable zu setzen und zu verwenden fehlschlägt. Anschließend wird die Fehlererkennung sofort wieder mit On Error GoTo 0 eingeschaltet. Z.B. versuchst Du mit Set nodeInput = doc.getElementByID("yourField") das Eingabefeld mit der ID yourField anzusprechen. Wenn es dieses Feld nicht gibt, dann wirft VBA sofort einen Laufzeitfehler. Den kannst Du abfangen, indem Du solche Zeilen in On Error Resume Next und On Error GoTo 0 kapselst. Ob das Element gefunden wurde, kannst Du anschließend mit If Not nodeInput Is Nothing Then prüfen. Es wird also gefragt, ob die Objektvariable nicht den Wert Nothing enthält. Ist das nämlich nicht der Fall, muss es ein Wert sein, der gefunden wurde und mit dem Du wie gewünscht weiterarbeiten kannst.
  • Das Suchen des richtigen IE-Tabs kann man etwas anders gestalten, damit es keinen Fehler gibt, wenn nicht IE Fenster von der Shell gefunden werden. Dazu schreibe ich morgen etwas mehr
  • Du änderst mit IE.document.getElementsByClassName("L")(12).innerHTML = ed den HTML-Quellcode der Seite. Das ist für Dein Vorhaben in jedem Fall falsch. Beim WebScraping wird der HTML-Code so gelassen, wie er ist.
  • Insgesamt versuchst Du das Datum damit zu setzen, bevor Du das Eingabefeld aktivierst. Ich gehe davon aus, dass durch das Ändern des HTML-Codes auch die Events verschwinden. Sprich also nur das Element an, welches das Datum aufnehmen soll und führe dann einen Click darauf aus. Erst wenn das Eingabefeld erscheint, setzt Du das Datum und zwar über die Eigenschaft Value des input-Tags.
  • Du sprichst das 13te Element mit der Klasse L an. Da würde ich versuchen das Zielelement vorher mehr einzugrenzen, um nicht so einen hohen Index verwenden zu müssen. Kann sein, dass der in Eurer Dokumentenverwaltung stabil ist. In der Regel wird der Zugriff auf hohe Indizes aber instabieler, je höher sie werden. Es passiert schnell, dass beim nächsten Aufruf der Seite eine Element davor wegfällt oder hinzukommt. Dann landest Du im falschen HTML Abschnitt
  • In der Zeile IE.document.getElementsByClassName("L jsFscSel FscSel").Click verwendest Du gar keinen Index. Das ergibt auf jeden Fall einen Laufzeitfehler. Einen, den Du bisher wegen On Error Resume Next vielleicht noch gar nicht wahrgemnommen hast

Ich habe heute Abend keinen Nerv mehr ein Beispiel zu erstellen, sorry. Aber ich wollte Dir wenigstens ein paar Hinweise für Verbesserungen und das Herangehen da lassen.

Viele Grüße,

Zwenn


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
23.04.2021 09:54:10 Pauli
NotSolved
23.04.2021 11:28:16 Zwenn
NotSolved
23.04.2021 11:32:36 Gast91915
NotSolved
23.04.2021 12:04:40 Mase
NotSolved
23.04.2021 12:22:48 Gast60998
NotSolved
23.04.2021 12:55:25 Zwenn
NotSolved
23.04.2021 13:40:13 Gast28490
NotSolved
23.04.2021 14:51:17 Gast87694
NotSolved
23.04.2021 15:36:40 Gast45349
NotSolved
24.04.2021 11:55:10 Mase
NotSolved
26.04.2021 09:20:14 Gast41966
NotSolved
26.04.2021 09:24:37 Gast70583
NotSolved
26.04.2021 11:41:48 Zwenn
NotSolved
26.04.2021 11:57:43 Gast80229
NotSolved
27.04.2021 11:04:40 pauli
NotSolved
27.04.2021 11:13:49 pauli
NotSolved
27.04.2021 12:20:19 Gast38086
NotSolved
27.04.2021 12:43:42 Pauli
NotSolved
28.04.2021 12:04:22 pauli
NotSolved
Blau @Zwenn: "Events mit VBA ansprechen"
28.04.2021 21:13:36 Gast48480
NotSolved
29.04.2021 07:09:29 Pauli
NotSolved
29.04.2021 01:12:32 Trägheit
NotSolved
27.04.2021 12:47:37 Mase
NotSolved
27.04.2021 14:22:36 Pauli
NotSolved