Registriert seit: 30.03.2019
Version(en): Office16
17.01.2020, 14:57
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2020, 14:57 von Squal87.)
Hallo zusammen :) ich hab ne kleine Frage und hoffe das mir hier jmd weiterhelfen kann. Ich habe mir ein Makro erstellt das eine Zeile (dessen inhalt sich ständig neu berechnet) kopiert (A1:K1) und in die nächste frei Zeile einfügt, jetzt wäre meine Frage ob es möglich ist das Makro so umzuschreiben das es in Endlosschleife zu jeder vollen Stunde automatisch die Zeile Kopiert und diese in die nächste freie Zeile einfügt. Bräuchte diese Stündlichen Daten um mir einen Überblick über den Verlauf zu verschaffen. Mein aktuelles Makro sieht aktuell so aus (warscheinlich werden jetzt einige die hände über den Kopf zusammenschlagen ;) ) : Code: Public Sub Kopieren()
Dim WkSh_Q As Worksheet Dim WkSh_Z As Worksheet
Set WkSh_Q = ThisWorkbook.Worksheets("Tabelle1") Set WkSh_Z = ThisWorkbook.Worksheets("Tabelle1") WkSh_Q.Range("A1:K1").Copy WkSh_Z.Range("A" & WkSh_Z.Cells(WkSh_Z.Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial _ Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False
End Sub
ich bin für jeden vorschlag dankbar Schon mal Danke im voraus
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, schaue Dir dafür mal Application.OnTime an
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 30.03.2019
Version(en): Office16
17.01.2020, 16:46
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2020, 16:46 von Squal87.)
(17.01.2020, 15:27)schauan schrieb: Hallöchen,
schaue Dir dafür mal Application.OnTime an  Erst mal danke für den Tip:) Wie müsste den das ganze aufgebaut sein? Wenn ich z.b. für jede std vom 00:00:00 bis 23:00:00 diesen code schreibe Code: Application.OnTime When:="15:00:00", Name:="Kopieren"
funktioniert das nicht da er mir dann im VBA bei When:=" den Fehler unbekanntes Argument anzeigt ausserdem hab ich keine ahnung ob er das dann nur heute um 15:00:00 macht oder auch morgen übermorgen usw.
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
17.01.2020, 17:26
(Dieser Beitrag wurde zuletzt bearbeitet: 17.01.2020, 17:26 von marose67.)
Hallo, Wenn ich das richtig verstehe gibst du zur aktualisierung 15Std an. Ich teste jetzt aber auch seit einer Stunde: Zitat:Option Explicit Public Sub StartZeitGeber() Application.OnTime Now + TimeValue("0:0:03"), "Kopieren" End Sub Zitat:Private Sub Kopieren()
Dim WkSh_Q As Worksheet Dim WkSh_Z As Worksheet
Set WkSh_Q = ThisWorkbook.Worksheets("Tabelle1") Set WkSh_Z = ThisWorkbook.Worksheets("Tabelle1") WkSh_Q.Range("A1:K1").Copy WkSh_Z.Range("A" & WkSh_Z.Cells(WkSh_Z.Rows.Count, 1).End(xlUp).Row + 1).PasteSpecial _ Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False Application.CutCopyMode = False
End Sub Beides in einem Modul. Das klappt nur, wenn ich einen Schalter zum Aktualisieren einsetze. Hier sollte eigentlich alle 3 Sekunden aktualisiert werden, damit ich schneller testen kann. Klappt bei mir nicht. Jetzt mache ich aber Feierabend. Irgendwann ist es einfach zu viel Input. Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallöchen, näheres zum Thema erfahrt Ihr u.a. bei Microsoft excel.application.ontimeoder dort: Online - Excel: Application.OnTimebzw. in der sensitiven Hilfe
Wie dort zu sehen ist, gibt es EarliestTime und nicht When usw. Marcus, um das Kopieren zu wiederholen, müsstest Du am Ende vom Kopiermakro auch nochmal den OnTime-Aufruf einfügen, damit es sich selbst wieder aufruft. Ansonsten ist nach einmaliger Ausführung Schluss. Wir hatten vor ein paar Tagen auch schon mal eine Diskussion über OnTime, eventuell geht Ihr mal über die Suche und schaut Euch das an. Unabhängig davon mal noch der Hinweis, dass Excel dann natürlich offen bleiben muss. Man könnte auch über die Aufgabenplanung und ein entsprechendes Script Excel jede Stunde starten, aktualisieren, speichern und wieder schließen. Mit einer geschlossenen Datei gewinnt man aber keine Überblick :21: :22:
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.04.2014
Version(en): Office 2003 - Office 2007 - Office 365
Hallo André,
danke Dir ... mein Rechner hat sich dadurch aufgehangen. Klappt! So etwas würde ich aber nicht empfehlen. Dann würde ich lieber einen Schalter einbauen, damit ich die Daten rein hole.
Gruß Marcus
Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen. Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Squal87, (17.01.2020, 14:57)Squal87 schrieb: Ich habe mir ein Makro erstellt das eine Zeile (dessen inhalt sich ständig neu berechnet) ... in welchen zeitlichen Abständen findet denn diese ständige Neuberechnung statt? Gruß Uwe
Registriert seit: 30.03.2019
Version(en): Office16
18.01.2020, 00:07
(Dieser Beitrag wurde zuletzt bearbeitet: 18.01.2020, 00:20 von Squal87.)
(17.01.2020, 18:45)Kuwer schrieb: Hallo Squal87,
in welchen zeitlichen Abständen findet denn diese ständige Neuberechnung statt?
Gruß Uwe Hallo Uwe, die ausgegebenen Daten ändern sich alle 30sec und kommen von einem Excel Krypto Traiding Bot der 24/7 auf einem gemieteten Server läuft. Zur Optimierung von dem Bot bräuchte ich die Daten für einen Langzeitwert d.h. in regelmäßigen und gleichbleibenden Abständen über einen längeren Zeitraum. Geplant wäre gewesen das der Stand der Daten zu jeder vollen Std Automatisch in eine Liste Kopiert wird. Ich bin mittlerweile so weit das das ganze mit einem Klick per Hand auf nen Butten funktioniert allerdings kann ich nicht 24/7 vorm PC sitzen und jede volle Std klicken Deswegen wäre es optimal wenn das ganze automatisiert funktionieren würde Gruß Klaus
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Klaus, teste mal so: Füge den Code in das schon vorhandene VBA-Modul des entsprechenden Tabellenblatts (Rechtsklick auf den Reiter -> Code anzeigen) ein. Private Sub Worksheet_Calculate() Static datCalc As Date If (Now - datCalc) * 24 >= 1 Then datCalc = Now Cells(Rows.Count, 1).End(xlUp).Offset(1).Resize(, 11).Value = Range("A1:K1").Value End If End Sub Gruß Uwe
Registriert seit: 30.03.2019
Version(en): Office16
(18.01.2020, 01:52)Kuwer schrieb: Hallo Klaus,
teste mal so: Füge den Code in das schon vorhandene VBA-Modul des entsprechenden Tabellenblatts (Rechtsklick auf den Reiter -> Code anzeigen) ein Hallo Uwe, danke für den Code, hab ihn gestern mal laufen lassen. So wie es aussieht funktioniert der Code (fast) wie geplant. Er kopiert die Daten 5 min nach der vollen std, keine ahnung wieso er das nicht genau zur vollen std macht aber die 5 min Zeitverzögerung fallen nicht ins Gewicht. Ausserdem hab ich eine Textdatei die zwichen Stopped und Running wechselt je nachdem ob oder bot läuft oder nicht, bei dieser Zelle zeigts mir beim automatischen kopieren NV# wenn ich das ganze manuell per hand kopiere (Butten) zeigt er es ganz normal an.
|