Activer Worksheet Change

Hello à tous !

Je bug sur un truc qui doit être tout simple.

Je désire, par le biais d'un bouton sur ma feuille, d'activer ou désactiver un worksheet change. Il faudrait qu'en cliquant sur BOUTON_ACTIVER les évènements worksheet change fonctionnent (dans ce cas, une msg box d'erreur) que qu'en cliquant sur BOUTON_DESACTIVER cela désactive le worksheet change et qu'il n'y ait pas les messages d'erreurs malgré que M2 contienne le mot "erreur".

Private Sub BOUTON_ACTIVER_Click()

Application.EnableEvents = True

If Range("M2") = "ERREUR" Then MsgBox ("ATTENTION ! ERREUR  SUR LES QUANTITÉS INDIQUÉES POUR LA RÉFÉRENCE: " & (Range("B2"))), vbCritical, "TABLEAU DE SUIVI."

MsgBox "Messages d'erreurs activés"

End Sub

Private Sub BOUTON_DESACTIVER_Click()

Application.EnableEvents = False

If Range("M2") = "ERREUR" Then MsgBox ("ATTENTION ! ERREUR  SUR LES QUANTITÉS INDIQUÉES POUR LA RÉFÉRENCE: " & (Range("B2"))), vbCritical, "TABLEAU DE SUIVI."

MsgBox "Messages d'erreurs désactivés"

End Sub

J'ai aussi essayé cela mais sans succès:

Private Sub BOUTON_ACTIVER_Click()

Application.EnableEvents = True

End Sub

Merci pour votre aide.

Pat.

Bonjour,

De ce que je comprends et vois sans le fichier, je dirai qu'il serait préférable de ne pas utiliser Application.EnableEvents mais plutôt de :

  • prévoir une cellule dans la feuille concernée qui indiquerait quelque que chose du type "Activer les contrôles" avec à côté une cellule avec validation de données "Oui;Non" nommée "V_CTRL_ACTIF"
  • de coder la procédure Worksheet_Change
    Private Sub Worksheet_Change(ByVal Target As Range)
       If UCase(ActiveSheet.Range("V_CTRL_ACTIF").Value) = "NON" Then Exit Sub
       ' Ci-dessous le contrôle à effectuer
    
    End Sub
Cdlt,

Cylfo

Bonjour Cylfo,

cela fonctionne, donc ça me va :)

Merci.

Rechercher des sujets similaires à "activer worksheet change"