Modifier la vitesse des touches de clavier

Fermé
Pascal79A Messages postés 14 Date d'inscription vendredi 6 avril 2018 Statut Membre Dernière intervention 13 juin 2018 - 11 avril 2018 à 20:22
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 - 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?
A voir également:

1 réponse

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
11 avril 2018 à 22:03
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.
0
Pascal79A Messages postés 14 Date d'inscription vendredi 6 avril 2018 Statut Membre Dernière intervention 13 juin 2018
Modifié le 11 avril 2018 à 22:26
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
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
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.
0