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.
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 :)
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: