Archiv verlassen und diese Seite im Standarddesign anzeigen : Mit Excel so etwas wie Datenlogging machen
Import-Script
30.08.2002, 20:17
Hallo, ich habe folgendes Problem: <BR>In einem Excel-Sheet wird laufend ein Wert, der von einer anderen Anwendung über DDE reinkommt (aus einer Steuerung) automatisch aktualisiert. Ich hätte jetzt gern ein Protokoll (in der gleichen Excel-Mappe), das die Änderungen dieser Werte auflistet. <BR>Wie kann ich nun zyklisch eine Funktion aufrufen, die den aktuellen Wert mit dem vorherigen vergleicht? Das "Timer-Steuerelement", das es wohl bei Visual Basic geben soll, finde ich in dem Visual-Basic-Editor, der bei Office dabei ist, nicht.
Import-Script
30.08.2002, 20:47
Probier mal folgendes: <BR> <BR>Public Declare Function SetTimer Lib "user32" Alias "SetTimer" (ByVal hWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long <BR> <BR>Private sub CmdStart_click() <BR>dim i as long <BR>i = SetTimer(Me.hwn,88,5000,AddressOf Test) <BR>end sub <BR> <BR>sub Test() <BR>'Tu was <BR>end sub <BR> <BR>Ich hoffe nur mal, man hat den AddressOf Operator in VBS...
Import-Script
30.08.2002, 22:58
Danke, geht ganz prima! <BR>Musste es nur ein bisschen modifizieren, weil ich den Timer sonst nicht mehr richtig anhalten konnte. <BR>Das AddressOf ging erst, nachdem ich ein eigenes Modul angelegt hatte, also nicht innerhalb des Codes, der zur Tabelle gehört. <BR>Nun ja, von VB habe ich ansonsten null Ahnung, vielleicht müsste ich mich mal näher damit beschäftigen.
Import-Script
30.08.2002, 23:08
Ah ja stimmt. Ich hatte ganz vergessen, das der AddressOf ja nur in Modulen geht. <BR> <BR>Ja und den Me.HWnd Fehler hast du bestimmt auch gefunden. <BR> <BR>Hauptsache es funzt jezt oder? <BR> <BR>Gruß Tobias
Import-Script
31.08.2002, 00:05
Hm, also das Me.HWnd habe ich nicht verstanden (und ging auch nicht - erst habe ich this probiert, aber dann ging nachher trotzdem das KillTimer nicht. Vielleicht gilt die Tabelle nicht als Fenster?). Aber über SetTimer und KillTimer hatte ich woanders was stehen, und deshalb sehen meine Aufrufe jetzt so aus (also i ist praktisch die Timer-ID): <BR> <BR>Private i As Long <BR> <BR>Public Sub StartLogging_Click() <BR> i = SetTimer(0, 88, 5000, AddressOf OnTimer) <BR> Sheets("Tabelle1").Range("H10") = "active" <BR>End Sub <BR> <BR>Public Sub StopLogging_Click() <BR> Dim b As Boolean <BR> b = KillTimer(0, i) <BR> Sheets("Tabelle1").Range("H10") = "stopped" <BR>End Sub <BR>
Import-Script
31.08.2002, 00:09
Wobei, this konnte eigentlich nicht gehen, weil es ja einmal auf die eine und einmal auf die andere Funktion zeigt. <BR> <BR>Aber wie du sagst: Hauptsache, es funzt jetzt. <BR>Also danke nochmal.
Powered by vBulletin® Version 4.1.7 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.