Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
976to980
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
976to980
976to980
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA anhalten - EXCEL soll weiterarbeiten

VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 13:36:00
peter
Folgende Bitte an euch:
Ich hole mir von einer externen Datenquelle (nicht Office) Daten rein, in dem ich in die entsprechenden Excel Zeilen Formeln mit Bezug zur externen Datenquelle schreiben muss.
Hier die Formeln
Worksheets("VWD_Data").Cells(2 + i, 3).FormulaR1C1 = "=ARENA|'VWD-" & Worksheets("Diverses").Cells(i + 39, 12) & ";UP'!'80'"
Nach dem Reinschreiben der Formeln muss ich mit der weiteren Ausführung von VBA ca. 5 Sekunden warten. Realsiert mittels
Application.OnTime Now + TimeValue("00:00:05"), "Daily_Realtime_End"
5 Sekunden später kann ich dann die externen Daten rein holen und die Daten weiterverarbeiten.
Ich habe versucht die "OnTime" Funktion zu umgehen, da diese mir in eine andere OnTime Rountine "reinfunkt".
Habe es bereits mit Sleep (5000) anstatt "OnTime" funktioniert, doch kann dann Excel nicht die externen Daten reinholen.
Bitte um eure Hilfe.
Grüße
Peter

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 14:01:14
Renee
Hi Peter,
Ich habe versucht die "OnTime" Funktion zu umgehen, da diese mir in eine andere OnTime Rountine "reinfunkt".
Wie soll ich denn das verstehen? VBA arbeitet doch nicht wireless!
Wie sieht denn dein Code bis jetzt aus?
Was funktioniert nicht?
Was ist die Bitte, bitte?
GreetZ Renée

AW: VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 14:17:08
peter
Hallo Renée,
Hier der Code
' Formeln in Excel Zellen reinschreiben
For i = 0 To MAX_INDEX + MAX_WÄHRUNGEN - 1
If Worksheets("Diverses").Cells(i + 39, 12) "" Then
'bei "" ist der Index via VWD nicht verfügbar
Worksheets("VWD_Data").Cells(2 + i, 3).FormulaR1C1 = "=ARENA|'VWD-" & Worksheets("Diverses").Cells(i + 39, 12) & ";UP'!'80'" 'VWD Aufforderungreinschreiben
End If
Next i
Worksheets("VWD_Data").Calculate
'--- Excel für Verbindung mit VWD Market Manager 5s Zeit lassen
Application.OnTime Now + TimeValue("00:00:05"), "Daily_Realtime_End"
'Daily_Realtime_End
....
End Sub
Sub Daily_Realtime_End()
'Realtime letzer Teil: Die Ergebnisse werden als Werte kopiert und Formeln gelöscht.
'Danach werden in "Daily_Daten_ohne_Realtime" die Realtime Daten eingebettet.
Dim compareTime As Date
Dim pfad As String
'Daten von Spalte C nach D kopieren und Inhalt Spalte C löschen
Worksheets("VWD_Data").Activate
Range("C2:C55").Select
Selection.Copy
Range("D2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("C2:C55").Select
Selection.ClearContents
'------ Market Manager schließen -----
'Die beiden Functions SendMessage und FindWindow sind fürs Schließen des Market Manager wichtig; siehe auch https://www.herber.de/forum/archiv/396to400/t398943.htm
pfad = "vwd market manager C:\Programme\vwd market manager\Workspace\AIO_Indizes.wss"
SendMessage FindWindow(vbNullString, pfad), &H10, 0, 0
Das mit dem OnTime möchte ich anders lösen bzw. ohne OnTime auskommen, da es Probleme verursacht.
Danke.
Grüße
Peter

Anzeige
AW: VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 14:40:55
Renee
Hi Peter,
Wenn diese Verbindung wirklich darauf angewiesen ist, 'EXCEL 5 Sekunden' Zeit zu geben, sehe ich keine andere Lösung als die .OnTime Methode. Es ist die einzige Möglichkeit EXCEL aus dem Griff eines Makros zu befreien und 'später' automatisch wieder was per VBA zu machen.
Leider erläuterst du nicht die Probleme die .OnTime verursachen soll.
Vielleicht bekämpfst du ein Symptom, statt die Ursache.
GreetZ Renée

AW: VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 15:01:00
peter
Hallo Renee,
Mein Programm startet via onTime eine Sub.
In der Sub wird dass ein zweites onTime geöffnet und dieses onTime springt mir in das Programm, dass die erste onTime startet. Das stört mich.
Grüße
Peter

Anzeige
Von hinten durch die Brust...
09.05.2008 15:10:00
Renee
ins Auge? Peter...
Dann scheint mir eher ein konzeptioneller Fehler in deiner Programmablaufplanung vorzuliegen. Ob du da .OnTime oder sonstwas verwendest ist dabei nebensächlich. Auch dein geposteter Code, sieht gar nicht nach VBA gut aus. Für was sind all die .Activates und .Selects ?
GreetZ Renée

Probiere es mal mit DoEvents
09.05.2008 14:02:25
NoNet
Hallo Peter,
schau Dir mal die Funktion "DoEvents" in der Onlinehilfe an, vielleicht hilft sie Dir !
eine Frage : WIE kommen die Daten ins Excel ? Per RTD-Server oder ComAddIn ?
"=ARENA|'VWD-" bezieht sich wohl auf die AWD-Arena in Hannover oder VW-Arena in Wolfsburg ?!?!
Steht dieser PREFIX für eine Datei oder für eine Art Protokoll ?
Diese Themen interessieren mich, da ich von beiden NULL Ahnung habe ;-)
Gruß, NoNet

Anzeige
AW: VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 14:12:46
peter
Hallo NoNet,
"ARENA-VWD" ist eine Datenbank für Börsenkurse.
Wenn "VWD" geöffnet ist und der entsprechende Formeleintrag in einer EXCEL Zelle steht, dann holst sich EXCEL die entsprechenden Kurse. Nach dem Eintrag der Formel muss nun Excel ca. 5 Sekunden Zeit gelassen werden, damit es von VWD die Daten erhält.
Diese 5 Sekunden warten habe ich mit OnTime und dem Aufruf einer zusätzlichen Sub realisiert. Nun möchte ich das ganze ohne OnTime realisieren.
Wie würde das mit DoEvents ausschauen oder wie sonst?
Danke.
Grüße
Peter

AW: VBA anhalten - EXCEL soll weiterarbeiten
09.05.2008 14:17:50
peter
Text:
Hallo NoNet,
"ARENA-VWD" ist eine Datenbank für Börsenkurse.
Wenn "VWD" geöffnet ist und der entsprechende Formeleintrag in einer EXCEL Zelle steht, dann holst sich EXCEL die entsprechenden Kurse. Nach dem Eintrag der Formel muss nun Excel ca. 5 Sekunden Zeit gelassen werden, damit es von VWD die Daten erhält.
Diese 5 Sekunden warten habe ich mit OnTime und dem Aufruf einer zusätzlichen Sub realisiert. Nun möchte ich das ganze ohne OnTime realisieren.
Wie würde das mit DoEvents ausschauen oder wie sonst?
Danke.
Grüße
Peter

Anzeige
Frage doch mal beim Hersteller nach
09.05.2008 14:50:00
NoNet
Hallo Peter,
habe gerade die (kostenpflichtige) Hersteller-Support-Seite des AddIns gefunden :
http://www.vwd.com/vwd/support.htm
Die Daten werden (wie ich vermutete) von einem RTD-Server übertragen.
Evtl. kann man Dir dort mit einem VBA-Codeschnipsel weiterhelfgen, da ich vermute, dass andere Anwender wohl auch schon das gleiche Anliegen hatten und den Hersteller um Rat gefragt haben.
Es wäre nett, wenn Du die Antwort hier veröffentlichen würdest....
Gruß, NoNet

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige