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 :

L'utilisateur décide de la temporisation


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut L'utilisateur décide de la temporisation
    Bonjour à tous,
    Je suis étudiant et j'ai un petit soucis. J'ai commandé une carte avec deux relais que je souhaite piloter via VBA.
    Je souhaite que l'utilisateur entre une tempo et que celle-ci active et désactive à tour de rôle mes deux relais.

    J'arrive à caler une tempo qui marche mais l'utilisateur ne peut pas la choisir. En voici le programme (en rouge ma tempo) :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Private Sub Lancer_Click()
    Lancer.Enabled = False
    Arreter.Enabled = True
    
    Arret = True
    x = 1
    Do While x < 10000000000#
        If (phid.OutputState(0) = False) Then
            phid.OutputState(0) = True
        Else
            phid.OutputState(0) = False
        End If
        Application.Wait (Now + TimeValue("00:00:02"))
        If (phid.OutputState(1) = False) Then
            phid.OutputState(1) = True
        Else
            phid.OutputState(1) = False
        End If
        If Arret = False Then
        phid.OutputState(0) = False
        phid.OutputState(1) = False
        Arreter.Enabled = False
        Lancer.Enabled = True
        
            Exit Do
        End If
    x = x + 1
    DoEvents
    Loop
    End Sub
    J'ai alors consulté l'aide de VBA et modifié ma tempo de la sorte seulement le programme plante (pas de tempo et impossible de l'arrêter) :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Private Sub Lancer_Click()
    Lancer.Enabled = False
    Arreter.Enabled = True
    newHour = Hour(Now())
    newMinute = Minute(Now())
    newSecond = Second(Now()) + a '(avec a=TextBox1.text pour récupérer la tempo utilisateur)
    WaitTime = TimeSerial(newHour, newMinute, newSecond)
    
    Arret = True
    x = 1
    Do While x < 10000000000#
        If (phid.OutputState(0) = False) Then
            phid.OutputState(0) = True
        Else
            phid.OutputState(0) = False
        End If
        Application.Wait WaitTime
        If (phid.OutputState(1) = False) Then
            phid.OutputState(1) = True
        Else
            phid.OutputState(1) = False
        End If
        If Arret = False Then
        phid.OutputState(0) = False
        phid.OutputState(1) = False
        Arreter.Enabled = False
        Lancer.Enabled = True
        
            Exit Do
        End If
    x = x + 1
    DoEvents
    Loop
    End Sub
    Pouvez-vous m'aider s'il vous plaît ?

    Cordialement

    Guillaume

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    la demande pourrait se faire ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    delai = InputBox("Entrer le délai en secondes", "Tempo", 2)
    et la tempo ainsi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    k = Timer: Do Until Timer > k + delai: DoEvents: Loop
    Timer compte en secondes (voir l'aide) avec quelques décimales

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 5
    Par défaut Merci
    Merci de votre réponse. Elle s'adapte parfaitement à ma situation.
    Cordialement

    Guillaume

Discussions similaires

  1. Gestion approfondie des utilisateurs
    Par Lux interior dans le forum XMLRAD
    Réponses: 11
    Dernier message: 04/03/2003, 21h43
  2. Utilisateurs d'une appli delphi+paradox
    Par Jacques Deyrieux dans le forum Paradox
    Réponses: 2
    Dernier message: 11/12/2002, 18h41
  3. interface utilisateur avec OpenGL
    Par demis20 dans le forum OpenGL
    Réponses: 6
    Dernier message: 03/10/2002, 12h27
  4. Réponses: 8
    Dernier message: 05/06/2002, 11h55
  5. [Kylix] Sauvegarde de donnée utilisateur....
    Par Eclypse dans le forum EDI
    Réponses: 1
    Dernier message: 11/05/2002, 17h21

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