Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zeit zwischen Mausklicks

Zeit zwischen Mausklicks
26.08.2005 22:43:28
Lars
Guten Abend,
ich möchte in einer Userform irgendwie ermitteln, wie groß die durchschnittliche Zeit zwischen den Mausklicks auf einen bestimmten
Commandbutton ist. Die Userform kann mehrere Stunden offen sein. Beim Schließen der Userform würde ich das gern mit einer Msgbox angezeigt bekommen. Kann mir jemand helfen?
Grüße Lars

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeit zwischen Mausklicks
26.08.2005 23:35:41
Matthias
Hallo Lars,
ein Beispielcode (ins Userform-Modul):

Option Explicit
Dim Klicks As Integer
Dim s_Time As Date
Private Sub UserForm_Initialize()
s_Time = Now()
End Sub
Private Sub UserForm_Click()
AddKlick
End Sub
Private Sub CommandButton1_Click()
AddKlick
End Sub
Private Sub CommandButton2_Click()
AddKlick
End Sub
Private Sub SchließenButton_Click()
AddKlick
Ergebnis
Unload Me
End Sub
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Ergebnis
End Sub
Private Sub AddKlick()
Klicks = Klicks + 1
End Sub
Private Sub Ergebnis()
Dim t As Date
AddKlick
t = Now - s_Time
MsgBox Klicks & " Klicks in " & Format(t, "s") & " Sekunden"
End Sub

Beim Lades des Userforms wird die Startzeit gemerkt (Userform_Initialize).
Du musst bei jedem Click-Ereignis die Prozedur AddKlick aufrufen, damit wird die Zählvariable "Klicks" um 1 erhöht.
Am Ende wird die Prozedur "Ergebnis" aufgerufen.
Gruß Matthias
Anzeige
AW: Zeit zwischen Mausklicks
26.08.2005 23:46:35
Lars
Hi,
hmm, ich möchte nicht alle Klicks, nur die auf einen bestimmten Button, bin leider nicht
in der Lage dein Beispiel zu reduzieren.
Grüße Lars
AW: Zeit zwischen Mausklicks
26.08.2005 23:55:29
Lars
Hi,
ergänzend, die Zeit soll beim ersten Klick auf den bestimmten Button starten. Wenn ich das richtig verstehe, läuft die Zeit in deinem Beispiel schon bei Start der Userform?
grüße Lars
AW: Zeit zwischen Mausklicks
27.08.2005 00:38:30
Matthias
Hallo Lars,
ok, hier ein geänderter Code mit Kommentaren:

Option Explicit
'Variablen gelten Modulweit:
Dim Klicks As Integer
Dim s_Time As Date
'Dein "bestimmter Button", der gezählt werden soll
Private Sub CommandButton1_Click()
If s_Time = 0 Then s_Time = Now 'Startzeit beim ersten Klick setzen
Klicks = Klicks + 1
'hier dann dein Code
End Sub
'Der Button, der das UF Schließt
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub UserForm_Activate()
'Startzeit auf Null
s_Time = 0
Klicks = 0
End Sub
'Ereignis, das beim Beenden des UF ausgelöst wird:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'CloseMode=0, wenn UF übers Schließkreuz geschlossen wird
'CloseMode=1, wenn UF über Unload-Befehl geschlossen wird
If CloseMode <= 1 Then Ergebnis
End Sub
'wird beim Beenden der UF aufgerufen
Private Sub Ergebnis()
Dim t As Date
't = Zeit von ersten Klicj auf deinen Button bis zum Schließen des UF
If s_Time = 0 Then
t = 0
MsgBox Klicks & " Klicks"
Else
t = Now - s_Time
MsgBox Klicks & " Klicks in " & t
End If
End Sub

Gruß Matthias
Anzeige
AW: Zeit zwischen Mausklicks
27.08.2005 00:45:30
Nepumuk
Hi,
mir ist zwar schleierhaft, wozu das gut sein soll, aber bitte:
' **********************************************************************
' Modul: UserForm1 Typ: Userform
' **********************************************************************

Option Explicit

Private datTime() As Date

Private Sub CommandButton1_Click()
    datTime(UBound(datTime)) = Time
    Redim Preserve datTime(0 To UBound(datTime) + 1)
End Sub

Private Sub UserForm_Activate()
    Redim datTime(0)
End Sub

Private Sub UserForm_Terminate()
    Dim lngIndex As Long
    Dim datClickTime As Date
    For lngIndex = 0 To UBound(datTime) - 2
        datClickTime = datClickTime + datTime(lngIndex + 1) _
            - datTime(lngIndex)
    Next
    MsgBox "Durchschnittszeit zwischen zwei Klicks: " & _
        Format(datClickTime / (UBound(datTime) - 1), _
        "hh:mm:ss"), 64, "Information"
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Zeit zwischen Mausklicks
27.08.2005 01:39:59
Lars
Hi,
wozu ist es gut? Ich wollte euch nicht mit unwichtigen Details belasten.
Es geht darum, dass ein Anwender durch die Frequenz der Klicks ein zukünftiges
Bearbeitungstempo beeinflussen kann. Das Ganze ist etwas komplexer aber das Prinzip
ist wohl klar. Dank eurer Lösungsvorschläge komme ich nun weiter, danke.
Grüße Lars
AW: Zeit zwischen Mausklicks
27.08.2005 14:03:44
Ramses
Hallo nepumuk
Wozu das gut ist ?
Arbeitskontrolle.
Wenn der Benutzer zu langsam ist, geht eine NET-Message an den Controller und der haut ihm dann auf die Finger, oder macht einen Remote-View und kontrolliert was er auf dem Bildschirm gerade im Internet kuckt :-)
Gruss Rainer
Anzeige
AW: Zeit zwischen Mausklicks
27.08.2005 15:08:03
Nepumuk
Hi Rainer,
da schreib ich doch ein kleines Tool, welches im Millisekundentakt auf den Button klickt. :-)
Gruß
Nepumuk

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige