Clever-Excel-Forum

Normale Version: Zellwert auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Abend,

ich bekomme über eine DDE Schnittstelle ständig sich ändernde Werte in eine Zelle (z.B. in Zelle D6) geschrieben.

Ich möchte nun regelmäßig (z.B. alle 60 Minuten) diesen Wert aus Zelle D6 in eine andere Zelle (z.B. A1) auslesen bzw. kopieren.
Der nächste Wert soll nach 120 Minuten in die Zelle darunter geschrieben werden, also in Zelle A2. 
Der nächste Wert soll nach 180 Minuten in die Zelle darunter geschrieben werden, also in Zelle A3 und so weiter.

Ist das mit Excel möglich ?
Wäre über Antworten sehr dankbar.
Hallo Ron,

Ja. Mit der Methode "Application.OnTime".
https://msdn.microsoft.com/de-de/library...96165.aspx
Vielen Dank Helmut :)

Zur Zeit benutze ich noch Ecxel 2010.  
Diese Application.OnTime Methode ist erst ab Office 2013 machbar. 
Allerdings liegt Office 365 schon auf dem Schreibtisch. - muss nur noch installiert werden ;)

Vielleicht könnte jemand noch etwas dazu schreiben, wie ich die eigentliche Procedure dann hinbekomme. 
Also wie ich den Wert aus Zelle D6 regelmäßig (mit der Application.OnTime Methode) in die Zellen A1,A2,A3 usw. untereinander geschrieben bekomme.
Ich möchte die Werte dann in einem Diagramm darstellen. 

Wünsche Euch allen einen schönen Tag :) 
Moin!
Application.OnTime gibt schon seit anno dunnemals.
(Man muss den aktuellen MS-Seiten nicht alles glauben)

Ein recht gutes Tutorial findest Du hier:
http://www.online-excel.de/excel/singsel_vba.php?f=133

Gruß Ralf
Supi :)

Teil 1 meiner Frage ist ja damit geklärt. 

Ich weiß nun leider immer noch nicht, wie ich die Werte aus Zelle D6 in regelmäßigen Abständen in die Zeilen A1, A2, A3, A4 usw. geschrieben bekomme.
Hat jemand dazu eine Idee ?

Kenne mich mit VBA leider gar nicht aus..
Hallo Ron,

hier einmal ein Beispiel:
Code:
Option Explicit

Sub Starte()
Dim lngZeile As Long
Dim blnWeiter As Boolean
Dim datWann As Date
Dim datWiederholung As Date
blnWeiter = ThisWorkbook.Names("Weiter").RefersToRange.Value
If blnWeiter Then
    datWann = ThisWorkbook.Names("Wann").RefersToRange.Value
    datWiederholung = ThisWorkbook.Names("Wiederholung").RefersToRange.Value
    If Now() > datWann - TimeValue("0:0:1") Then
        Call Machs
        datWann = datWann + datWiederholung
        While datWann < Now()
            datWann = datWann + datWiederholung
        Wend
        ThisWorkbook.Names("Wann").RefersToRange.Value = datWann
        Application.OnTime datWann, "Starte"
    Else
        On Error Resume Next
        Application.OnTime datWann, "Starte", , False
        Application.OnTime datWann, "Starte"
        
    End If
End If
End Sub

Sub Stoppe()
Dim datWann As Date
datWann = ThisWorkbook.Names("Wann").RefersToRange.Value
On Error Resume Next
Application.OnTime datWann, "Starte", , False
End Sub

Sub Machs()
Dim lngZeile As Long
lngZeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row + 1
Cells(lngZeile, 1).Value = Cells(6, 4)
Cells(lngZeile, 2).Value = Now()
End Sub

und einige Bemerkungen:
1) Das Programm "Machs" kannst du frei gestalten.
2) Für die Progamme werden 3 benannte Zellen in  der Arbeitsmappe benötigt: "Weiter", "Wann" und "Wiederholung".
3) Du kannst den Zyklus beenden über "Stoppe" oder indem du in die Zelle "Weiter" "falsch" einträgst.
Herzlichen Dank Helmut  :28:

Ich werde das am Wochenende ausprobieren :)
Ein querytabele hat ein beforeupdate und ein afterupdate event.
Vielen Dank - Ihr habt mir bis jetzt sehr geholfen  :28: