Anzeige
Archiv - Navigation
1500to1504
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

Liniendiagramm aus Daten von einer Zelle

Liniendiagramm aus Daten von einer Zelle
30.06.2016 13:17:23
einer
Hallo an alle! Ich bin absoluter VBA-Neuling und kenne nur die absoluten Basics, was das Programmieren damit angeht und habe auch schon jedes Forum, das man im Internet finden kann, durchsucht, aber nichts zu meinem Problem finden können.
Und zwar:
mein Excel zieht sich aus einer externen Quelle die aktuellen Kurse von 2 Aktien; in einer anderen Zelle wird anhand dieser Daten der Spread zwischen den beiden Kursen berechnet.
Ist es jetzt möglich, dass der Wert, der ständig in dieser Zelle aktualisiert wird (ca. alle 2-3 Sek.) grafisch in einem Liniendiagramm mit der dazugehörigen Uhrzeit darzustellen (die Uhrzeit, an dem sich der Spread ändert, wird in einer anderen Zelle auch ständig aktualisiert)?
Dabei soll auch ein richtiges Liniendiagramm enstehen und nicht nur ein Punkt, der immer hin und her springt... :)
Liege ich da richtig, dass man dabei das Worksheet_change event benutzen muss?
Ich hoffe mir kann irgendjemand weiterhelfen, sonst verzweifle ich noch...
Vielen Dank schonmal vorab für Antworten!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte Näheres
30.06.2016 13:53:31
Michael
Hi Sabine,
was heißt "zieht aus einer externen Quelle"?
Benutzt Du eine DDE-Schnittstelle oder ein Excel-Makro, das auf irgendeine Seite mit Kursen zugreift?
Möchtest Du eine Grafik für einen ganzen Börsentag oder nur einen Schnitt aus den letzten z.B. zwei Stunden?
30 pro Minute mal 60 Minuten mal keine Ahnung, 8? macht 14400 Werte pro Tag...
Das ist natürlich kein Problem für Excel, nur: wenn Du ein Bildschirm-Pixel pro Wert nimmst (und weniger geht ja schlecht), brauchst Du einen Monitor mit einer entsprechenden Auflösung, oder Du scrollst Dir einen Wolf. Üblich sind etwa 1080 Pixel, d.h. Deine Linie ist rund 14 Bildschirme breit.
Schöne Grüße,
Michael

Anzeige
AW: Bitte Näheres
30.06.2016 14:39:33
Sabine
Die Kurse kommen von einer DDE-Schnittstelle, genau
Die letzten 2 Stunden würden komplett ausreichen,
auch würde es ausreichen, wenn sich das Diagramm nur alle 10 Sek., von mir aus auch jede 1 Minute, fortsetzt

AW: Bitte Näheres
30.06.2016 16:36:55
Michael
DDE: Schade, denn mit einem eigenen Makro hättest Du die Wertetabelle gleich händisch schreiben können.
Ein Freund von mir hat damit x Jahre agiert und immer wieder Probleme gehabt: schon bei Ur-Excel stand im Handbuch, DDE sei veraltet.
Was tut man nicht alles für echte real-time-Kurse...
Ok, ich kann hier nicht austesten, ob DDE ein Worksheetchange auslöst; schlimmstenfalls müßte man ein Worksheet_Calc nehmen, bezogen auf die eine Zelle, in der die Differenz gebildet wird, oder, wenn es nur alle paar Sekunden sein soll, dann am einfachsten ganz anders: einfach turnusmäßig Werte auslesen.
Option Explicit
'Grundsatz-Infos aus:
'http://www.online-excel.de/excel/singsel_vba.php?f=133
Dim iTimerSet As Double
Dim z&
Dim D3
Dim initT As Boolean
Const zVon = 7, zBis = 126 ' für 120 Werte, also 2h mit 2/Minute
Public Sub SekundenZaehler()
Range("H1") = Range("H1") + 1 ' Diese Zeile dann raus
iTimerSet = iTimerSet + TimeValue("0:0:2") ' hier bitte dann auf "0:0:30" setzen
If initT Then initT = False Else machen
Application.OnTime iTimerSet, "SekundenZaehler"
End Sub
Public Sub EndeUhr()
On Error Resume Next ' Sehr faul programmiert
Application.OnTime iTimerSet, "SekundenZaehler", , False
iTimerSet = 0
initT = False
Range("H1") = "Ende"
End Sub
Sub init()
Set D3 = Range("D3")
Range("B" & zVon & ":C" & zBis).ClearContents
Range("H1") = 0
iTimerSet = Now
z = zVon
initT = True
SekundenZaehler
End Sub
Sub machen()
If z 
Datei mit Spielformeln und Diagramm: https://www.herber.de/bbs/user/106656.xlsm
Happy Exceling,
Michael

Anzeige
AW: Bitte Näheres
01.07.2016 12:03:30
Sabine
wow....ich bin baff!!! Vielen Dank erstmal für die unglaubliche Mühe!!
Das hätte ich niemals so hinbekommen, und es klappt alles!
sobald ich jedoch in einer anderen Excel Arbeitsmappe arbeiten möchte, und es ist genau der Zeitpunkt, an dem er sich die Daten zieht, kommt die Meldung "Laufzeitfehler '13': Typen unverträglich
könnte man das noch irgendwie beheben? z.bsp. dass er jedes mal, wenn der Zeitpunkt gekommen ist, das worksheet aktiviert und danach wieder deaktiviert oder so...? ;) geht das?
aber sonst ist wirklich alles einwandfrei!!
Danke Michael, hast mich sehr glücklich gemacht :)))

Anzeige
AW: Bitte Näheres
01.07.2016 16:40:30
Michael
Hi Sabine,
wie Peter im genannten Link schreibt, bezieht sich das Application.Ontime immer auf EXCEL, nicht auf eine bestimmte Arbeitsmappe, wodurch sich der Fehler erklären würde.
In den dortigen Beispielen ist immer die komplette "Objektstruktur" angegeben, also nicht nur range(bla)=, sondern Thisworkbook.activesheet.range oder thisworkbook.sheets("nurDieses").range
Ich hatte keinen unmittelbaren Sinn darin gesehen, und weil ich ungern mehr schreibe, als ich muß, habe ich es weggelassen.
Naja, ich mache das auch nicht täglich, und um P.H. zu zitieren: "aber auf die Tücken reinfallen müssen Sie dann schon selber": gleich "professionell" erledigt.
Ok, kommst Du damit zurecht?
Schöne Grüße,
Michael

Anzeige
AW: Bitte Näheres
04.07.2016 11:34:46
Sabine
Hi Michael,
ok, verstehe was du meinst, aber wie kann ich das jetzt ändern?
Ich wollte diese Datei eigentlich im Hintergrund laufen lassen und immer wieder nach Bedarf mal reingucken.
Währenddessen in anderen Excel-Dateien zu arbeiten klappt ja dann nicht..
und leider reichen meine VBA-Kenntnisse dafür nicht aus, um zu wissen, wie das abgeändert werden müsste :(

AW: Bitte Näheres
04.07.2016 11:48:29
Sabine
ahhh, ich habs doch rausgefunden :))
Habe überall wo Range(...)... stand davor noch
ThisWorkbook.Worksheets(1).
eingefügt, und jetzt klappts!!
Vielen Dank!!

Anzeige
aha, genau das hatte ich gemeint
04.07.2016 13:43:03
Michael
Hi Sabine,
ich hatte schon befürchtet, daß meine Antwort zu abstrakt ist.
Aber Du hast es ja denn doch hinbekommen: sehr gut!
Danke für die Nachricht & happy exceling,
Michael

349 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige