Menu

Modifier la vitesse des touches de clavier

Pascal79A 7 Messages postés vendredi 6 avril 2018Date d'inscription 18 avril 2018 Dernière intervention - 11 avril 2018 à 20:22 - Dernière réponse : gbinforme 14787 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention
- 11 avril 2018 à 23:03
Bonjour,

j'ai créé une macro qui se limite à 4 fois d'activation par seconde. Le problème, c'est que les premiers instants, ma macro se relance environ en 0,4 secondes lorsque j’appuie sur une touche du clavier pour l'activer.

Quelqu'un peut m'aider à résoudre ce petit problème?
Afficher la suite 

3 réponses

Répondre au sujet
gbinforme 14787 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention - 11 avril 2018 à 22:03
0
Utile
2
Bonjour,

Je n'ai pas très bien compris "le problème" mais si tu as fait une macro, c'est que tu fonctionnes avec un ordinateur.

Si tu veux avoir des précisions au dixième de seconde, mieux vaut utiliser un chronomètre électronique car un ordinateur a plein de fonctions à dérouler en plus du contrôle du temps. En conséquence les mesures que tu vas faire sont assez aléatoires.
Pascal79A 7 Messages postés vendredi 6 avril 2018Date d'inscription 18 avril 2018 Dernière intervention - 11 avril 2018 à 22:23
ce que je cherche à faire, c'est de faire en sorte que lorsque j'appuis sur une touche de clavier pour activer une macro, quelle se réactive le plus vite possible pour qu'il n'ai pas de différence entre la vitesse d'exécution moyen au début et la vitesse d'exécution moyen total.

Voici une partie de la macro que j'utilise pour faire l'effet que j'ai parlé dans le question:

Option Explicit
Sub bas()
If Range("c3").Value = 0 Then
Range("c3").Value = 1
' Touche de raccourci du clavier: Ctrl+k
Dim x As Integer
Dim y As Integer
x = Cells(3, 1).Value
y = Cells(3, 2).Value
If y < 1048576 Then
x = x
y = y + 1
Range("c4") = Cells(y, x).Value
Dim secondes As Variant
Dim timer_avant As Variant
Dim t As Variant
secondes = 0.25
timer_avant = timer
Do While timer < timer_avant + secondes
DoEvents
Loop
Call haut
Else
End If
Cells(3, 1).Value = x
Cells(3, 2).Value = y
Cells(y, x).Select
Range("c3").Value = 0
End If
End Sub

bien sur, il ne faut pas oublier d'y mettre un racourci clavier pour mieux me comprendre
gbinforme 14787 Messages postés lundi 18 octobre 2004Date d'inscriptionContributeurStatut 18 avril 2018 Dernière intervention - 11 avril 2018 à 23:03
re
Tu mets opportunément 'DoEvents' et donc tu rends la main au système qui te répondra quand il aura le temps.
C'était tout à fait le sens de mon message : tu ne peux pas prétendre avoir des réponses précises comme un chronomètre qui n'a que cette fonction.
Commenter la réponse de gbinforme