J'ai découvert que lorsqu'on utilise l'api GetInputState au lieu de la fonction vb DoEvents, l'interception des évenements est plus rapide... ainsi les répétitions s'effectuent aussi plus rapidement. Alors, dans vos structures de répétition (ex. for i=1 to 2000), remplacer
DoEvents
Par
If GetInputState then DoEvents
Source / Exemple :
Ceci est du au fait que GetInputState ne retient que les évenements qui sont destinées a l'application alors que DoEvents retient tous les évenements des applications en cours ! Testez Pour voir ! TEST
Private Declare Function GetInputState Lib "user32" () As long
Private Sub Form_Click()
Dim i, a
Dim sec1, sec2
Sec1 = Time
For i = 1 To 2000
'Faites varier les fonctions pour voir la différence
If GetInputState then DoEvents
'DoEvents
a = a + 1
debug.Print a
Next i
Sec2 = Time
Msgbox sec1 & " - " & sec2
End sub
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.