IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème utilisation de plusieurs Timer simultanément


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 26
    Par défaut Problème utilisation de plusieurs Timer simultanément
    Bonjour,

    Je développe un UserForm avec des notamment des boutons, je voudrais que lorsque l'utilisateur clique sur un bouton, que ça récupère un temps de chauffe associé, que le bouton passe à l'orange, puis une fois le temps écoulé, passe au vert. Ca marche bien en utilisant la fonction Timer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Private Sub CommandButton98_Click()
    '6226
    Application.ScreenUpdating = False
    Dim PauseTime, Start As Variant
    If CommandButton98.BackColor = vert Then
    CommandButton98.BackColor = rouge
    Worksheets("Equipements Actifs").Cells(105, 4).Value = 0
    ElseIf CommandButton98.BackColor = rouge Then
    CommandButton98.BackColor = orange
    Worksheets("Equipements Actifs").Cells(105, 4).Value = 1
    PauseTime = value_WarmUpTWT * 60
    Start = Timer
    Do While Timer < Start + PauseTime
        DoEvents
    Loop
    CommandButton98.BackColor = vert
    End If
    UserForm_Click
    End Sub
    Seulement voilà, l'utilisateur peut cliquer sur plusieurs boutons, et donc je voudrais que chaque bouton respecte son temps de chauffe associé. Pour le moment, si je clique sur plusieurs boutons, ceux-ci passent tous au vert une fois le temps du dernier bouton cliqué terminé...

    J'ai essayé en déclarant "Start" et "PauseTime" en tableau, en affectant une nouvelle dimension à chaque nouveau clique, mais ça change rien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Function TimerEqmt(PauseTime As Variant)
     
    i = i + 1
     
    ReDim Preserve Start(i)
    ReDim Preserve WarmUpTime(i)
     
    WarmUpTime(i) = PauseTime
    Start(i) = Timer
    Do While Timer < Start(i) + WarmUpTime(i)
        DoEvents
    Loop
     
     
    End Function
    Avez-vous des astuces pour gérer plusieurs Timer simultanément ?

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Octobre 2011
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2011
    Messages : 46
    Par défaut
    Bonjour,

    Au lieu d'utiliser un timer pourquoi ne pas utiliser le lancement d'une fonction à une date donnée ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    Private Sub CommandButton98_Click()
     
      Application.ScreenUpdating = False
      If CommandButton98.BackColor = vert Then
        CommandButton98.BackColor = rouge
        Worksheets("Equipements Actifs").Cells(105, 4).Value = 0
        Application.onTime now+value_WarmUpTWT * 60, "ProcedureRougeOrange98"
      End If
    End Sub
     
    Private sub ProcedureRougeOrange98
     
      CommandButton98.BackColor = orange
      Worksheets("Equipements Actifs").Cells(105, 4).Value = 1
      Application.onTime now+value_WarmUpTWT * 60, "ProcedureOrangeVert98"
     
    End Sub
     
    Private sub ProcedureOrangeVert98
      CommandButton98.BackColor = vert
    End Sub
    A adapter à chaque bouton.

Discussions similaires

  1. Utilisation de plusieurs Timer Error
    Par christophe_halgand dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 24/07/2012, 22h11
  2. [MySQL] Problème de lecture sur plusieurs tables simultanément
    Par jonathanlafl dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/08/2010, 09h15
  3. utilisation de plusieurs timer.
    Par kanzarih dans le forum Composants VCL
    Réponses: 2
    Dernier message: 27/04/2010, 13h10
  4. [ADO.Net] - Problème lors de l'utilisation de plusieurs DataReader
    Par Aurazed dans le forum Accès aux données
    Réponses: 1
    Dernier message: 29/10/2007, 16h21
  5. Réponses: 5
    Dernier message: 04/06/2007, 21h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo