Afficher un message pendant l'exécution d'une procédure
Bonjour à tous,
Dans un classeur Excel, j'ai deux tableaux provenant de connexions externes.
Je ne souhaite pas que ces dernières soient mises à jours à l'ouverture du classeur mais plutôt sur demande de l'utilisateur.
J'ai donc créé une procédure permettant de faire cela :
Code:
1 2 3 4 5 6
| Sub updateData()
shNouveauxDCL.ListObjects(1).QueryTable.Refresh BackgroundQuery:=False
shRealisationsASS.ListObjects(1).QueryTable.Refresh BackgroundQuery:=False
shMaj.Range("updateDate").Value = "Date des données : " & getUpdateDate()
End Sub |
Jusqu'ici pas de soucis, le code fonctionne.
Toutefois, les deux lignes .QueryTable.Refresh peuvent prendre un peu de temps et je souhaiterai afficher un message pendant l'exécution du code.
J'ai testé 2 solutions :
- Via un shape que j'affiche temporairement :
Code:
1 2 3 4 5
| Sub updateData()
shMaj.Shapes("loader").Visible = msoTrue
' CODE
shMaj.Shapes("loader").Visible = msoFalse
End Sub |
- Via un onglet que j'affiche temporairement :
Code:
1 2 3 4 5
| Sub updateData()
shLoader.Select
' CODE
shMaj.Select
End Sub |
Ces 2 solutions fonctionnent en pas-à-pas mais pas en exécution globale.
J'ai une 3iem idée en tête consistant à utiliser un userForm (pas encore tester mais ça devrait fonctionner) mais je ne veux pas charger le projet VB inutilement.
Avez-vous des idées pour m'aiguiller vers une solution ?
Merci d'avance pour vos retours,