Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Beep nach 15 sek oder Tastatureingabe

Beep nach 15 sek oder Tastatureingabe
24.05.2009 13:50:59
Lars
Hallo,
Ich arbeite an einem Vokabeltrainter und möchte dem Nutzer pro Vokabel 15 sek Zeit geben. Sind die 15sek um, so soll ein Beep ertönen. Danach beginnen die nächsten 15 sek usw.
Sollte man für eine Vokabel weniger als 15 sek benötigen, so sollte man durch "Enter" die Restzeit sammeln können. Sammeln heißt hier, die 15 sek pro Vokabel werden neu auf die gesamte Trainingszeit angepasst (zb. 17sek).
Meine Frage: Wie kann ich "Enter" in unten angegebenen Code abfragen?

Sub timecals()
Dim current_Time As Date
Dim i As Integer
For i = 1 To 5
current_Time = Now
Do
'Abfrage Enter
Loop Until Now >= current_Time + "00:00:15"
Beep
Next i
End Sub


Vielen Dank!
Gruß Lars

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

Betreff
Datum
Anwender
Anzeige
AW: Beep nach 15 sek oder Tastatureingabe
24.05.2009 14:38:17
Josef
Hallo Lars,
in einem UF geht's z. B. so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Declare Function Beep Lib "kernel32.dll" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

Public lngPeriod As Double, lngCurP As Long
Public runWhen As Double

Public Sub Alert()
  Beep 1500, 100
  TimeCall
End Sub

Public Sub TimeCall()
  lngPeriod = lngCurP
  
  runWhen = Now + TimeSerial(0, 0, lngPeriod)
  
  Application.OnTime earliesttime:=runWhen, procedure:="Alert", _
    schedule:=True
End Sub

Public Sub StopTimer()
  On Error Resume Next
  Application.OnTime earliesttime:=runWhen, _
    procedure:="Alert", schedule:=False
End Sub

' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private Sub CommandButton1_Click()
  StopTimer
  lngCurP = 5
  Label1 = CStr(lngCurP)
  TimeCall
End Sub

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
  If KeyCode = 13 Then
    StopTimer
    Debug.Print Second(runWhen - Now)
    lngCurP = lngPeriod + Second(runWhen - Now)
    Label1 = CStr(lngCurP)
    TimeCall
  End If
End Sub

Private Sub UserForm_Terminate()
  StopTimer
End Sub

Gruß Sepp

Anzeige
AW: Beep nach 15 sek oder Tastatureingabe
24.05.2009 14:53:05
Lars
Hallo Sepp,
danke für deine Hilfe. Beim Ausführen von CommandButton1_Click() erhalte ich die Fehlermeldung:
Compile error:
User-defined type not defined
Markiert ist:
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer
Wie komme ich hier weiter? Vielen Dank!
Gruß Lars
AW: Beep nach 15 sek oder Tastatureingabe
24.05.2009 14:58:42
Josef
Hallo Lars,
ich sagte ja "in einem UF"
Der Code gehört also in das Modul eines UserFormulars.
Gruß Sepp

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige