PDA

Vollständige Version anzeigen : wer kennt sich mit Makros aus?


dadadave
19.08.2017, 18:12
Ich habe heute erst mich mit dem Makros angefangen zu beschäftigen, da ich gern ein Automatismus in Excel hätte.

Das Arbeitsblatt "log" soll sich alle 10 Minuten automatisch auf einen bestimmten Laufwerksbuchstaben als eine CSV Datei speichern.

Durch Recherche habe ich mir den folgenden Code zusammen gesammelt:

Sub CSV_export()

Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="L:log.csv", _
FileFormat:=xlCSV, CreateBackup:=False
Application.DisplayAlerts = True


End Sub

Sub autosave()
Dim nexttime
ActiveWorkbook.Save
nexttime = Now + TimeValue("00:01:00")
Application.OnTime nexttime, "autosave"
End Sub


Aber das funktioniert leider nicht wirklich. Natürlich will ich auch keine Fehlermeldung drücken müssen "Datei ist bereits vorhanden..."

Kann mir jemand den Weg bzw. die Lösung aufzeigen?

Hajo_Zi
19.08.2017, 18:20
Die Zeit sollte man als Public definieren, damit das Makro angehalten werden kann.
Viele Beispiele zu OnTime.
http://hajo-excel.de/inhalt_vba_blinken.htm

<img src="http://Hajo-Excel.de/images/grusz1.gif" align="middle" height="40" alt="Grußformel"><a href="http://Hajo-Excel.de/index.htm"><img border="0" src="http://Hajo-Excel.de/images/logo_hajo3.gif" align="middle" height="40" alt="Homepage"></a>

dadadave
19.08.2017, 18:31
Danke für die Antwort.

Jetzt weiß ich als Laie nicht was Du damit meinst mit Public.

amicro2000
19.08.2017, 18:33
Hallo dadadave,

das hier in ein Modul kopieren.

Public nexttime As Date

Sub autosave()
CSV_export
nexttime = Now + TimeValue("00:01:00")
Application.OnTime nexttime, "autosave"
End Sub

Sub CSV_export()
Application.DisplayAlerts = False
ThisWorkbook.Worksheets("Tabelle1").Copy
ActiveWorkbook.SaveAs Filename:="L:log.csv", _
FileFormat:=xlCSV, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
End Sub

und autosave starten.

dadadave
19.08.2017, 19:10
Es funktioniert :-)

herzlichen Dank.

Wie ich mich freue :-) :-) :-)

Hajo_Zi
20.08.2017, 06:37
Gurt Du wolltest Dir meine Beispiele nicht ansehen.
Deine Datei wird immer wieder geöffnet, das wolltest Du aber so.

<a href="http://Hajo-Excel.de/index.htm" target="_blank" title="Hajo's Excelseiten">Gruß Hajo</a>

Luschi
20.08.2017, 08:51
Hallo dadadave,

ich frage mich, warum Du je 1 Minute
(nexttime = Now + TimeValue("00:01:00") eine Datensicherung von einer Tabelle machst,
wenn die vorhergehende Sicherung einfach überschrieben wird.
Dann reicht es doch, wenn man diese Sicherung im Excel-Ereignis
'Workbook_BeforeClose' packt und nicht mit dem Timer arbeitet.
Aller 10 Minuten sind übrigens: Now + TimeValue("00:10:00")
Oder stürtzt Deine Kiste so oft ab, daß wenigsten die letzte Sicherung noch vorhanden ist.
Du solltest außerdem den eingestelleten Timer vor dem Schließen von Excel wieder deaktivieren, da der Timer-Prozeß von Windows (und nicht von Excel) verwaltet wird. Wundere Dich also nicht, wenn nach dem Beenden von Excel die Datei plötzlich wieder von Geisterhand gestartet wird.

Gruß von Luschi
aus klein-Paris