Testeur de vitesse de saisie : pour connaitre le nombre de lettres que vous saisissez par secondes et minutes

Description

Salut la compagnie

J'ai fait ce petit prog très simple pour avoir une idée de ma vitesse de saisie au clavier et pour mes amis, aussi afin de leur montrer que je suis le boss lol. Non c'est pas vrai ça. Vous devez taper un texte donné et il mesure en temps réel ce que vous avez dans les doights. Voila, rien de plus à ajouter, sinon que le module senkeys je l'ai pompé sur Vbfrance, mais je ne sais plus à quelle source :-/

Source / Exemple :


Option Explicit
Dim intTmp As Integer
Dim intNbFautes As Integer
Dim intNbCaractsRestant As Integer
Dim intLettresParSeconde As Integer
Dim intLettresParMinute As Integer

Private Sub Command1_Click()
tmrTmpEcoule.Enabled = True
tmrGeneral.Enabled = True
Command1.Enabled = False
cmdFin.Enabled = True
lblTexteAFrapper.Visible = True
Text1.Enabled = True
Text1.SetFocus
lblNbCaracts.Caption = "Vous avez " & Len(lblTexteAFrapper) & " caractères à saisir"
End Sub

Private Sub Form_Load()
Me.Caption = App.ProductName
lblVersion.Caption = "V" & App.Major & "." & App.Minor & "." & App.Revision
lblInstructions.Caption = "Vous allez au court de ce test devoir recopier un texte donné, dans une boite de saisie prévue à cet effet afin de tester votre vitesse de frappe moyenne." & vbCrLf & "Le texte apparaitra ci-dessous et la boite de saisie se trouve en bas de la fenêtre." & vbCrLf & "Appuyez sur 'Commencer' afin de démarrer le test, ou pressez espace." & vbCrLf & "Pressez sur fin pour finir ou pressez la touche 'ECHAP' (vous devez entrer minimum 100 carctères mais il est préférable de saisir tout le texte afin d'avoir des résultats les plus justes possibles)" & vbCrLf & "Note : vous ne devez pas entrer les retours à la ligne."
intTmp = 0
intNbFautes = 0
End Sub

Private Sub Text1_Change()
Dim strCaractEnCour As String
Dim intNunCaract As Integer
Dim tmp1
    If Len(Text1) = 1 Then
    intNunCaract = 0
    ElseIf Len(Text1) <> 1 Then intNunCaract = Len(Text1) ' - 1
    End If
    If intNunCaract = 0 Then
    strCaractEnCour = Mid(lblTexteAFrapper, 1, 1)
    ElseIf intNunCaract <> 0 Then
    strCaractEnCour = Mid(lblTexteAFrapper, intNunCaract, 1)
    End If
    If Right$(Text1, 1) <> strCaractEnCour Then
    intNbFautes = intNbFautes + 1
    fSendKeys "{BACKSPACE}"
    End If
intNbCaractsRestant = Len(lblTexteAFrapper) - Len(Text1)
lblNbCaractsRestant.Caption = "Il vous reste " & intNbCaractsRestant & " carctères à saisir"
'lblTest1 = "Caractère étant testé : " & strCaractEnCour & " | intNunCaract = " & intNunCaract & " | " & "Nombre de caractères à tester : " & Len(lblTexteAFrapper) 'TEST
End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 27 Then Call cmdFin_Click
End Sub

Private Sub tmrGeneral_Timer()
lblNbFautes.Caption = "Nombre de fautes : " & intNbFautes
    If Len(Text1) <> 0 And intTmp <> 0 Then intLettresParMinute = Round((60 / intTmp) * Len(Text1), 3)
    If Len(Text1) <> 0 And intTmp <> 0 Then intLettresParSeconde = Round(Len(Text1) / intTmp, 3)
    
    If Len(Text1) <> 0 And intTmp <> 0 Then lblLettresMinutes.Caption = "Vitesse moyenne (lettres par minute) : " & intLettresParMinute
    If Len(Text1) <> 0 And intTmp <> 0 Then lblLettresSec.Caption = "Vitesse moyenne (lettre(s) par secondes) : " & intLettresParSeconde
End Sub

Private Sub cmdFin_Click()
    If Len(Text1) < 100 Then
    MsgBox "Vous devez au moins taper 100 caractères pour avoir un résultat correct, veuillez continuer.", vbCritical + vbOKOnly, "Erreur"
    Text1.SetFocus
    Else: MsgBox "Vous avez saisi " & Len(Text1) & " caractères en " & intTmp & ", vous frappez environ " & intLettresParSeconde & " lettres par seconde et environ " & intLettresParMinute & " lettres par minute."
    End
    End If
End Sub

Private Sub tmrTmpEcoule_Timer()
intTmp = intTmp + 1
lblTmpEcoule.Caption = "Temps écoulé : " & intTmp & " secondes"
End Sub

Conclusion :


Bonne année !

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.