Nun hab ich mich bereits durch das Forum gegraben konnte aber keine Lösung finden.
Hier mein Problem:
Beim Öffnen einer UserForm wird ein OnTime gestartet, welches bei Inaktivität (kein Button wird gedrückt) die UserForm nach 15 Sekunden wieder schließt, also eine Prozedur aufruft, die die UserForm ausblendet.
Hier der Code:
Private Sub UserForm_activate()
Dim zeit As Date
zeit = Now + TimeValue("00:00:15")
Application.OnTime zeit, "Schließen1"
End Sub
Private Sub CommandButton1_Click()
Sheets("Fragen").Select
Application.Run "Timestamp"
Range("B2").Select
varCol = 2
If varCol = "" Then Exit Sub
Set rng = Cells(Rows.Count, CInt(varCol)).End(xlUp)
rng.Offset(1).Select
ActiveCell.Value = "X"
ActiveCell.Next.Select
ActiveCell.Value = "-"
ActiveCell.Next.Value = "-"
ActiveCell.Offset(1, 0).Select
Unload UserForm2
UserForm3.Show
End Sub
Private Sub CommandButton2_Click()
Sheets("Fragen").Select
Application.Run "Timestamp"
Range("B2").Select
varCol = 2
If varCol = "" Then Exit Sub
Set rng = Cells(Rows.Count, CInt(varCol)).End(xlUp)
rng.Offset(1).Select
ActiveCell.Value = "-"
ActiveCell.Next.Select
ActiveCell.Value = "X"
ActiveCell.Next.Value = "-"
ActiveCell.Offset(1, 0).Select
Unload UserForm2
UserForm3.Show
End Sub
Private Sub CommandButton3_Click()
Sheets("Fragen").Select
Application.Run "Timestamp"
Range("B2").Select
varCol = 2
If varCol = "" Then Exit Sub
Set rng = Cells(Rows.Count, CInt(varCol)).End(xlUp)
rng.Offset(1).Select
ActiveCell.Value = "-"
ActiveCell.Next.Select
ActiveCell.Value = "-"
ActiveCell.Next.Value = "X"
ActiveCell.Offset(1, 0).Select
Unload UserForm2
UserForm3.Show
End Sub
"Schließen1" schaut so aus:
Sub Schließen1()
Unload UserForm1
Unload UserForm2
UserForm1.Show
End Sub
Nun will ich erreichen, daß der Klick auf den CommandButton OnTime beendet, weil sonst die Zeit weiterläuft und es dann zu vorzeitigem Schließen der folgenden Userformen kommt.
So hab ich es mal versucht:
Private Sub CommandButton1_Click()
Application.OnTime zeit, "Schließen1", Schedule:=False
Sheets("Fragen").Select
Application.Run "Timestamp"
Range("B2").Select
varCol = 2
If varCol = "" Then Exit Sub
Set rng = Cells(Rows.Count, CInt(varCol)).End(xlUp)
rng.Offset(1).Select
ActiveCell.Value = "X"
ActiveCell.Next.Select
ActiveCell.Value = "-"
ActiveCell.Next.Value = "-"
ActiveCell.Offset(1, 0).Select
Unload UserForm2
UserForm3.Show
End Sub
Leider hab ich damit nur folgende Fehlermeldung produziert:
"Laufzeitfehler '1004':
Die Methode 'OnTime' für das Objekt '_Application' ist fehlgeschlagen'
Wie komm ich da weiter?
Danke!
lg Andreas