T
totof
Guest
bonjour à tous,
J'ai plusieurs macro à executer à intervalle regulier.
Le petit probleme c'est que je dois lancer la macro 1 puis passer à la deuxieme à condition que la premiere se soit bien executee .
Pour lancer les macro j'y suis arrive mais pas la contrainte.
Mon code:
Sub process()
' On va rechercher l'heure de départ qui se trouve dans la cellule "k2"
startTime = Application.Worksheets(1).Range("k2").Value
' On va rechercher les huit derniers caractère (à partir de la droite
currentTime = Right(CStr(Now()), 8)
' On teste si la date dans la cellule B2 est plus petite que l'heure système.
' Si c'est le cas, on affiche un message pour avertir l'utilisateur
If (currentTime > startTime) Then
MsgBox "ATTENTION, l'heure dans la celleule K2 est déjà passée"
' 10 représente le nombre de secondes à attendre avant de lancer la suite
Else: Call calculX(10)
End If
End Sub
Sub calculX(intervalSeconde As Integer)
' On va rechercher l'heure de départ qui se trouve dans la cellule B2
startTime = Application.Worksheets(1).Range("k2").Value
' On lance le calcul du X de la 1° caisse
Application.OnTime TimeValue(startTime), "XCAISSE1"
' On lance le calcul du X pour la 2° caisse 10 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde), "XCAISSE2"
' On lance le calcul du X pour la 3° caisse 20 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde * 2), "XCAISSE3"
' On lance le calcul du X pour la 4° caisse 10 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde), "XCAISSE4"
' On lance le calcul du X pour la 5° caisse 20 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde * 2), "XCAISSE5"
End Sub
J'ai plusieurs macro à executer à intervalle regulier.
Le petit probleme c'est que je dois lancer la macro 1 puis passer à la deuxieme à condition que la premiere se soit bien executee .
Pour lancer les macro j'y suis arrive mais pas la contrainte.
Mon code:
Sub process()
' On va rechercher l'heure de départ qui se trouve dans la cellule "k2"
startTime = Application.Worksheets(1).Range("k2").Value
' On va rechercher les huit derniers caractère (à partir de la droite
currentTime = Right(CStr(Now()), 8)
' On teste si la date dans la cellule B2 est plus petite que l'heure système.
' Si c'est le cas, on affiche un message pour avertir l'utilisateur
If (currentTime > startTime) Then
MsgBox "ATTENTION, l'heure dans la celleule K2 est déjà passée"
' 10 représente le nombre de secondes à attendre avant de lancer la suite
Else: Call calculX(10)
End If
End Sub
Sub calculX(intervalSeconde As Integer)
' On va rechercher l'heure de départ qui se trouve dans la cellule B2
startTime = Application.Worksheets(1).Range("k2").Value
' On lance le calcul du X de la 1° caisse
Application.OnTime TimeValue(startTime), "XCAISSE1"
' On lance le calcul du X pour la 2° caisse 10 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde), "XCAISSE2"
' On lance le calcul du X pour la 3° caisse 20 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde * 2), "XCAISSE3"
' On lance le calcul du X pour la 4° caisse 10 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde), "XCAISSE4"
' On lance le calcul du X pour la 5° caisse 20 secondes plus tard
Application.OnTime TimeValue(startTime) + TimeSerial(0, 0, intervalSeconde * 2), "XCAISSE5"
End Sub