Compte a rebours

Compte a rebours - VB/VBA/VBS - Programmation

Marsh Posté le 11-05-2018 à 12:03:25    

Bonjour
 
j'ai un fichier excel que je lance par tache planifié, avec un lancement automatique d'une macro
 
Private Sub Workbook_Open()
    Call Extract
End Sub
 
je voudrais mettre un compte a rebours (avant le lancement automatique) pour que je puisse éditer certains paramètres
 
au final :
 
la nuit, la tache planifiée ouvrirait le fichier Excel, la macro se lancerait, le compte a rebours tournerait 10s, puis sans réponse lancerait l'extract
le jour, j'ouvre le fichier Excel, le compte a rebours se lance, je le stoppe avant les 10s, et j'édite
 
 
 
j'ai trouvé ce code, mais je ne sais pas trop comment le stopper
il y aurait moyen de mettre un msgbox quelque part pour rendre possible l'arrêt ?
 

Code :
  1. Dim ok As Boolean
  2. Sub Demarrechrono()
  3. ok = True
  4. Range("A1" ) = TimeSerial(0, 0, 10)
  5. Call decompte
  6. End Sub
  7. Sub decompte()
  8. If ok Then
  9.     If Range("a1" ) = 0 Then
  10.         ok = False
  11.         Range("A1" ) = "Temps ecoulé"
  12.         MsgBox "lancement macro"
  13.         End
  14.     End If
  15.    
  16.     Range("A1" ) = Range("A1" ) - TimeSerial(0, 0, 1)
  17.     Range("A1" ).NumberFormat = "mm:ss"
  18.     Application.OnTime Now + TimeValue("00:00:01" ), "deCompte"
  19. End If
  20. End Sub


 
 
 

Reply

Marsh Posté le 11-05-2018 à 12:03:25   

Reply

Marsh Posté le 25-05-2018 à 22:44:57    

me revoila, avec du nouveau !
j'ai trouvé ce que je voulais sur cette page:
https://chandoo.org/forum/threads/v [...] mer.17506/
 
mais j'ai un petit soucis...
 
sur un PC cela fonctionne comme je le souhaite  
sur un autre PC, la macro se lance, le msgbox apparait, mais il ne tourne pas  
par contre sur ce même PC si je lance la macro Workbook_Open MANUELLEMENT, ca marche...  :??:  
 
 
dans thisworkbook, auto_open

Code :
  1. Private Sub Workbook_Open()
  2. Application.OnTime Now(), "OpenWkbkEvent"
  3. End Sub


 
dans un module

Code :
  1. Public Sub OpenWkbkEvent()
  2. With ThisWorkbook
  3.     .RefreshAll
  4.     .Save
  5. End With
  6.     Dim mysec As Integer, msg As String
  7.     mysec = 10 'Seconds
  8.     msg = "La macro principale se lancera dans " & mysec & _
  9.         " seconds." & vbLf & "Appuyez OK pour empecher son lancement automatique"
  10.     With CreateObject("WScript.Shell" )
  11.         Select Case .Popup(msg, mysec, "Info", 0)
  12.             Case 1
  13.                 Exit Sub
  14.         End Select
  15.     End With
  16. MsgBox "lancement de la macro principale"
  17. End Sub


 
 
quelqu'un peut tester ?


Message édité par daniel-12 le 25-05-2018 à 22:46:22
Reply

Marsh Posté le 27-05-2018 à 10:04:53    

Salut, il y aurait ceci : https://excel.developpez.com/telech [...] ronometres mais il faudrait l'adapter à ton contexte.


Message édité par kiki29 le 27-05-2018 à 10:05:14

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 27-05-2018 à 22:50:08    

Merci  :jap:  
j'ai utilisé le compte a rebours et réduit au strict minimum
ça marche,  
le décompte se fait sur 10s et l'utilisateur (moi) peut l'interrompre pour modifier des choses si besoin
 
en cas d'absence (lancement par tache planifiée), le décompte se fait, puis a la fin la macro que je veux se lance
 
l'idéal pour moi aurait été d'avoir le tout sur quelques lignes a placer sur Workbook_Open, et rien que là
 
si quelqu'un a ça ..


Message édité par daniel-12 le 27-05-2018 à 22:50:28
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed