Mettre un temps entre deux séquences d’une macro
Résolu/Fermé
mijean94
Messages postés
413
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
12 septembre 2024
-
Modifié le 13 août 2021 à 00:01
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 - 15 août 2021 à 18:31
mijean94 Messages postés 413 Date d'inscription mercredi 16 décembre 2015 Statut Membre Dernière intervention 12 septembre 2024 - 15 août 2021 à 18:31
A voir également:
- Mettre un temps entre deux séquences d’une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Blocage agriculteur carte en temps réel - Accueil - Transports & Cartes
- Macro word - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Combien de temps reste une story sur facebook - Guide
6 réponses
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
Modifié le 13 août 2021 à 12:27
Modifié le 13 août 2021 à 12:27
PS :
je viens de tester ta proposition sur Word m@rina, mais OnTime réagit comme sur excel.
Macro1 continue son exécution tout de suite après le OnTime.
Contrôle :
Debug.Print "macro1" est exécuté, et 5 s plus tard c'est Debug.Print "macro2"
ou alors il faudrait mettre la fin de la macro1 dans macro2.
Ce n'est pas dit clairement :-)
PS2 : ah ben si c'est dit quand on lit lentement :-)
je viens de tester ta proposition sur Word m@rina, mais OnTime réagit comme sur excel.
Macro1 continue son exécution tout de suite après le OnTime.
Contrôle :
Sub Macro1() MsgBox "Ceci est le début de la macro, lorsque vous appuierez sur OK," & _ " vous attendrez 20 secondes que la macro reprenne" ' Pause de 20 seconds. Application.OnTime When:=Now + TimeValue("00:00:05"), _ Name:="Macro2" Debug.Print "macro1: " & Timer End Sub Public Sub Macro2() Debug.Print "macro2: " & Timer MsgBox "la seconde macro reprend : Ce message s'affiche 20 secondes après le premier" End Sub
Debug.Print "macro1" est exécuté, et 5 s plus tard c'est Debug.Print "macro2"
ou alors il faudrait mettre la fin de la macro1 dans macro2.
Ce n'est pas dit clairement :-)
PS2 : ah ben si c'est dit quand on lit lentement :-)
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
13 août 2021 à 00:01
13 août 2021 à 00:01
Bonjour,
Tu utilises mal OnTime.
Là, la macro se relance elle-même en permanence.
Pour ce que tu décris,
devrait suffire.
Le soucis c'est que cette méthode garde la main et consomme des ressources, peut-être pas rédhibitoire pour toi.
eric
Tu utilises mal OnTime.
Là, la macro se relance elle-même en permanence.
Pour ce que tu décris,
Application.Wait Now() + Cdate("00:00:30")
devrait suffire.
Le soucis c'est que cette méthode garde la main et consomme des ressources, peut-être pas rédhibitoire pour toi.
eric
mijean94
Messages postés
413
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
12 septembre 2024
11
13 août 2021 à 00:07
13 août 2021 à 00:07
Bonjour,
Merci pour la réponse rapide.
j'ai essayé cette solution mais il y a une erreur sur .Wait, membre de méthode ou données introuvables ?
y a t-il une autre solution pour ne pas consommer des ressources ? même si je ne comprend pas bien cette notion.
Bien cordialement
Merci pour la réponse rapide.
j'ai essayé cette solution mais il y a une erreur sur .Wait, membre de méthode ou données introuvables ?
y a t-il une autre solution pour ne pas consommer des ressources ? même si je ne comprend pas bien cette notion.
Bien cordialement
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
13 août 2021 à 00:42
13 août 2021 à 00:42
il faut laisser Application. devant
Essaie avec ça :
tu verras que ça dure 5s
y a t-il une autre solution pour ne pas consommer des ressources ?
oui mais pas sûr que ça vaille le coup ici.
Ca veux juste dire que vba continue à tourner pour voir si le temps est écoulé ou pas.
eric
Essaie avec ça :
Sub test()
Debug.Print Timer
Application.Wait Now() + CDate("00:00:05")
Debug.Print Timer
End Sub
tu verras que ça dure 5s
y a t-il une autre solution pour ne pas consommer des ressources ?
oui mais pas sûr que ça vaille le coup ici.
Ca veux juste dire que vba continue à tourner pour voir si le temps est écoulé ou pas.
eric
mijean94
Messages postés
413
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
12 septembre 2024
11
13 août 2021 à 09:24
13 août 2021 à 09:24
Bonjour,
j'ai toujours la même erreur au lancement de la procédure.
Voici la macro entière
bien cordialement
j'ai toujours la même erreur au lancement de la procédure.
Voici la macro entière
Sub protection_doc()
' changement couleur du document
Call couleur_rouge
MsgBox "protection du document OK" & Chr(13) & Chr(10) & "le doc doit-etre rouge"
Debug.Print Timer
Application.Wait Now() + CDate("00:00:15")
Debug.Print Timer
Call couleur_papier_b 'couleur blanc
'mise en place protéger du document.
If ActiveDocument.ProtectionType = wdNoProtection Then
ActiveDocument.Protect Type:=wdAllowOnlyFormFields, Password:="jlejle"
Else: MsgBox "Le document est déja protégé" & Chr(13) & Chr(10) & "Faire Ctrl+D pour le déprotégéer"
End If
MsgBox "Le document est PROTEGER"
End Sub
bien cordialement
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
13 août 2021 à 10:28
13 août 2021 à 10:28
Bonjour,
Je n'avais pas prêté attention que c'était Word. Il ne connait pas .Wait
Essaie avec :
eric
Je n'avais pas prêté attention que c'était Word. Il ne connait pas .Wait
Essaie avec :
Sub test() 'Appel tempo timerS 5 ' 5 s MsgBox "fini" End Sub Sub timerS(t As Double) ' tempo t secondes, précision possible : 1/100 s Dim s As Double s = Timer: Do While Timer < s + t: DoEvents: Loop End Sub
eric
mijean94
Messages postés
413
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
12 septembre 2024
11
13 août 2021 à 10:43
13 août 2021 à 10:43
Merci, je vais mettre en place et tester
m@rina
Messages postés
21073
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
17 octobre 2024
11 343
13 août 2021 à 10:55
13 août 2021 à 10:55
Bonjour
Coucou Eric ;)
Sinon, tu peux regarder cet article :
https://faqword.com/index.php/word/gestion-des-macros/481-comment-inserer-une-attente-dans-un-module-vba-word-entre-2-instructions
m@rina
Coucou Eric ;)
Sinon, tu peux regarder cet article :
https://faqword.com/index.php/word/gestion-des-macros/481-comment-inserer-une-attente-dans-un-module-vba-word-entre-2-instructions
m@rina
mijean94
Messages postés
413
Date d'inscription
mercredi 16 décembre 2015
Statut
Membre
Dernière intervention
12 septembre 2024
11
13 août 2021 à 11:38
13 août 2021 à 11:38
j'avais regardé, mais j'avais la même erreur de compilation sur le OnTime ?
eriiic
Messages postés
24600
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
21 octobre 2024
7 238
13 août 2021 à 11:58
13 août 2021 à 11:58
Bonjour m@rina,
content de te voir ici :-)
Bonne journée
eric
content de te voir ici :-)
Bonne journée
eric
15 août 2021 à 18:31
Bien cordialement