XL 2013 Mettre en pause une macro sans intervenir

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"
 

MACx

XLDnaute Occasionnel
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
 

CPk

XLDnaute Impliqué
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)
 

thebenoit59

XLDnaute Accro
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
 

MACx

XLDnaute Occasionnel
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
 

JCGL

XLDnaute Barbatruc
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
 

Discussions similaires

Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Réponses
2
Affichages
682

Statistiques des forums

Discussions
312 198
Messages
2 086 149
Membres
103 133
dernier inscrit
mtq