Remettre "Application.EnableEvents" sur True

Bonjour,

Lorsque je travaille sur un projet pour lequel l’instruction Application.EnableEvents = False est nécessaire en début de macro, que je lance la procédure afin d’effectuer des tests et que ça bloque au milieu du code, celui-ci ne passe pas par l’instruction Application.EnableEvents = True placé en fin de code.

Parfois je pense bien entendu de déplacer la ligne jaune jusque sur l’instruction Application.EnableEvents = True et d’en forcer l’exécution avant de quitter Visual Basic, mais parfois j’oublie.

Je me retrouve alors dans la situation où plus aucun évènement n’est déclenché et je ne connais pas d’autre solution que de quitter Excel et de le rouvrir afin de mettre cette instruction automatiquement sur True.

Connaissez-vous une autre possibilité ?

A vous relire.

Bonjour Yvouille,

Tu peux toujours aller dans la fenêtre Exécution et taper Application.EnableEvents = True.

A+

Bonjour Yvouille, Frangy,

On peut aussi écrire cette ligne dans le module ThisWorkbook ... Workbook_Open et cliquer dessus pour la rétablir.

On peut également l'insérer dans l'événement Activate de chaque feuille du classeur.

Pour ma part, je mets la ligne de désactivation en commentaire avant de lancer le test, mais il ne faut pas oublier de la rétablir une fois les essais terminés.

Cordialement.

Bonjour Frangy et Papou-net et merci pour vos idées.

En fait vos solutions ne sont guère moins compliquées que celle que j’utilise actuellement. Pour Frangy je dois taper tout un texte alors que pour Papou-net il faut soit préparer un code au préalable, soit le préparer à ce moment-là.

Je voyais plutôt une solution très simple, directement depuis Excel, avec une combinaison de touches ou je ne sais quoi de ce genre-là.

Avez-vous encore des idées ?

Cordialement.

Bonjour

C'est une solution proche

Dans le module de la feuille je crée une macro (que j'oublie souvent quand je poste le fichier)

Sub Ret()
  Application.EnableEvents = True
End Sub

L'avantage je l'ai à disposition immédiate (c'est vrai que placé dans l'évènement calculate la place à proximité- mais risque d'être exécutée hors de notre volonté)

Bonjour à tous,

La solution que j'ai déjà utilisée pour éviter d'éventuels problèmes chez l'utilisateur est de remplacer Application.EnableEvents par une variable Global :

Global desactiver_events

Sub exemple()

    [barrer]Application.EnableEvents = False[/barrer]
    desactiver_events = True

    'Le code ...

    desactiver_events = Empty
    [barrer]Application.EnableEvents = True[/barrer]    

End Sub

Il suffit alors d'ajouter un If à l'événement pour le désactiver :

Sub event_exemple()

    If desactiver_events = Empty Then

        'L'événement ...

    End If

End Sub

Ca peut également être utile pour désactiver certains événements ou parties d'événements

Merci à Banzai et à Sébastien pour leurs nouveaux apports

Apparemment aucune solution ne sort du lot, il faudra toutes les tester

Excellentes Fêtes de Pâques à vous tous.

Rechercher des sujets similaires à "remettre application enableevents true"