Bonjour, pouvez vous m'aider afin de faire une macro pour arrêter tout les macros en cours d'exécution d'un classeur quand celui-ci se ferme.
Merci de votre aide
Version imprimable
Bonjour, pouvez vous m'aider afin de faire une macro pour arrêter tout les macros en cours d'exécution d'un classeur quand celui-ci se ferme.
Merci de votre aide
Hello,
pour cela, plusieurs approches :
- soit tu as des macros dans lesquels du as un DoEvents qui tourne et dans ce cas tu passes par une variable globale qui sera passé à True lorsque tu cliqueras sur un bouton d'arrêt global avec un test dans les boucles doevents de tes macro sur cette variable
- soit tu le coupe via le End du VBE... (mais ce n'est pas du code) :aie:
Dans un module standard j'ai :
Dans un autre module standard j'ai :Code:Public Marche As Boolean
Tu peux me dire ou je dois placer doevents stpCode:
1
2
3
4
5
6
7
8
9
10
11 Sub Rafraichissement() Dim DansSoixanteSecondes As String If Marche = True Then Call calcul Etat7.Repaint ' Définit l'intervalle avec l'heure actuelle + trente secondes DansSoixanteSecondes = TimeSerial(Hour(Time), Minute(Time), Second(Time) + 60) ' Appel récursif de la fonction RafraichissementGraphe Application.OnTime DansSoixanteSecondes, "Rafraichissement" End If End Sub
En utilisant les ressources disponibles, notamment la :faq:, on a des exemples d'utilisation de DoEvents :)
http://access.developpez.com/faq/?pa...og#AttFinTrait
http://access.developpez.com/faq/?pa...og#TpsExecLong
Et lire aussi les cours et tutoriels pour apprendre Excel.