Attendre la fin d'une Macro
DPerron1976
Messages postés
27
Statut
Membre
-
DPerron1976 Messages postés 27 Statut Membre -
DPerron1976 Messages postés 27 Statut Membre -
Bien le Bonjour à tous !!!
C'est un peu complexe, mais je vais essayer de faire ca simple.
J'ai une macro "TestSechoir" qui peux être appelée par quatre(4) macros "Test_Sechoir1_Auto", "Test_Sechoir2_Auto", etc.
Je lance "Test_Sechoir1_Auto" et je souhaite par la suite l'exécution à toute les heures de la macro "TestSechoir". Je ne peux pas utiliser le fonction WAIT qui monopolise Excel pendant une heure à attendre.
Donc, comment attendre la fin de l'exécution de "TestSechoir", valider "Accepte" et recommencer dans une heure si le résultat est Faux ?!?! (sans mettre Excel en boucle sans fin car Excel sert a autre chose en même temps...)
Quelque chose du genre :
Do
Application.OnTime Now + TimeValue("01:00:00"), "TestSechoir"
Loop While Accepte = False
mais qui fonctionne :) Merci à l'avance !!!
C'est un peu complexe, mais je vais essayer de faire ca simple.
J'ai une macro "TestSechoir" qui peux être appelée par quatre(4) macros "Test_Sechoir1_Auto", "Test_Sechoir2_Auto", etc.
Je lance "Test_Sechoir1_Auto" et je souhaite par la suite l'exécution à toute les heures de la macro "TestSechoir". Je ne peux pas utiliser le fonction WAIT qui monopolise Excel pendant une heure à attendre.
Donc, comment attendre la fin de l'exécution de "TestSechoir", valider "Accepte" et recommencer dans une heure si le résultat est Faux ?!?! (sans mettre Excel en boucle sans fin car Excel sert a autre chose en même temps...)
Quelque chose du genre :
Do
Application.OnTime Now + TimeValue("01:00:00"), "TestSechoir"
Loop While Accepte = False
mais qui fonctionne :) Merci à l'avance !!!
A voir également:
- Attendre la fin d'une Macro
- Fin des zfe - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Fin de la 4g en france - Accueil - Guide opérateurs et forfaits
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
2 réponses
Bonjour,
Une solution possible
Cordialement
Une solution possible
Sub Test_Sechoir1_Auto()
'
'
'en fin de procédure
MsgBox "Exécution TestSechoir"
TestSechoir
End Sub
Sub TestSechoir()
Dim rep As Integer
'
'
'en fin de procédure
rep = MsgBox("Fin du test" & vbCrLf & vbCrLf & "Programmer un autre test?", vbYesNo + vbQuestion)
If rep = vbYes Then ' si OUI
'Nouveau test dans une minute
MsgBox "Prochain test exécuté à : " & Now + TimeValue("00:01:00")
Application.OnTime Now + TimeValue("00:01:00"), "TestSechoir"
End If
End Sub
Cordialement
Merci Pour l'info....
Peut-être je m'y prend mal mais voici le hic :
Les macros sont assez complexes et je croyais sauver de la programmation un créant un seul "TestSéchoir" pouvant être appelé par quatre(4) macro :
Chaque macro envois des info à "TestSéchoir" (ex, #de cycle, chemin et nom du fichier "courbes" à ouvrir, nombre d'heure à tester, chemin et nom du fichier Test à ouvrir, etc).
Et chacune des quatre(4) macros attend de savoir si le "TestSéchoir" est accepté pour envoyer un courriel ou recommencer dans une(1) heure si refusé !!!
Je serais mieux de créer un "TestSechoir" pour chaque (Ex, TestSechoir1, TestSéchoir2...) ???
Merci encore !!!
Peut-être je m'y prend mal mais voici le hic :
Les macros sont assez complexes et je croyais sauver de la programmation un créant un seul "TestSéchoir" pouvant être appelé par quatre(4) macro :
Chaque macro envois des info à "TestSéchoir" (ex, #de cycle, chemin et nom du fichier "courbes" à ouvrir, nombre d'heure à tester, chemin et nom du fichier Test à ouvrir, etc).
Et chacune des quatre(4) macros attend de savoir si le "TestSéchoir" est accepté pour envoyer un courriel ou recommencer dans une(1) heure si refusé !!!
Je serais mieux de créer un "TestSechoir" pour chaque (Ex, TestSechoir1, TestSéchoir2...) ???
Merci encore !!!
Je ne sais pas si peut executer une macro en tache de fond
Mais voici une autre façon de proceder
Mais voici une autre façon de proceder
Sub Test_Sechoir1_Auto()
Dim resultat As Boolean, rep As Integer
'
'
resultat = TestSechoir()
If Not resulat Then
rep = MsgBox("Test négatif" & vbCrLf & vbCrLf & "Programmer un autre test?", vbYesNo + vbQuestion)
If rep = vbYes Then ' si OUI
'Nouveau test dans une minute
MsgBox "Prochain test exécuté à : " & Now + TimeValue("00:01:00")
Application.OnTime Now + TimeValue("00:01:00"), "Test_Sechoir1_Auto"
End If
Else
MsgBox "Test positif"
End If
End Sub
'definir une fonction avec ou sans passage de paramètres
Function TestSechoir() As Boolean
MsgBox "Test Sechoir en cours"
'pour l'exemple Test Négatif
TestSechoir = False
End Function