Anzeige
Archiv - Navigation
408to412
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
408to412
408to412
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

DDE mit VTPlus

DDE mit VTPlus
Micha
Hallo,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: DDE mit VTPlus
michael
Hallo,
wie liest du die Daten vom Videotext in den PC per tV-KArte? Welches Format haben die Kurslisten dann?
was ist VTPlus - klingt interessant, da müsste man nicht immer online gehen um die Kurse abzufragen!
mfg
AW: DDE mit VTPlus
Karl-Otto
Hallo Micha
Wenn Du die Seiten "zu Fuss" aufrufst, funktionieren die Verknüpfungen.
Wenn Du das ganze per VBA machst, nicht. Folgenden Trick wende ich an:
Beispiel für zwei Seiten:

Sub Seite111()
kanal = DDEInitiate("VTPlus", "System")
DDEExecute kanal, "[GET 111 REPEAT=Yes]"
DDETerminate kanal
End Sub


Sub Seite201()
kanal = DDEInitiate("VTPlus", "System")
DDEExecute kanal, "[GET 201 REPEAT=Yes]"
DDETerminate kanal
End Sub


Sub Übersicht_aufrufen()
With Application
Run "VTPlus_Client.xls!Seite111"
.Wait (Now) + TimeSerial(0, 0, 2)
.Run "VTPlus_Client.xls!Seite201"
.Wait (Now) + TimeSerial(0, 0, 2)
.Run "VTPlus_Client.xls!Seite202"
End With
End Sub

Also ganz simpel, wenn 2 Sekunden vergehen, funktionieren auch die Verknüpfungen wieder.
Diese füge ich erst nach dem vollständigen Empfang per VBA als Matrix ein.
Gruß
Karl-Otto
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige