Daten über DDE Schnittstelle

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Daten über DDE Schnittstelle
von: fheinig
Geschrieben am: 01.11.2003 17:32:57

Hallo,

Ich erhalte Börsendaten über die DDE Schnittstelle. Diese werden über DDE ständig aktuallisiert, aber nur in der ausgewählten Zelle.
Ich möchte nun bei jeder Aktuallisierung den neuen Wert in die unter dem vorherigen Wert liegende Zelle schreiben und somit eine Kursliste über den ganzen Tag erstellen.
Wie könnte dies möglich sein?

MfG F.Heinig

Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: K.Rola
Geschrieben am: 01.11.2003 21:18:16

Hallo,

teste doch mal, ob die Datenübertragung ein Change- Ereignis in der
Tabelle auslöst. Mit der rechten Maustaste auf das Tabellenregister klicken, Code anzeigen und dort aus dem linken dropdown Worksheet auswählen.
Es wird ein Prozedurrahmen für das SelectionChange- Ereignis erzeugt.
Wähl nun aus dem rechten dropdown das Change- Ereignis und gib mal ein:
msgbox "changed"
Teil mal mit, ob da was passiert, wenn Daten eintrudeln.

Gruß K.Rola


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: Nepumuk
Geschrieben am: 01.11.2003 23:00:35

Hallo K.Rola,

das Problem hatte ich schon mal. Die DDE - Verbindung löst, wie eine Formel oder Verknüpfung, kein Change - Ereignis aus. Die einzige Möglichkeit war, mit OnTime eine Abfrage zu starten und, falls eine Zelle gefüllt wurde, einen Zähler hoch zu setzen der die nächste Zeile angab.

Gruß
Nepumuk


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: K.Rola
Geschrieben am: 02.11.2003 00:20:42

Hallo, Nepumuk,

long time not seen!

Da kann man doch bestimmt was mit Calculate tricksen, indem
man sich auf die fragliche Zelle bezieht und eine Pseudo- Berechnung
macht, oder wie siehst du, als Experte, das?

Gruß K.Rola


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: Nepumuk
Geschrieben am: 02.11.2003 01:21:19

Hallo K.Rola,

ich musste zum Rapport und zur Schulung nach Stockholm.

Mit Calculate, wie du als Profi richtig feststellst, geht das natürlich auch. In eine Zelle die Summe der betroffenen Spalte zum Beispiel. Wenn diese Summe dann durch die Anzahl der gefüllten Zeilen geteilt wird, kommt sogar ein statistisch verwertbarer Durchschnitt dabei heraus.

Gruß
Nepumuk


Bild


Betrifft: Calculate?
von: Reinhard
Geschrieben am: 02.11.2003 09:45:26

Moin Nepumuk KRola,
ich versteh da grad nur das Gebäude wo die Bahnhofsuhr dranhängt:-)

Also, ich habe die Formeln:
in A1: =A2+A3
in D1: =Summe(A1:A3)/3

weiterhin habe ich in Tabelle1:


Private Sub Worksheet_Change(ByVal Target As Range)
'Calculate
Range("A1").Calculate
Range("A2").Calculate
Range("A3").Calculate
Range("D1").Calculate
If Target.Address(0, 0) <> A1 Then Exit Sub
MsgBox "hier"
End Sub



Die Idee mit dem Ontime habe ich kapiert. Ich starte bei workbook_open oder worksheet_activate ein Timer Makro dass mir A1 alle 3 sekunden ausliest, mit dem alten Wert vergleicht und dann dementsprechend handelt.
Aber mit Calculate kann ich da nichts 'tricksen', also aus einer Formel ein Change-Ereignis auslösen. Zumindest komme ich da nicht auf den 'Trick'
Wie geht er denn?
Danke.
Gruß
Reinhard


Bild


Betrifft: AW: Calculate?
von: Nepumuk
Geschrieben am: 02.11.2003 10:45:00

Hallo Reinhard,
Calculate ist ein Ereignis des Worksheetobjektes. Es kommt in das Klassenmodul der Tabelle und hat die einfache Syntax: Private Sub Worksheet_Calculate()
So wie Worksheet_Change, Worksheet_SelectionChange ...... . Die Ereignisse findest du in der rechten Combobox über dem Editorfenster.
Gruß
Nepumuk


Bild


Betrifft: axo
von: Reinhard
Geschrieben am: 02.11.2003 11:16:20

Hallo Nepumuk,
dieses Calculate meinst du. Alles klar, danke dir.
Hatte das noch nie benutzt weil ich keinen Grund sah.
Wieder was gelernt
Gruß
Reinhard


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: Karl-Otto Reimann
Geschrieben am: 03.11.2003 12:57:30

Hallo fheinig


Sub min_1()
NextTime = Now + TimeValue("00:01:00")
Application.OnTime NextTime, "min_1"
Application.ScreenUpdating = False
Sheets("data").Select
varCol = 1
If varCol = "" Then Exit Sub
Set rng = Cells(Rows.Count, CInt(varCol)).End(xlUp)
rng.Offset(1, 0).Select
With ActiveCell
'''In A2:BO2 stehen Verknüpfungen über eine DDE-Schnittstelle, die automatisch
'''aktuakisiert werden (Extras/Optionen/Berechnen/Remotebezüge aktualisieren)
'''und jede Minute kommt eine neue Zeile unter die letzte
Range(.Offset(0, 0), .Offset(0, 66)).Value = Sheets("Data").Range("a2:bo2").Value
End With
End Sub


Gruß KO


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: Karl-Otto Reimann
Geschrieben am: 03.11.2003 18:01:52

Nicht weglaufen, ich hatte hier auf eine Antwort gewartet, wird doch sonst
alles zu unübersichtlich.

Also: In welcher Form werden Deine Daten importiert, oder anders gefragt:
welches Programm übernimmt die Server-Funktion?
Was passiert, wenn Du unter Extras/Optionen/Berechnen/Remotebezüge aktualisieren
das Häkchen setzt?


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: Falk Heinig
Geschrieben am: 03.11.2003 20:00:35

Hallo,

danke für die schnelle Reaktion!
Ich bin jetzt schon einen Schritt weiter, habe mit Hilfe von andreas e schon das Makro eingebaut, leider gibt es ein Problem: Laufzeitfehler "9" - Index außerhalb des gültigen Bereichs ist die Anzeige, Du kannst damit bestimmt was anfangen, ich leider nicht.
??????????????
Zu Deiner Frage:
Die Daten kommen vom Videotextprogramm einer Hauppauge TV Karte, nennt sich VT plus, mann markiert den Bereich, den mann übertragen will, und gibt die Daten über "kopieren" an die DDE Schnittstelle weiter.
In Excel lese ich die Daten dann über "Inhalte einfügen" und verknüpfen in die Zellen A1 und B1 ein. Funkt. einwandfrei.
Es wird jedoch immer nur in der jeweiligen Zelle geändert.
Idealer Fall währe, wenn ein Datensatz in Spalte A und ein Datensatz in Spalte B fortlaufend untereinander abgelegt würde.(ist wichtig für die Weiterverarbeitung der Daten)
Ich hoffe du kannst mit meiner Erklärung etwas anfangen.

MfG Falk Heinig


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: Karl-Otto Reimann
Geschrieben am: 04.11.2003 10:04:35

Hallo Falk

In A2 steht folgende Verknüpfung: =VTPLUS|NTV215!'1,1,,,B(7/5/12/5)'
in A3: =VTPLUS|NTV215!'1,1,,,B(35/5/39/5)'

Wenn Du unter Extras/Optionen/Berechnen/Remotebezüge aktualisieren das Häkchen setzt
und unter Extras/Optionen/Berechnen/Automatisch die Berechnung automatisierst,
werden dann die Daten automatisch aktualisiert?
Gruß KO


Bild


Betrifft: AW: Daten über DDE Schnittstelle
von: fheinig
Geschrieben am: 04.11.2003 17:14:39

Hallo,

in A2 steht: =VTPlus|'S01_201'!'1,1,,,B(14/14/20/14)'
in B2 steht: =VTPlus|'S01_201'!'1,1,,,B(35/14/39/14)'
Ich habe wegen der Weiterverarbeitung der Daten den 2. Datensatz in B2 importiert.

___Wenn Du unter Extras/Optionen/Berechnen/Remotebezüge aktualisieren das Häkchen setzt
und unter Extras/Optionen/Berechnen/Automatisch die Berechnung automatisierst,
werden dann die Daten automatisch aktualisiert?___

Häkchen sind gesetzt, Daten werden einwandfrei in den Zellen A2 und B2 aktuallisiert.
Beim Starten des Makros erfolgt o.g. Fehlermeldung??????????????
Als Anlage habe ich Dir mal meine Datei beigelegt.
https://www.herber.de/bbs/user/1742.xls

Vielen Dank im Voraus!!!!!!!!!!

MfG F.Heinig


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Daten über DDE Schnittstelle"