XL 2019 Lancer macro etape par etape

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 !

Rabeto

XLDnaute Occasionnel
Bonsoir,

J'ai 3 macro dans mon fichier et je les ai fusionné dans une module

Sub All ()
Call macro1
Call macro 2
Call macro3
End sub

Les 3 macros se lancent en même temps quand j'execute All,
Seulement, j'aimerai que seulement à la fin de l'execution de la macro 1 que la macro 2 se lance, et à la fin de la macro 2 que macro 3 se lance.
Je veux les garder dans une module, pour éviter de lancer 3 macros différents, et séparément.

Que dois je rajouter dans ce code pour cela svp ?

Merci
 
Bonsoir Rabeto,
Les 3 macros se lancent en même temps quand j'execute All,
Ca, ce n'est pas possible en VBA.
Macro1 s'exécute, à la fin Macro2 s'exécute et à la fin c'est au tour de Macro3.
Par contre, ce qui peut arriver c'est que dans une macro vous fassiez appel à une API Windows qui elle peut rendre la main à votre macro avant d'avoir terminé.
Donc tout dépend de votre code.
Si vous pouviez le partager ...
 
Bonsoir @Rabeto

Code:
```vba
Sub All()
    Call macro1
End Sub

Sub macro1()
    ' Votre code pour la macro 1 ici
    ' ...
    
    ' Appeler la macro 2 à la fin de la macro 1
    Application.OnTime Now + TimeValue("00:00:01"), "macro2" ' Attendez 1 seconde avant d'appeler macro2 (ajustez le délai si nécessaire)
End Sub

Sub macro2()
    ' Votre code pour la macro 2 ici
    ' ...
    
    ' Appeler la macro 3 à la fin de la macro 2
    Application.OnTime Now + TimeValue("00:00:01"), "macro3" ' Attendez 1 seconde avant d'appeler macro3 (ajustez le délai si nécessaire)
End Sub

Sub macro3()
    ' Votre code pour la macro 3 ici
    ' ...
End Sub

' Etc......
 
Bonsoir laurent950, sylvanu

Merci pour vos réponses,
Le code de laurent950, est ce que le timing veut dire, 1sec à la fin de l'execution de la macro1 ou attendre 1s apres que le premier macro se lance ?

Sylvanu, les codes de ma macro sont assez simple,, c'est juste des actualisations de requete power query, rien de compliquer.
 
Bonjour,
Dans ce cas, il faut (le plus simple) configurer PQ pour que les requêtes ne s'actualisent pas en arrière-plan :

1695974615754.png

Ici, elles s'actualisent en arrière-plan
Il suffit de décocher
Sinon, dans le code demandant le "Refresh", rajouter "False" en bout de ligne :

VB:
Sub Macro1()
    Range("Tableau1_2").ListObject.QueryTable.Refresh BackgroundQuery:=False
End Sub
Bonne journée
 
Bonsoir,

En fusionnant vos proposition j'ai trouvé un code de ce genre.

Sub Test()

Dim Test As Worksheet
Dim Nom As String
Call Macro1

Set Test = Worksheets("XXXXX")
Nom = Test.Range("A1").Value

If Nom = "XXXXX" Then
Call Macro2
Else
Call Macro3
End If
Call Macro4
MsgBox ("Complet")

End Sub
 
- 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

D
Réponses
4
Affichages
309
DidPouAxi
D
  • Question Question
Microsoft 365 macro vba sumifs
Réponses
5
Affichages
629
Retour