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 :

Boucle avec tempo qui s'arrête a minuit


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut Boucle avec tempo qui s'arrête a minuit
    bonjour, j'ai créer un script en visual basic qui me permet d'envoyer les données d'une feuille excel vers un afficheur par port série avec des valeurs actualisées en permanence.
    Toute fonctionne correctement j'utilise une boucle avec une tempo pour raffraichir les données toutes les 10 secondes cependant tout les jours a minuit l'excecution s'arrete et je n'arrive pas a savoir pourquoi.

    Auriez vous une solution je vous laisse les lignes de commande

    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
    Private Sub CommandButton1_Click()
     
    Dim i As Integer
    Do
       Dim r, Data
       Range("E35").Select
       Open "\\Poste-xp1\C\jackpot.txt" For Input As #1
       r = 0
       Do Until EOF(1)
          Line Input #1, Data
          ActiveCell.Offset(r, 0) = Data
          r = r + 1
       Loop
       Close #1
    Dim m_oSheet As Feuil1
       Set m_oSheet = ThisWorkbook.Sheets.Item(1)
     
    Dim szText As String
     
       Set m_oRange = m_oSheet.Cells.Item(8, 1)
       szText = m_oRange.Value
     
       f_ret = AdaptiveRTUpdate1.VariableUpdateText("D", szText, "COLOR_RED", "STYLE_DEFAULT")
     
       If f_ret <> 1 Then
          MsgBox "Error : " & AdaptiveRTUpdate1.GetErrorDescription(f_ret), vbExclamation, "RTupdate ActiveX"
       End If
    Dim t As Date
       t = Timer + 10: Do Until Timer > t: DoEvents: Loop
    Loop
     
     
    End Sub

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Le timer donne l'heure pour le jour. Quand tu dépasses minuit, il repasse à zéro.
    Utilise une variable intermédiaire et la variable mod 10
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    t = Timer mod 10 'afin de commencer à 0
    Do Until Timer - t Mod 10 = 0 
         DoEvents
    Loop
    Tu peux tester pour moi ?
    A+

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 4
    Par défaut
    malheureusement il se passe rien j'ai l'erreur do sans boucle donc j'ai modifié le code en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    t = Timer Mod 10 'afin de commencer à 0
    Do Until Timer - t Mod 10 = 0: DoEvents: Loop
    et quand j'éxécute il reste bloqué en permanance sur la ligne.

    cependant j'ai eu une réponse sur un autre forum et ça marche nickel, je met le code ici ça peut servir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim t As Date
    t = Now(): Do Until DateDiff("s", t, Now()) > 9: DoEvents: Loop

  4. #4
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Oui, timer donne un nombre à décimales
    Mais suis-je bête, utilise Wait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Wait(Now + TimeValue("0:00:10"))
    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Script sh / boucle sans fin qui s'arrête toute seule
    Par FaTaL25 dans le forum Shell et commandes GNU
    Réponses: 9
    Dernier message: 27/09/2012, 12h42
  2. boucle qui s'arrête avec firefox
    Par scavenger dans le forum Général JavaScript
    Réponses: 32
    Dernier message: 09/01/2009, 17h51
  3. Boucle Visual Basic s'arrête a minuit HELP
    Par thedjtony dans le forum VBA Access
    Réponses: 2
    Dernier message: 02/04/2008, 23h30
  4. Horloge BIOS qui s'arrête avec le PC
    Par fenkys dans le forum Composants
    Réponses: 3
    Dernier message: 04/12/2007, 18h53

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