Bonsoir.
À mon avis la macro peut être conçue de manière à pouvoir s'exécuter en tâche de fond, et il suffit pour cela qu'elle exécute des DoEvents assez fréquemment.
Attention toutefois à ce que les sollicitations traitées grâce à cela n'entrainent pas une ré exécution de la macro. Par ailleurs celle ci ne doit pas faire de Select ni utiliser Selection, ni activer de feuille ni de classeur.
Et de toute façon ce n'est a étudier qu'après avoir fait tout ce qu'il faut pour qu'elle soit le plus rapide possible. Travaillez seulement avec des tableaux et utilisez le moins souvent possible les méthodes Range, Cells et Evaluate. Si possible une seule fois au début et une seule fois à la fin.