Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1188to1192
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
Inhaltsverzeichnis

Application.OnTime aus UserForm heraus nutzen

Application.OnTime aus UserForm heraus nutzen
Daniel
Hallo Forum,
ich habe eine Excel-Tabelle, die beim Starten direkt eine UserForm (Show Modal = True) startet. Diese Tabelle soll rund um die Uhr geöffnet sein. Zu 3 verschiedenen Uhrzeiten möchte ich aus der UserForm heraus eine Prozedur starten. Ist das möglich? Wenn ja, wie?
Ich hoffe, mir kann da jemand helfen.
Daniel

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: schau mal ins Archiv ...
07.12.2010 14:07:52
Daniel
Hallo Matthias,
danke für deine Antwort. Leider komme ich trotzdem nicht weiter. Ich versuche mein Vorhaben noch mal zu schildern:
Ich habe in einer Excel-Tabelle eine UserForm erstellt, die mit dem Öffnen der Tabelle gestartet wird. Über diese UserForm werden Daten in die Tabelle eingefügt. Die UserForm läuft im Modus "Show Modal = True", d.h. der direkte Zugriff auf die Tabelle ist nicht möglich, solange die UserForm aktiv ist. Das ist so gewollt, da die Tabelle (eine Mini-Datenbank) nur über die UserForm geändert werden soll. Nun möchte ich zu 3 verschiedenen Uhrzeiten (06:00 Uhr, 14:00 Uhr; 22:00 Uhr) diese Tabelle speichern. Kann ich das mit Application.OnTime innerhalb der UserForm realisieren? Wenn ja, wo muss ich die Funktion einbauen?
( Ich denke unter Private Sub UserForm_Activate() )
Daniel
Anzeige
AW: Application.OnTime aus UserForm heraus nutzen
07.12.2010 14:10:04
Daniel
Hallo Matthias,
danke für deine Antwort. Leider komme ich trotzdem nicht weiter. Ich versuche mein Vorhaben noch mal zu schildern:
Ich habe in einer Excel-Tabelle eine UserForm erstellt, die mit dem Öffnen der Tabelle gestartet wird. Über diese UserForm werden Daten in die Tabelle eingefügt. Die UserForm läuft im Modus "Show Modal = True", d.h. der direkte Zugriff auf die Tabelle ist nicht möglich, solange die UserForm aktiv ist. Das ist so gewollt, da die Tabelle (eine Mini-Datenbank) nur über die UserForm geändert werden soll. Nun möchte ich zu 3 verschiedenen Uhrzeiten (06:00 Uhr, 14:00 Uhr; 22:00 Uhr) diese Tabelle speichern. Kann ich das mit Application.OnTime innerhalb der UserForm realisieren? Wenn ja, wo muss ich die Funktion einbauen?
( Ich denke unter Private Sub UserForm_Activate() )
Daniel
Anzeige
AW: Application.OnTime aus UserForm heraus nutzen
07.12.2010 15:58:35
Tino
Hallo,
kannst mal so testen, habe ich jetzt nicht ausgiebig getestet.
kommt als Code in UserForm1
Option Explicit 
Dim Time1 As Date, Time2 As Date, Time3 As Date 
 
Private Sub UserForm_Activate() 
 
Time1 = TimeSerial(6, 0, 0) 
Time2 = TimeSerial(14, 0, 0) 
Time3 = TimeSerial(22, 0, 0) 
 
Time1 = Date + Time1 - IIf(Time1 < Time, 0, 1) 
Time2 = Date + Time2 - IIf(Time2 < Time, 0, 1) 
Time3 = Date + Time3 - IIf(Time3 < Time, 0, 1) 
 
Start_Timer 
 
End Sub 
 
Private Sub UserForm_Terminate() 
On Error Resume Next 
With Application 
    .OnTime Time1, "'Save_ThisWorkbook 1'", Schedule:=False 
    .OnTime Time2, "'Save_ThisWorkbook 2'", Schedule:=False 
    .OnTime Time3, "'Save_ThisWorkbook 3'", Schedule:=False 
End With 
End Sub 
 
Sub Start_Timer(Optional IndexTimer As Integer = 0) 
With Application 
    On Error Resume Next 
    .OnTime Time1, "'Save_ThisWorkbook 1'", Schedule:=False 
    .OnTime Time2, "'Save_ThisWorkbook 2'", Schedule:=False 
    .OnTime Time3, "'Save_ThisWorkbook 3'", Schedule:=False 
    On Error GoTo 0 
     
    Select Case IndexTimer 
        Case 1: Time1 = Time1 + 1 
        Case 2: Time2 = Time2 + 1 
        Case 3: Time3 = Time3 + 1 
        Case 4: Exit Sub 
        Case Else 
                Time1 = Time1 + 1 
                Time2 = Time2 + 1 
                Time3 = Time3 + 1 
    End Select 
 
 
    .OnTime Time1, "'Save_ThisWorkbook 1'" 
    .OnTime Time2, "'Save_ThisWorkbook 2'" 
    .OnTime Time3, "'Save_ThisWorkbook 3'" 
End With 
End Sub 
kommt als Code in Modul
Option Explicit 
 
Sub Save_ThisWorkbook(IndexTime As Integer) 
 
With ThisWorkbook 
    If Not .ReadOnly Then 
        .Save 
    End If 
End With 
 
Call UserForm1.Start_Timer(IndexTime) 
End Sub 
Gruß Tino
Anzeige
AW: Application.OnTime aus UserForm heraus nutzen
09.12.2010 08:13:47
Daniel
Hallo Tino,
eine Frage habe ich zu deinem Code:
With Application
.OnTime Time1, "'Save_ThisWorkbook 1'", Schedule:=False
.OnTime Time2, "'Save_ThisWorkbook 2'", Schedule:=False
.OnTime Time3, "'Save_ThisWorkbook 3'", Schedule:=False
End With
Du rufst hier die Prozeduren 'Save_ThisWorkbook 1', 'Save_ThisWorkbook 2' und 'Save_ThisWorkbook 3'
auf. Was meinst du damit?
AW: Application.OnTime aus UserForm heraus nutzen
09.12.2010 08:29:15
Daniel
Sorry, hab's gefunden. Es ist natürlich der Code, der im Modul steht.
Wenn ich den Code ansonsten richtig verstehe, wird die Datei zu den 3 angegebenen Zeiten einfach gespeichert. Ich möchte die Datei aber jedesmal unter Angabe des Zeitpunktes unter einem anderen Namen abspeichern, etwa so:
Dim datzeit As String
datzeit = Format(Now, "dd-mm-yyyy_hh-mm-ss")
ActiveWorkbook.SaveAs Filename:="H:\" & datzeit & "-Früh.xls", FileFormat:= _
xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Lässt sich das realisieren?
Gruß,
Daniel
Anzeige
versuch eds doch einfach mal...
09.12.2010 16:41:28
Tino
Hallo,
ich würde nur aus ActiveWorkbook besser vielleicht ThisWorkbook machen.
Gruß Tino

54 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige