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 avec le timer


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut problème avec le timer
    bonjour,
    jaurais besoin de votre aide.

    jai réalisé un programme avec la fonction timer afin que le programme reboucle toutes les 10 minutes. et affiche une feuille excel toutes les 10 minutes.

    mon soucis est le suivant : le programme ne se reboucle plus au bout de 350 minutes. or, jaurais besoin que celui-ci se reboucle sur une durée beaucoup plus grande.

    quelqu'un aurait il une idée..?
    merci d'avance.

  2. #2
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    On peut avoir la parti du programme où tu utilises le timer?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    voici le programme avec le timer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Sub tempo()
    'Dim Time As Single
    duree = 10
        Time = Timer + duree * 60
        Do While Time > Timer
            DoEvents
        Loop
    End Sub
    il s'inscrit dans la boucle suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Btn_acquerir_BH_Click()
    'Démarre l'acquisition d'une courbe B(H)
    Dim variable As Integer
    variable = 0
     
        Do While variable < 700
            Call courbeBH_yoko
            Call tempo
            variable = variable + 1
            Loop
        End If
        Label_etat.ForeColor = RGB(0, 190, 0)
    End Sub

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    Une boucle avec la fonction Timer et DoEvents est de nature à surchauffer ton processeur au bout de quelques minutes (voire de moins en fonction de ta machine) et est donc à proscrire ...

    Utilise plutôt Application.Ontime (à voir dans ton aide en ligne + de nombreux exemples d'application sur ce forum)

  5. #5
    Membre Expert Avatar de Krovax
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 888
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 888
    Par défaut
    essaye peut être celui la (je t'avouerais ne pas avoir attendu les 350 minutes
    J'ai juste mis les bonne déclaration de variable dans tempo
    et modifié la variable time qui est une commande donnant l'heure du système

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub tempo()
    Dim duree As Integer
    Dim tps As single
    duree = 10
    tps = Timer + duree * 60
    Do While tps > Timer
    DoEvents
    Loop
    End Sub
    A bout de 350 minutes il te fait une erreur?
    Peut tu utiliser un espion pour voir les valeur de tes variables?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    au bout de 350 minutes, le programme ne sort pas de la boucle, mais il ne relance pas la mesure.

    je lance la mesure le soir avant de partir du boulot. et lorsque je reviens le lendemain matin, je maperçois que le programme a bien rebouclé pendant 350 min. et après il ne se relance plus.

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    Je rejoindrai plutôt l'avis de Ucfoutu, mais avec un petit exemple.
    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
    Public TimeOnOFF As Boolean
    Public DelaiTimer As Date
     
    'ON/OFF du timer
    Sub DemarrerTimer()
        TimeOnOFF = Not TimeOnOFF
        If TimeOnOFF Then
            DelaiTimer = "00:10:00"
            Timer_EX
        End if
    End Sub
     
    Sub Timer_EX()
    Dim VV
        If TimeOnOFF Then
            'Mettre le code à exécuter tout les...
            VV = TimeValue + DelaiTimer
            Application.OnTime VV, "Timer_EX"
        End If
    End Sub
    et dans le module ThisWorkBook
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
        DemarrerTimer
    End Sub

    A+
    Edit :
    Et l'erreur que tu a dans ton code est probablement un dépassement de capacité.
    Le timer doit toujours avoir une valeur <24

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    je ne comprends pas tout avec Application.OnTime

    lorsque je lance le programme, celui-ci sarrete à TimeValue et affiche :
    argument nor optional

    quelquun a til une idée...

    merci davance..

  9. #9
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Ouuups.. petit oubli,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    VV = TimeValue(Time) + DelaiTimer
    A+

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    bonjour,
    cela fonctionne, mais la mesure ne recommence pas au bout de 10 minutes...

  11. #11
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Tu a mis ton code à l'emplacement où j'ai mis..
    'Mettre le code à exécuter tout les... ?

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    oui

  13. #13
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Ca va, j'ai compris,
    modifie le code..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Btn_acquerir_BH_Click()
    'Démarre l'acquisition d'une courbe B(H)
    Dim variable As Integer
    variable = 0
     
        Do While variable < 700
            Call courbeBH_yoko
            Call tempo
            variable = variable + 1
            Loop
        End If
        Label_etat.ForeColor = RGB(0, 190, 0)
    End Sub
    par..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub Btn_acquerir_BH_Click()
    'Cliquer sur le bouton met l'acquisition en cour
    'Cliquer une 2ème fois l'arrète
    'ainsi de suite.
        DemarrerTimer
    End Sub
    Et tu remplace...
    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
    Sub Timer_EX()
    Dim VV
    Static variable As Integer
        If TimeOnOFF Then
            If variable < 700 Then
                Call courbeBH_yoko
                variable = variable + 1
                'Si c'est un pas UF mettre le nom de la feuille
                UserForm1.Label_etat.ForeColor = RGB(0, 190, 0)
                VV = TimeValue(Time) + DelaiTimer
                Application.OnTime VV, "Timer_EX"
            Else
                TimeOnOFF = False
            End If
        End If
    End Sub
    Si pas clair tu dis...

  14. #14
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    rectification...

    le programme redémarre mais sans attendre...snif snif snif


  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    merci pour ton aide..
    je vais essayer et je te tiens au courant...

  16. #16
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    cela fonctionne..cependant et oui...

    lorsque le programme tourne, il crée une feuille avec des variables. la feuille s'apelle "variable".

    lorsque le programme reboucle. il ne veut pas appeler la deuxième feuille par "variable+1". il me dit quil ne peut pas creer une feuille ayant le même nom que précedement soit "variable".
    le programme n'agrément pas..

  17. #17
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    OK, mais je ne peu pas tout deviner
    tu déplace la ligne qui est dans Timer_EX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Static variable As Integer
    Dans le haut du module (déclaration)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public variable As Integer
    A+

  18. #18
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    ...déjà essayé...

  19. #19
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Citation Envoyé par audrey76 Voir le message
    ...déjà essayé...
    Et tu met le topic Résolu ?
    Comment ?
    A+

  20. #20
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 20
    Par défaut
    bonjour, javais réussi hier a faire fonctionner mon programme en magouillant dans le programme principale.
    mais malheureusement quand je suis revenu ce matin. mon programme ne s'est pas rebouclé après 300 minutes.mon problème est revenu...

    as tu à tout hasard d'autres idées...?

Discussions similaires

  1. [Problème avec les Timers]
    Par ARachid dans le forum MFC
    Réponses: 4
    Dernier message: 11/05/2007, 18h47
  2. Problème avec les timers
    Par Mouse Slider dans le forum SDL
    Réponses: 5
    Dernier message: 22/08/2006, 09h34
  3. [Débutant]Problème avec un timer
    Par Fabouney dans le forum C
    Réponses: 10
    Dernier message: 10/08/2006, 19h25
  4. Problème avec un Timer
    Par francky23012301 dans le forum Composants VCL
    Réponses: 7
    Dernier message: 09/05/2006, 11h25
  5. [Débutant]Problème avec les timers
    Par mickael777 dans le forum MFC
    Réponses: 1
    Dernier message: 11/04/2005, 11h00

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