Problème avec le timer.

Signaler
Messages postés
9
Date d'inscription
vendredi 3 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
-
Messages postés
9
Date d'inscription
vendredi 3 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009
-
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.

voici le programme :
Sub tempo()
'Dim Time As Single
duree = 10
    Time = Timer + duree * 60
    DoWhile Time > Timer
        DoEvents
    Loop
EndSub

il s'inscrit dans la boucle suivante :

Code :
PrivateSub Btn_acquerir_BH_Click()'Démarre l'acquisition d'une courbe B(H)Dim variable AsInteger
variable = 0DoWhile variable < 700Call courbeBH_yoko
Call tempo
variable = variable + 1LoopEndIf
Label_etat.ForeColor = RGB(0, 190, 0)EndSub

5 réponses

Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Bonjour,

Utilise AppliCation.Ontime

L'utilisation en boucle de DoEvents avec la fonction Timer sollicite démesurément ton processeur  et peut aller assez
rapidement jusqu'à un OverFlow au bout d'un certain temps dépendant de ta machine.

ApplicationOntime est assorti de quelques exemples d'utilisation dans l'aide en ligne de VBA/Excel
Messages postés
9
Date d'inscription
vendredi 3 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009

je vais essayer, merci de ta réponse
Messages postés
580
Date d'inscription
mercredi 20 août 2008
Statut
Membre
Dernière intervention
20 avril 2010
2
il suffit de créer un timer (par exemple timer1 avec interval 60000 (1 minute)) et une variable globalu'on va appeler tempspasser et en form load on va ssigner la valeur zero a cette variable :
private sub Timer1_Timer()
tempsasser = temspasser +1
if tempspasser = 10 then
'ton action qui se passe toute les 10 minutes ici
end if
end sub
 'au début de ton projet declare la variable temspasser ne l'oublie pas
'puis au démarrage
Private Sub Form_Load()
temspasser = 0
End Sub

Les yeux montrent la force de l'âme
Messages postés
1566
Date d'inscription
mardi 26 décembre 2000
Statut
Membre
Dernière intervention
5 avril 2013
6
Bonjour, Claiyah,

J'aime bien ton intervention, mais ...

Pas de timer sous VBA/Excel (l'utilisation de Application.Ontime est un substitut...)
Pour créer de toutes pièces un Timer sous VBA/Excel, on le peut... à condition d'utiliser des fonctions de l'Api de Windows (et le jeu n'en vaut certes pas ici la chandelle)..
Messages postés
9
Date d'inscription
vendredi 3 avril 2009
Statut
Membre
Dernière intervention
13 mai 2009

bonjour,
jai essayé ton idée, utiliser ApplicationOntime. malheureusement, il s'est produit la même chose...quand je suis revenu ce matin. mon programme ne sest pas rebouclé au bout de 300 min...

quelqu'un aurait il une idée...?
merci d'avance...
voici le programme :

'ON/OFF du timer

Sub DemarrerTimer()
    TimeOnOFF = Not TimeOnOFF
    If TimeOnOFF Then
        DelaiTimer = "00:02:00"
        Call Timer_EX
    End If
End Sub




Sub Timer_EX()
Dim VV
'Static variable As Integer
    If TimeOnOFF Then
        If variable < 700 Then
            Call courbeBH_yoko
            variable = variable + 1
           
            '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