macro alle 30 sek. wiederholen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: macro alle 30 sek. wiederholen
von: Uwe
Geschrieben am: 07.06.2015 15:47:54

Einen schönen Sonntag an Alle,
wie bekomme ich es hin das ein Macro nach Ablauf einer gewissen Zeit sich wiederholt.
Es geht im Grunde nur um eine eingelesene txt Datei automatisch zu aktualisieren.
Option Explicit

Private Sub Workbook_Open()
Application.OnTime Now + TimeSerial(0, 0, 30), "autoakt2"
End Sub
so wie ich das dachte wird hier nur nach 30 sek. das macro angestoßen und sonst nix.
Vorab schon mal vielen Dank für euer Hilfe!
Gruß Uwe

Bild

Betrifft: AW: macro alle 30 sek. wiederholen
von: Sepp
Geschrieben am: 07.06.2015 15:53:18
Hallo Uwe,

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_Open()
  StartTimer
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
  StopTimer
End Sub


' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public RunWhen As Double
Public Const cRunIntervalSeconds = 1800 ' Intervall in Sekunden
Public Const cRunWhat = "autoakt2"

Sub StartTimer()
  RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
  Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
    schedule:=True
End Sub


Sub autoakt2()
  
  MsgBox "Test"
  
  StartTimer
  
End Sub


Sub StopTimer()
  On Error Resume Next
  Application.OnTime earliesttime:=RunWhen, _
    procedure:=cRunWhat, schedule:=False
End Sub


Gruß Sepp


Bild

Betrifft: cRunIntervalSeconds = 30 , für einen ...
von: Sepp
Geschrieben am: 07.06.2015 15:56:09
... 30 Sekunden Interval!

Gruß Sepp


Bild

Betrifft: AW: macro alle 30 sek. wiederholen
von: Daniel
Geschrieben am: 07.06.2015 16:04:11
HI
du musst das Application.Ontime auch im Makro "autoakt2" ausführen, das Makro muss sich also immer selbst aufrufen.
allerdings musst du hierbei beachten, dass du den zuletzt gemachten Aufruf zurücknimmst, wenn du die Datei schließt.
ansonsten wird sich die Datei nach den 30 sec. öffnen und das Makro ausführen.
daher brauchst du folgende Codes noch zusätzlich:
1. in einem allgemeinen Modul

Option Explicit
Public NächsteStartzeit as Date
Sub autoakt2()
...
NächsteStartzeit = Now + TimeSerial(0, 0, 30)
Application.Ontime NächsteStartzeit, "autoakt"
End Sub
2. im Modul "DieseArbeitsmappe"
Private Sub Workbook_Open()
NächsteStartzeit = Now + TimeSerial(0, 0, 30)
Application.OnTime NächsteStartzeit, "autoakt2"
End Sub
Private Sub Workbook_BeforeClose(Cancel As Boolean)
if NächsteStartzeit > Now then Application.Ontime NächsteStartzeit, "autoakt2", schedule:=false
End Sub

wenns aber nur um das reine Aktualisieren der Textdatei ohne weiter Markos geht, dann kannst du auch so vorgehen:
- importiere die Textdatei über die Importfunktion DATEN - EXTERNE DATEN - AUS TEXT
- stelle in den DATENBEREICHSEIGENSCHAFTEN das entsprechende Aktualisierungsintervall ein.
(kannst du auch nachträglich über das Kontextmenü hinzufügen (rechte Maustaste auf eine Zelle des Imports))
Gruß Daniel

Bild

Betrifft: AW: macro alle 30 sek. wiederholen
von: Uwe
Geschrieben am: 07.06.2015 18:07:14
So nun hab ich es am laufen!!!!!
Lieben Dank an Sepp und Daniel.
Noch einen schönen Restsonntag!
Gruß Uwe

 Bild

Beiträge aus den Excel-Beispielen zum Thema "macro alle 30 sek. wiederholen"