DDE mit VTPlus
Micha
Mit dem u.a. VBA-Programm möchte ich 5 Kurse aus einer Videotextseite auslesen. Dazu soll ein Tabellenblatt temporär angelegt werden, die Daten werden dort hinein gelesen. Anschließend sollen die Daten per Knopfdruck als Wert (nicht als Verknüpfung) in eine andere Seite übertragen werden und die temporäre Seite wieder gelöscht werden. Leider funktioniert es nicht wie vorgestellt. Es steht dann immer #NV in den Zellen. Offensichtlich erfolgt die Übertragung der Daten nicht schnell genug. Ich hoffe nun, daß mir kann jemand mit einem Tip helfen kann.
MfG. Michael
Antwort = MsgBox("Werte automatisch aus Videotext ermitteln?", vbQuestion + vbYesNo)
If Antwort = vbYes Then
'neue Tabelle "Import" einfügen
'******************************
ActiveWorkbook.Worksheets.Add.Name = "Import"
Worksheets("Import").Select
Cells(1, 1) = "Dax"
Cells(2, 1) = "Dow"
Cells(3, 1) = "CAC"
Cells(4, 1) = "FTSE"
Cells(5, 1) = "Nikkei"
'Import aus VTPlus
'*****************
Sender = "n-tv" 'Senderkennung für n-tv
Prog = "d:\vtplus\vtplus.EXE" 'Pfad von VTPLUS
Ergebnis = Shell(Prog, vbMinimizedNoFocus) 'VTPlus starten
kanal = DDEInitiate("VTPlus", "System")
While DDERequest(kanal, "STATUS")(1) "Ready"
Wend
DDEExecute kanal, "[TVSTATION " + Sender + "]"
While DDERequest(kanal, "STATUS")(1) "Ready"
Wend
DDEExecute kanal, "[SET MULTICHANNEL=YES]"
While DDERequest(kanal, "STATUS")(1) "Ready"
Wend
DDEExecute kanal, "[GET 204 REPEAT=yes direct=yes]"
While DDERequest(kanal, "STATUS")(1) "Ready"
Wend
Cells(1, 2) = "=VTPlus|'n-tv204'!'1,1,,,B(12/4/20/4)'" 'DAX
Cells(2, 2) = "=VTPlus|'n-tv204'!'1,1,,,B(12/7/20/7)'" 'DOW
Cells(3, 2) = "=VTPlus|'n-tv204'!'1,1,,,B(12/14/20/14)'" 'CAC
Cells(4, 2) = "=VTPlus|'n-tv204'!'1,1,,,B(12/13/20/13)'" 'FTSE
Cells(5, 2) = "=VTPlus|'n-tv204'!'1,1,,,B(12/10/20/10)'" 'Nikkei
Antwort = MsgBox("Werte übernehmen?", vbQuestion + vbYesNo)
If Antwort = vbYes Then
Worksheets("Indizes").Cells(neueZ.Row, 3).Value = Worksheets("Import").Cells(1, 2).Value
Worksheets("Indizes").Cells(neueZ.Row, 5).Value = Worksheets("Import").Cells(2, 2).Value
Worksheets("Indizes").Cells(neueZ.Row, 7).Value = Worksheets("Import").Cells(3, 2).Value
Worksheets("Indizes").Cells(neueZ.Row, 9).Value = Worksheets("Import").Cells(4, 2).Value
Worksheets("Indizes").Cells(neueZ.Row, 11).Value = Worksheets("Import").Cells(5, 2).Value
End If
'Tabelle "Import" löschen
'*************************
DDEExecute kanal, "[EXITAPPL]"
Application.DisplayAlerts = False
Worksheets("Import").Delete
Application.DisplayAlerts = True
End If