Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

désactiver un évenement

  • Initiateur de la discussion Initiateur de la discussion marrek
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

M

marrek

Guest
Bonjour,

voila après petite recherche, j'ai pas trouvé mon bonheur...donc voila ma question:
Commet faut il faire pour désactiver un évenement?
parce que je ne sais pas comment utiliser le code suivant pour l'adapter à mon probleme!

"Appiclation.enable.event =False"

J'ai un evenement: workbook open();
et je voudrais empecher le contenu de cet evenement de se lancer lors de l'enregistrement de mon classeur.

En esperant que vous pourrez m'aider!

ps: cette question est issue d'une autre discussion, mais vu que le sujet a changé, il m'a semblé preferable de la poser ici, en m'excusant si ce n'est pas approprié.
Cordialement
M.
 
Re : désactiver un évenement

Bonjour marrek,

Pour désactiver tous les évènements :

Application.EnableEvents = False

et impérativement en fin de macro :

Application.EnableEvents = True

L'évènement Open, a priori, n'a rien à voir avec l'enregistrement du fichier (évènement BeforeSave).

A+
 
Re : désactiver un évenement

Bonjour Marrek, bonjour le forum,

Je vois pas trop le rapport entre l'événement Open et l'enregistrement de ton classeur, l'un ne devrait pas déclencher l'autre...
Mais si tu as un événement Save qui lui ouvre une autre classeur je comprends mieux...

Dans ce cas il faudrait que tu places la ligne :
Code:
Application.EnableEvents = False
quelque part avant l'ouverture du fichier et surtout que tu rétablisses après avec :
Code:
Application.EnableEvents = True
Le danger de cette ligne et que, si par hasard, tu plantes avant avoir rétabli, il n'y a plus aucune macro ''evénementielle" qui fonctionne tant que tu n'auras fait relire ... = true

J'espère que je suis pas trop à coté de la plaque...

Édition :

Salut Job, décidément...
 
Dernière édition:
Re : désactiver un évenement

Bonsoir le forum, bonsoir Job et bonsoir Robert,

tout d'abord merci de votre aide précieuse.
Des petites précisions s'imposent meme si Robert a vu juste (au pas loin disons;D)

En fait le rapport entre la sauvegarde et l'open est que:
dans l'evenment workbook open, j'ai un code qui me réinitialise toutes les cellules. Concretement, il me met une plage de cellule dans une colonne et sur plusieurs feuilles à la valeur "?".
Ensuite l'utilisateur va donc changer toutes ces valeurs. Le but de la sauvegarde est de conserver ces valeurs bien entendu! or si j'enregistre betement le classeur, ben à l'ouverture je perdrai à nouveau tout le travail effectué!
C'est pour cela que je souhaite désactiver une fois pour toute l'evenement workbook open lors de ma sauvegarde.


Du coup j'ai essayé comme préconisé:
Code:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)

Application.EnableEvents = False

If Dir("G:\Documents and Settings\pierre\Bureau\projet.xls") <> "" Then
        Kill "G:\Documents and Settings\pierre\Bureau\projet.xls"
      End If

ActiveWorkbook.SaveCopyAs "G:\Documents and Settings\pierre\Bureau\projet.xls"



Application.EnableEvents = True

End Sub
mais là je suis pas sur que ça serve à grand chose du coup... donc j'ai rajouté le code suivant dans l'évenement open:
Code:
If ActiveWorkbook.FullName = "Etudeessai1" Then
For i = 1 To 14
    j = i

    Sheets("Cible" & j).Select
  
            For k = 4 To 36
            If IsEmpty(Cells(k, 3)) = False Then
            Cells(k, 4).Value = "?"
            End If
        Next k
       '-- Appliquer une couleur jaune à l'onglet de la Feuil1
    Sheets("Cible" & j).Tab.ColorIndex = 6
Next i
 ' je fais appel au module "initialisation2"
 Sheets("Bilan").Select
For l = 3 To 61
    
        If IsEmpty(Cells(l, 1)) = False And Cells(l, 1).Value <> "Validation possible ?" Then
        Cells(l, 3).Value = "?"
        ElseIf Cells(l, 1).Value = "Validation possible ?" Then Exit For
        End If
Next l

Sheets("Calcul").Visible = False
Sheets("MOA").Visible = False
Application.ScreenUpdating = True
ActiveWindow.DisplayWorkbookTabs = True


Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Sheets("Bilan").Select
UsfMenu.Show
Else:
Sheets("Calcul").Visible = False
Sheets("MOA").Visible = False
Application.ScreenUpdating = True
ActiveWindow.DisplayWorkbookTabs = True


Application.CommandBars("Formatting").Visible = True
Application.CommandBars("Standard").Visible = True
Application.CommandBars("Worksheet Menu Bar").Enabled = True
Sheets("Bilan").Select
End If

Au final, l'enregistrement ( "projet") ne se réinitialise pasdonc ça c'était l'objectif!, sauf que maintenant le document originel lui non plus et là ça pose probleme!!
Je ne sais pas d'ou vient le probleme (je pense que ça doit venir de ma chaine "If workbook.name = Etudeessai"
...


Au secours !

En vous remerciant
Bonne soirée
 
Re : désactiver un évenement

Bonjour marrek, Robert, le forum,

Pas trop regardé ce que fabrique votre 2ème macro, mais d'évidence pour qu'elle puisse fonctionner il faut écrire :

Code:
If ActiveWorkbook.[COLOR="Red"]Name[/COLOR] = "Etudeessai1[COLOR="Red"].xls[/COLOR]" Then

Par ailleurs dans votre 1ère macro les EnableEvents et le Kill ne servent à rien me semble-t-il, l'enregistrement d'une copie écrasant le fichier s'il existe et ne déclanchant pas d'évènement...

A+
 
Re : désactiver un évenement

Bonjour,
merci pour votre aide job 75 et Robert: problème résolu: c'était bien l'oubli de l'extension le problème!

En vous remerciant
M.

Résolu!
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…