Lancement d'une macro à la fin d'une minuterie

Bonjour tous le monde,

je fouille un peu partout pour trouver une solution à mon problème.

Au démarrage de mon fichier, je souhaite lancer une minuterie dans une cellule spécifique ("A1") par exemple.

Une fois le décompte à 00:00 je souhaite lancer une procédure de sauvegarde+fermeture de ce même fichier.

NB: Je souhaite mettre ce protocole en place pour éviter les oublies de fermetures et donc les lectures seules car je bosse sur un réseau et ce fichier sera amené à être utilisé sur divers postes.

J'ai réussi via le forum de créer un décompte dans la cellule mais une fois à 00:00 rien ne ce passe

Voici le code

Dim ok As Boolean
Sub Demarrechrono()
'
'
ok = True
Range("A1") = TimeSerial(0, 0, 10)

Call decompte

End Sub

Sub decompte()
'
'
If ok Then
    If Range("A1") = 0 Then
        ok = True
        Range("A1") = TimeSerial(0, 0, 10): End
    End If
    Range("A1") = Range("A1") - TimeSerial(0, 0, 1)
    Range("A1").NumberFormat = "mm:ss"
        'Vitesse de défilement
    Application.OnTime Now + TimeValue("00:00:01"), "deCompte"

Else
    MsgBox ("Macro fermeture")
    Exit Sub

End If

End Sub

Ma demande est-elle réalisable?

Si oui, pouvez vous m'aider?

Cordialement,

Bonjour,

ci-jointe proposition d'un décompte par minute avec au départ un temps de fermeture au bout de 5 minutes

Sub Décompte()
'
'
    [A1] = Format(TimeSerial(0, 5, 0), "hh:mm:ss") 'Décompte de 5 minutes
    heure = Time + TimeValue("00:01:00")
    While [A1] > 0
        While Time < heure: DoEvents: Wend
        [A1] = [A1] - TimeValue("00:01:00")
        heure = Time + TimeValue("00:01:00")
    Wend

    MsgBox ("Macro fermeture")
End Sub

Bonjour THEV,

Merci pour la grande avancé que tu as proposé.

Je viens de tester ta proposition à l'instant et sa marche au poil.

Afin de lancer cette macro au démarrage, je l'ai instalé dans le "this Workbook" en "sub private"

Aussi j'ai mis deux ligne pour fermer le fichier

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

Private Sub Workbook_Open()

'

'

[A1] = Format(TimeSerial(0, 5, 0), "hh:mm:ss") 'Décompte de 5 minutes

heure = Time + TimeValue("00:00:01")

While [A1] > 0

While Time < heure: DoEvents: Wend

[A1] = [A1] - TimeValue("00:00:01")

heure = Time + TimeValue("00:00:01")

Wend

'Fermeture du fichier en cour

Application.DisplayAlerts = False

ThisWorkbook.Close savechanges:=True

End Sub

¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤

Cependant le defilement du minuteur s'arrete lorsque je modifie 1 cellule (peu importe laquelle)

Peu ton faire en sorte que le défilement ne soit pas affecté par la modification d'une cellule??

Cordialement,

Cependant le defilement du minuteur s'arrete lorsque je modifie 1 cellule (peu importe laquelle)

Je n'ai pas constaté ce problème. Il faut simplement attendre une minute avant que le contenu de la cellule A1 change.

Bonjour,

J'ai modifié la macro pour que A1 défile par pas de 1 seconde.

Le défilement s’arrête net dès que je modifi une cellule.

sur le coup je me suis demandé si la cellule A1 était freeze

Mais aprés un certain temp il ne se passait rien

Je te glisse le fichier en PJ

Cordialement,

7essai.xlsm (14.21 Ko)

J'ai modifié la macro pour que A1 défile par pas de 1 seconde.

1 seconde est un temps de défilement trop court pour permettre une action quelconque sur la feuille. De plus, je n'en vois pas l'intérêt. Le temps de défilement est celui qu'on laisse pour mener les actions dans le classeur. Ce temps d'action va se répéter autant de fois que la boucle principale s'exécutera.

Merci thev ;-)

Sorry pour le délai de réponse ;-)

Rechercher des sujets similaires à "lancement macro fin minuterie"