Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
952to956
952to956
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Arbeitsmappe regelmäßig aktualisieren

Arbeitsmappe regelmäßig aktualisieren
16.02.2008 20:51:48
Markus
Hallo ich öffne eine Arbeitsmappe ( aktuell.xls )
diese soll sich nach drücken eines Buttons alle 5 min oder so aktualisieren.
Ich hab das mal mit Application.OnTime versucht und das Workbook nochmal geöfnet dies funktioniert aber nur einmalig und die Makierte Zelle verschwindet auch wieder würd das bild aber gerne da halten wo es ist.
Gibt es eine möglichkeit die Datei anders zu aktualisieren ?
Danke für Eure Hilfe

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arbeitsmappe regelmäßig aktualisieren
17.02.2008 11:33:00
fcs
Hallo Markus,
OnTime ist schon der richtige Weg. Du muss "nur" die OnTime-Aktion am Ende des ausgeführten Makros erneut ausführen.
Zusätzlich muss du unter DieseArbeitsmappe in der Workbook_BeforeClose-Prozedur die OnTime-Aktion wieder zurücksetzen, um die letzten Aufruf ggf. zu löschen.
Gruß
Franz

'###### Modul Bespielcode für OnTime-Mehrfachausführung #####
'Prozedur "Aktion_OnTime_Aus" muss auch von der Workbook_BeforeClose-Prozedur aufgerufen werden! _
Private wbThis As Workbook, NextOnTime As Date
Private Const strInterval As String = "00:05:00" 'Zeitinterval für OnTime = 5 Minuten
Private Const strProzedur As String = "Aktion_OnTime" 'Prozedurname für OnTime-Aktion
Sub Schaltfläche1_BeiKlick()
Call Aktion_OnTime_Ein
End Sub
Sub Aktion_OnTime_Ein()
'Prozedur zur Aktualisierung starten
Set wbThis = ThisWorkbook
NextOnTime = Now + CDate(strInterval)
Application.OnTime earliesttime:=NextOnTime, Procedure:=strProzedur
End Sub
Sub Aktion_OnTime()
'Arbeitsmappe und Tabelle aktivieren in der OnTime-Aktionen ausgeführt werden soll
wbThis.Activate
wbThis.Worksheets("Tab1").Activate
'Code der in der Tabelle ausgeführt werden soll
MsgBox "OnTime-Aktion wurde gestartet" 'Testzeile
'Prozedur per OnTime neu starten
NextOnTime = Now + CDate(strInterval)
Application.OnTime earliesttime:=NextOnTime, Procedure:=strProzedur
End Sub
Sub Aktion_OnTime_Aus()
'Letzte OnTime-Aktion ggf. löschen
On Error Resume Next
Application.OnTime earliesttime:=NextOnTime, Procedure:=strProzedur, Schedule:=False
Set wbThis = Nothing
End Sub
'Code unter DieseArbeitsmappe
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call Aktion_OnTime_Aus
End Sub


Anzeige
AW: Arbeitsmappe regelmäßig aktualisieren
20.02.2008 20:46:57
Markus
Hallo Franz,
bin gerade dazugekommen deinen Code zu probieren.
hab nur ein Problem mit

wbThis.Activate
wbThis.Worksheets("Tab1").Activate


beide laufen auf einen Fehler muss ich da noch CodeTeile ändern aber ich glaub die Variable wbThis ist leer. SIeht zumindest im Debugger so aus.
Gruß Markus

AW: Arbeitsmappe regelmäßig aktualisieren
21.02.2008 01:14:00
fcs
Hallo Markus,
die Zeile
wbThis.Activate
sollte ok sein, dieser Variablen wird in der Prozedur "Aktion_OnTime_Ein" das Objekt zugewiesen
wbThis.Worksheets("Tab1").Activate
In dieser Zeile muss du den Namen der Tabelle entsprechend deiner Arbeitsmappe anpassen.
Bei mir hat das ganze funktioniert unter Excel97 auch bei mehren geöffneten Arbeitsmappen.
Probleme könnte es geben, wenn du parallel am VBA-Code von Dateien herumbastelst. Dann wird ggf. das VBA-Projekt zurückgesetzt und damit auch alle Variablen geleert. In diesem Fall nach dem Fehler VBA-Prozedur beenden und Timer neu starten.
Evtl hilft, um den Fehler zu vermeiden auch folgende Ergänzung im Code:

If wbThis is Nothing then
set wbThis = Workbooks("NamederDatei.xls")
End If
wbThis.Activate
wbThis.Worksheets("Tab1").Activate


Gruß
Franz

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige