Modifier la vitesse des touches de clavier

Pascal79A Messages postés 15 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
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?

1 réponse

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    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
    1. Pascal79A Messages postés 15 Statut Membre
       
      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
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      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