Bonsoir, Dan,
il est vrai que beaucoup de codeurs utilisent plutôt des variables "interrupteur" plutôt que Application.EnableEvents = False, mais si le code est simple et bien structuré, alors c'est une fonction fort pratique. Mais qu'est-ce qu'une variable "interrupteur" ou Flag, ou bien autre chose ?
Si on reprend votre code : on dimensionne une variable boolean au niveau du module de feuille puis dans le code événementielle on passe cette variable à True dès qu'on aura besoin de faire une modification sur cette feuille. En début de code on fait un test de valeur de cette variable, si True on quitte prématurément pour stopper "la boucle infinie" qui se prépare si elle est à FALSE alors on applique le code :
Dim EnCours As Boolean
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If EnCours then Exit Sub ' si on est en train de travailler sur la feuille on quitte
On Error GoTo fin
If Target.Count > 1 Then Exit Sub
' début du code qui va engendrer des modifications sur la feuille
EnCours = True
' le reste du code
' on a fini avec les éventuelles modification de la feuille
EnCours = False
End Sub
Comme cela on ne touche pas à Application.EnableEvents et on ne risque pas de se retrouver avec une inerte si ce paramètre reste à FALSE
@ bientôt
LouReeD