Anzeige
Archiv - Navigation
1568to1572
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

VBA IE Popup öffnen und Bild kopieren

VBA IE Popup öffnen und Bild kopieren
25.07.2017 14:03:28
Christian
Hallo, ich benötige etwas Hilfe für einen Code.
https://wertpapiere.ing-diba.de/DE/Showpage.aspx?pageID=25&ISIN=DE0008404005&
Dort das Popup "Chartbild anzeigen" öffnen und den Chart kopieren und in B1 einfügen.
Der Link steht in A1 und soll dann mit einer Schleife nacheinander abgearbeitet werden.
Ich kriege halt nur das Popup nicht geöffnet. :(
Vielen Dank im Voraus.

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA IE Popup öffnen und Bild kopieren
25.07.2017 15:52:26
Zwenn
Hallo Christian,
dazu musst Du die JavaScript Funktion aufrufen, die hinter dem Link zu Chartbild anzeigen liegt. Das geht so:

Sub JS_Funktion_aufrufen()
Dim browser As Object
Dim url as string
url = "https://wertpapiere.ing-diba.de/DE/Showpage.aspx?pageID=25&ISIN=DE0008404005&"
Set browser = CreateObject("internetexplorer.application")
browser.Visible = True
browser.Navigate url
Do Until browser.ReadyState = 4: DoEvents: Loop
'Aufruf einer JS Funktion nach dem Muster:
'Call browser.document.parentWindow.execScript("FUNKTIONSNAME(PARAMETER)", "JavaScript")
Call browser.document.parentWindow.execScript("__doPostBack('ctl00$WebPartManager$ _
wp43346709$wp44614289$ChartImagePopupLink$Control$dialogLink_showChartImagePopup','')", "JavaScript")
End Sub
Anmerkung:
Die Zeile Call browser.document.parentWindow.execScript("__doPostBack('ctl00...)", "JavaScript") darf nicht an der Stelle getrennt werden, wie hier abgebildet, sondern muss in einer Zeile stehen. Wenn Du das kopierst, lösche einfach den unterstrich un die Leerzeichen, damit der Funktionsparameter 'ctl00$WebPartManager$wp43346709$wp44614289$ChartImagePopupLink$Control$dialogLink_showChartImagePopup' wieder ganz ist.
Viele Grüße,
Zwenn
Anzeige
AW: VBA IE Popup öffnen und Bild kopieren
25.07.2017 16:06:07
Christian
Wird gleich mal ausprobiert.
Vielen Dank schonmal für deine Mühe.
AW: VBA IE Popup öffnen und Bild kopieren
25.07.2017 16:41:50
Christian
Das Skript funktioniert soweit aber vielleicht kannst du mir bei dem zweiten Problem auch noch helfen?
Ich müsste jetzt nur das gif kopieren und einfügen.
AW: VBA IE Popup öffnen und Bild kopieren
25.07.2017 17:16:56
Zwenn
Hi Christian,
das hatte ich mir schon angesehen, aber mit Standadrdmethoden (die ich kenne) geht das nicht. Das Popup wird nicht nur durch eine JS Funktion aufgerufen, sondern auch als eine Art Overlay generiert. Im Quelltext des Browser Dokuments kann man aus diesem PopUp absolut gar nix finden, auch wenn es den HTML Code dazu natürlich gibt.
Auch wenn man sich ansieht, unter welcher URL das Bild abgelegt ist, kann man sich den Bildernamen nicht herleiten. Deshalb kann man es nicht einfach runterladen. Man muss den Link zum Bild auslesen, der aber im PopUp Quelltext steht.
Ich habe noch eine Idee, von der ich aber nicht weiß, ob die wirklich umsetzbar ist. Sinngemäß muss man versuchen den erzeugten HTML Code für das PopUp beim generieren durch die entsprechende JS Funktion in eine Variable zu schreiben. Ich weiß aber gar nicht, ob das irgendwie geht. Das kann ich erst testen, wenn ich zu Hause bin. Da muss ich mal gründlicher drüber nachdenken.
Viele Grüße,
Zwenn
Anzeige
AW: VBA IE Popup öffnen und Bild kopieren
25.07.2017 18:21:01
Christian
Genau das Problem meine ich. Würde im Quellcode das gif zu finden sein, wäre es wohl kein großes Problem, so importiere ich mir ja bereits einige Daten in Excel. Mit SendKeys kommt man sicher auch nicht viel weiter etc...
AW: VBA IE Popup öffnen und Bild kopieren
25.07.2017 20:04:24
Zwenn
Das runterladen von Bildern funktioniert grundsätzlich anders, als das Auslesen von Daten von einer im Browser geladenen Website. Wenn man den Bilderlink kennt, braucht man den Browser nicht zum runterladen der Datei. Auf diese Weise kann man auch andere Downloads durchführen. Z.B. von CSV Dateien.
SendKeys empfinde ich persönlich immer als Krücke, die ich bisher auch noch nie brauchte. Deshalb habe ich mich damit nie näher auseinandergesetzt. Wie heißt es so schön ... Für jedes Problem gibt es mehrere Lösungen und wir alle haben unsere Vorlieben und Abneigungen. Ich sehe hier allerdings auch keinen Ansatz, um eine Technik wie SendKeys einzusetzen.
Das was ich bisher ausprobiert habe, um das Problem zu lösen führte leider nicht zum Erfolg. Ich recherchiere noch ein paar Sachen. Vielleicht klappt es ja doch noch auf irgend einem Weg.
Anzeige
AW: VBA IE Popup öffnen und Bild kopieren
26.07.2017 15:36:04
Christian
Vielen Dank schonmal für deine Mühe. Ich bin auch kein Freund von Sendkeys und kam bisher auch immer an den Befehlen vorbei. Nur dieses Javaskript überfordert mich.
AW: VBA IE Popup öffnen und Bild kopieren
26.07.2017 19:14:11
Mullit
Hallo,
ich hat auf Grundlage von Zwenns Vorarbeit einen Ansatz dazu, mußt Dich mal melden, wenn Du noch was brauchst....
Gruß, Mullit
AW: VBA IE Popup öffnen und Bild kopieren
28.07.2017 19:14:39
Christian
Wenn du mir bei dem Problem behilflich sein kannst, würde ich auch deine Hilfe gerne in Anspruch nehmen.
Grüße
Lösung noch gesucht?
28.07.2017 15:51:10
Zwenn
Hallo Christian,
ich öffne mal einen neuen Ast in diesem Thread, weil in der Forenübersicht zuletzt ein Beitrag von mir angezeigt wird. Wie man aber in der Liste der Antworten sieht, wenn man Deinen ersten Beitrag öffnet, haben sowohl Du, wie auch Mullit nochmal geantwortet. Das hat sicher mit den Forenproblemen von Vorgestern zu tun.
Wie auch immer. Ich habe rausgefunden, wie man an den Bilderlink kommt. Falls Du hier noch reinschaust, sag mal bitte bescheid, ob Du noch eine Lösung für das Problem suchst. Mullit, falls Du das hier liest, ich bin an Deinem Ansatz interessiert. Eine Textbeschreibung zum Vorgehen/ zum Algorithmus würde mir reichen :-)
Falls ja:
  • Willst Du die Bilder öfter runterladen? Sprich, muss ein bereits vorhandenes evtl. vorher aus der Zelle gelöscht werden?

  • Die Grafik ist relativ groß für eine Exceltabelle, falls mehrere rein sollen. Soll die auf einen bestimmten Wert/ bestimmte Kantenlängen skaliert werden?

  • Willst Du die Liste inklusive der Grafiken auch sortieren? Dann würde ich die Grafik an die Zelle tackern und dafür sorgen, dass sie sich mitsortieren läßt.

  • Werden die Grafiken, die Du runterladen willst, alle über die gleiche JavaSript Funktion runtergeladen? Ansonsten müsstest Du meine Lösung genau verstehen, um andere JS Funktionsaufrufe evtl. selbst verarbeiten zu können.

  • Viele Grüße,
    Zwenn
    Anzeige
    AW: Lösung noch gesucht?
    28.07.2017 19:13:34
    Christian
    Sorry das ich mich erst jetzt melde. War die Woche schwer im Stress.
    Also ich gehe davon aus, dass circa 10 Bilder untereinander mit festdefinierten Maßen kopiert werden sollen. Gerade noch so, dass es einigermaßen erkennbar ist. Die Bilder können dann entweder ersetzt werden oder vorher per Skript gelöscht werden.
    Die Punkte in die die Bilder kopiert werden sind dabei immer gleich. Sortieren tu ich anhand der Schleife vom ersten zum letzten. So ist das Bild der Aktie 1 an Bildposition 1 (hoffe ich :) )
    Runterladen möchte ich wenn es geht nicht, da ich mir daraus eine Art Newsletter bauen will. Die Tabelle soll dann regelmäßig als Email verschickt werden.
    Anzeige
    AW: Lösung noch gesucht?
    29.07.2017 15:11:53
    Zwenn
    Hi Christian,
    kein Problem, dass Du im Stress warst. Kenne ich selbst. Ich wollte nur wissen, ob Du das Problem vielleicht schon gelöst hast, bevor ich mir weitere Arbeit mache :-)
    Wie groß ein Bild bei Dir ist, damit Du es grade noch erkennst weiß ich nicht ;-) Ich versuche mal was einzubauen, wo Du dann einfach selbst die maximale Kantenlänge über eine Konstante bestimmen kannst. Die Kantenlänge selbst ist kein Problem. Ich überlege nur noch, wie man die Zellen automatisch mit skaliert. Sonst macht das keinen Sinn. Außer Du kannst mir direkt sagen, wie breit oder wie hoch ein Chart in Pixeln aufs Bild bezogen sein soll. Dann spare ich mir die automatische Zellskalierung und setze die Zellgrößen fix.
    Wenn die Bilder neu geladen werden, müssen sie auf jeden Fall vorher gelöscht werden. Sonst würde man bei jeder Aktualisierung ein weiteres Bild auf die vorher geladenen schieben und Deine Datei würde immer größer werden.
    Was Du mit Die Punkte in die die Bilder kopiert werden sind dabei immer gleich. meinst weiß ich nicht. Ich denke Bild 1 soll in Zelle B2. Also gehe ich davon aus, dass Bild 2 in B3 angezeigt werden soll, usw.
    Ob Du die Liste umsortieren willst erkenne ich aus Deiner Antwort auch nicht richtig. Vielleicht ist es für das Verständnis meiner Frage danach wichtig zu wissen, dass eine Mitsortierung von Grafiken in Zellen nur mit einem kleinen Trick möglich ist. Sofern MS das nicht inzwischen geändert hat.
    Runtergeladen werden die Bilder auf jeden Fall, denn sie kommen ja aus dem Internet ;-) Es gibt jedoch die beiden Möglichkeiten sie entweder auf der Festplatte zu speichern und von dort aus in die Excel Tabelle zu holen oder sie direkt in die Excel Tabelle zu laden. Ich ziehe das direkte Laden in die Tabelle in Deinem Fall vor.
    Ich habe mit der Umsetzung dieses Projektes zwar schon angefangen, werde aber aus persönlichen Gründen am Wochenende wahrscheinlich nicht dazu kommen es fertig zu stellen (Besuch hat sich angekündigt). In diesem Zusammenhang mal die Frage ... Hast Du schon einen eigenen Versuch gestartet? Dann wäre es gut, wenn Du Deine Arbeitsmappe hier hochladen würdest, damit ich mindestens auf Deinem Tabellenlayout aufsetzen kann.
    Viele Grüße,
    Zwenn
    Anzeige
    AW: Lösung noch gesucht?
    31.07.2017 09:46:04
    Christian
    https://www.herber.de/bbs/user/115145.xlsm
    Das wäre mein Tabellenlayout und das funktioniert soweit auch bis dahin. Ich will es lediglich um diese tollen Charts erweitern und die bekommt man halt nur dort. Ich hoffe damit kann ich den Großteil deiner Fragen beantworten. :)
    AW: Lösung noch gesucht?
    31.07.2017 10:48:08
    Zwenn
    Hallo Christian
    Ok, das hatte ich mir ganz anders vorgestellt. Sortiert wird in der Tabelle also garantiert nix, weil das mit den Bildern in der Anordnung keinen Sinn ergibt, wenn ich das richtig sehe. Also müssen die Charts eigentlich nur direkt in die Tabelle geladen und auf den festen Wert 63 % skaliert werden. Das vereinfacht die Sache um einiges. Sofern eine alte Grafik in der betreffenden Zelle liegt, muss sie vorher noch gelöscht werden.
    Jetzt sitze ich den Tag über erstmal im Büro und kann hier natürlich nicht programmieren. Morgen ist dieser Thread dann schon im Archiv und man kann nicht mehr antworten. Wir eröffnen dann einfach einen neuen Thread, um das hier fortzuführen. Ich schlage vor, wir nennen den dann VBA IE Popup öffnen und Bild kopieren (2).
    Viele Grüße,
    Zwenn
    Anzeige
    AW: Lösung noch gesucht?
    31.07.2017 12:07:40
    Christian
    Ok ich werde einen neuen Thread dazu erstellen. Das Bild zu löschen sollte im Rahmen meiner VBA Kenntnisse möglich sein. :)

    301 Forumthreads zu ähnlichen Themen

    Anzeige
    Anzeige
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige