Programmation d'un Timer sous excel

blaker -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,

Je vous expose mon problème! Je suis novice en tout ce qui concerne excel.
J'aimerais qu'un Timer se lance dans la case C2 lorsque j'entre la valeur "1" dans la case B2. Je travaille sous excel 2003.

Merci pour d'avance pour votre réponse.

9 réponses

  1. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Tu veux un décompte dans la cellule C2 quand tu tape 1 en B2 ?
    Clic gauche sur le nom de l'onglet et valider "Visualiser le code, dans la fenêtre ouverte tu colle le code ci-dessous...
    Option Explicit 
    Dim TM As Boolean 
    
    Private Sub Worksheet_Change(ByVal Target As Range) 
        If Target.Address = "$B$2" Then 
            If Target = 1 Then 
                TM = True 
                Timer 
            Else 
                TM = False 
            End If 
        End If 
    End Sub 
    
    Sub Timer() 
    Static S As Byte, B 
        While TM 
            If B <> Second(Now) Then 
                Range("C2") = S 
                S = S + 1 
                B = Second(Now) 
            End If 
            DoEvents 
        Wend 
    End Sub

    Tu revient sur ta feuille et tu tape 1 dans B2..
    Pour arrèter tu change B2
    A+

    L'expérience instruit plus sûrement que le conseil. (André Gide)
    Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
    0
  2. blaker
     
    Merci à vous! Ca fonctionne! Super ;)
    0
  3. blaker
     
    Peut être encore une autre question si je veux appliquer ce systeme à une colonne je pense que je dois changer l'adressage des cellules, je dois m'y prendre de quelle facon? Et aussi pour réinitialisé le processus je dois faire quoi?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Ta première question je comprend pas bien ton problème ?
    Pour la 2, tu change le code par...
    Option Explicit
    
    Dim TM As Boolean
    Dim S As Long
    
    Private Sub Worksheet_Change(ByVal Target As Range)
        If Target.Address = "$B$2" Then
            If Target = 1 Then
                TM = True
                Timer
            ElseIf Target = 2 Then
                TM = False
                S = 0: Range("C2") = S
            Else
                TM = False
            End If
        End If
    End Sub
    
    Sub Timer()
    Dim B As Byte
        While TM
            If B <> Second(Now) Then
                Range("C2") = S
                S = S + 1
                B = Second(Now)
            End If
            DoEvents
        Wend
    End Sub

    Dans B2 tu tape... 1 = démarrage... 2 = arrèt et remise à zéro.. autre = stop sans réinitialiser.
    A+
    0
  6. blaker
     
    Ah super pour la réinitialisation ca fonctionne bien! Merci

    Dans ma première question j'aimerais réalisé la même chose c'est a dire Timer qui se déclenche en tapant 1, s'arrête et se réinitialise si on tape 2, etc...

    Mais le tout sur sur une colonne allant part exemple de B2 à B5 pour ce qui est des valeurs à entrer de type (1,2, autre) et les Timers correspondant dans les cellules C2 à C5.

    Je suppose qu'il faut changer les valeurs des cellules pour y arriver ou bien?
    0
  7. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Je pense que si tu avais dit tout de suite ce que tu voulais exactement, lermite n'aurait pas refait 3 fois le code pour te donner la solution.

    Bonjour lermite, j'admire ta patience.

    :o|
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Bonjour Polux,
      Je n'avais pas vu ton poste quand j'ai répondu :D
      Dans un sens tu a raison mais bah, j'ai pas oublier que j'ai aussi été débutant, bien que cela fait.... longtemps.
      A+
      0
  8. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bon, un peu à toi de travailer, je te donne les pistes...
    Créer autant de timer que de décompte à faire avec des noms par exemple Timer1, Timer2.. etc.
    Assigner Les résultat dans les bonnes cellules.. C2, C3..
    Modifier le test des cellule B2,B3.. et envoyer ou arrèter les bons timer.
    0
  9. blaker
     
    Merci je suis déjà sur tes pistes c'est vrai merci de ta patience "lermite 222" tu m'as vraiment beaucoup aidé.

    "Polux31" j'ai mentionné il me semble que j'étais débutant en excel, je me suis peut être mal exprimer pour faire comprendre mon problème mais je pense que ton commentaire n'avais pas lieu d'être il était vraiment inutile.

    Mais merci encore "lermite 222" de ta patience et de ton aide et ta diplomatie ;)
    0
    1. Polux31 Messages postés 7219 Statut Membre 1 204
       
      Relis ton premier post et ta dernière demande. Ce n'est pas la même chose. Tu veux un vélo dans ton premier post, et tu réclames une moto dans le second.

      Débutant ou pas, exprimer un besoin est élémentaire et permet de gagner beaucoup de temps.

      Lis ma signature et tu auras tout compris. Et crois moi, mon commentaire est loin d'être inutile.
      0
    2. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Lis ma signature et tu auras tout compris. Et crois moi, mon commentaire est loin d'être inutile.
      +25
      0