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 :
Jusqu'ici pas de soucis, le code fonctionne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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,
Partager