Worksheet_Deactivate en boucle, comment l’arrêter ?

pmfontaine

XLDnaute Occasionnel
Bonsoir,
J'ai quelque problème avec une macro événementielle, et j’espère que vous pourrez m'aider ?
Lorsque j'ai fait des modifications dans la Feuille "Feuille 1", je souhaite au moment de la quitter, réaliser une macro dans cette feuille.
Pour cela j'utilise une macro événementielle "Worksheet_Deactivate" au moment ou je quitte la feuille "GESTION CATEGORIE"
Code:
Private Sub Worksheet_Deactivate()
Dim FeuillePrecedente As String
FeuillePrecedente = ActiveSheet.Name
Sheets("Feuille 1").Select
    Range("A1:B2").Select
    Selection.ClearContents
Sheets(FeuillePrecedente).Select
End Sub
Le problème c'est que ça boucle en permanence et que je suis obliger de taper sur "Echap" pour stopper la boucle.
Est-ce que vous auriez une autre méthode ou est-ce que vous pourriez m'expliquer comment faire avec cette fonction ?
J'ai essayer avec "Worksheet_Activate" sur les autres feuilles, mais je suis arriver au même résultat, boucle en continue.
Merci d'avance pour votre aide.
Bien sur si je ne mets pas "Sheets(FeuillePrecedente).Select" ça marche, mais je ne peu jamais sortir de la feuille 1
Je joint un fichier ou j'ai tous simplifier au maximum, et dans ce cas ça fini par s’arrêter tous seul au bout de plusieurs boucles ?
Dans mon fichier de travail ça ne s’arrête pas.
Merci d'avance pour votre aide
 

Pièces jointes

  • evenementielle.xls
    37.5 KB · Affichages: 32
  • evenementielle.xls
    37.5 KB · Affichages: 43
  • evenementielle.xls
    37.5 KB · Affichages: 44

youky(BJ)

XLDnaute Barbatruc
Re : Worksheet_Deactivate en boucle, comment l’arrêter ?

Bonsoir,
C'est assez simple quand on connait la manip . . .
Cette ligne annule les événements
Application.EnableEvents = False
' ta macro ou select
' on réactive les événements avec True
Application.EnableEvents =True

Bruno
 

pmfontaine

XLDnaute Occasionnel
Re : Worksheet_Deactivate en boucle, comment l’arrêter ?

Merci laetitia90, merci Bruno,
Bruno, ta solution marche impeccable, comme tu dit c'est simple !
Mais quand on ne connait pas c'est pas évident de trouver.
Encore merci beaucoup pour votre aide
 

job75

XLDnaute Barbatruc
Re : Worksheet_Deactivate en boucle, comment l’arrêter ?

Bonsoir pmfontaine, Laetitia, Bruno,

C'est entre autres pour cela qu'en VBA on évite toujours les Select et Activate :

Code:
Private Sub Worksheet_Deactivate()
Sheets("Feuille 1").Range("A1:B2").ClearContents
End Sub
Edit : bien sûr si en "Feuille 1" il y a une macro Worksheet_Change, utiliser les Application.EnableEvents.

A+
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 174
Messages
2 085 945
Membres
103 055
dernier inscrit
DrKiwi