XL 2013 Mettre en pause une macro sans intervenir

  • Initiateur de la discussion Initiateur de la discussion MACx
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MACx

XLDnaute Occasionnel
Bonjour à la communauté !

est-il possible de mettre en pause une macro pendant qu'une commande s'execute puis qu'elle reparte une fois cette dernière terminée ?
Exemple:

1- J'ai un tableau filtré, donc j'annule tous les filtres:
Code:
ActiveSheet.ShowAllData

2- Puis j'actualise toutes mes données:
Code:
ActiveWorkbook.RefreshAll

3- Je finis ensuite par refaire mon filtre:
Code:
ActiveSheet.ListObjects("T_CA").Range.AutoFilter Field:=44, Criteria1:= _
        "oui"

Mon soucis se situe entre l'étape 2 et 3. L'étape 2 n'étant pas terminée la macro exécute quand même l'étape 3 mais du coup celle-ci ne se fait pas correctement.
Que puis-je mettre entre l'étape 2 et 3 pour indiquer d'attendre que l'étape 2 se termine pour passer enfin à l'étape 3 ?

Merci d'avance pour vos tips 😉

Code:
ActiveSheet.ShowAllData
    
    ActiveWorkbook.RefreshAll
       
    ActiveSheet.ListObjects("T_CA").Range.AutoFilter Field:=44, Criteria1:= _
        "oui"
 
Re : Mettre en pause une macro sans intervenir

Cela me ramène à un ERRATUM dans mon problème.
En fait il ne s'agit pas de faire une pause pendant l'exécution mais d'attendre que la mise à jour se termine (dure environ 20sec) puis de rependre l'étape 3.
Merci
 
Re : Mettre en pause une macro sans intervenir

La mise à jour consiste à quoi ? J'ai bien peur qu'excel ne sache pas interpréter un temps de traitement comme point de repère car en réalité, sa capacité d’exécution dépend en partie du processeur (les pros confirmeront ou non mes dires) donc du coup, sans repère pour programmer une macro évènementiel, difficile de pouvoir écrire quoi que ce soit (enfin à mon niveau bien sur)
 
Re : Mettre en pause une macro sans intervenir

Bonjour Macx, Cpk, le forum.
As-tu essayer de décomposer ta procédure en plusieurs procédures :

Code:
Sub Macro()
ActiveSheet.ShowAllData
ActiveWorkbook.RefreshAll
Filtre
End Sub

Code:
Sub Filtre()
ActiveSheet.ListObjects("T_CA").Range.AutoFilter Field:=44, Criteria1:="oui"
End Sub
 
Re : Mettre en pause une macro sans intervenir

Bonjour thebenoit59,

Superbe idée, j'y avais pas pensé. Par contre le résultat est hélas le même.
Du coup je crée quand même deux macros séparées avec deux boutons pour les executer une par une... Jusqu'à trouver mieux...
Merci
 
Re : Mettre en pause une macro sans intervenir

Bonjour à tous,

Peux-tu placer ceci entre l'étape 2 et 3 (ici 30 secondes)

VB:
WaitTime = TimeSerial(Hour(Now()), Minute(Now()), Second(Now()) + 30)
Application.Wait WaitTime

A+ à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
1
Affichages
2 K
Compte Supprimé 979
C
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
901
Réponses
14
Affichages
5 K
Retour