Vous utilisez un navigateur obsolète. Il se peut que ce site ou d'autres sites Web ne s'affichent pas correctement. Vous devez le mettre à jour ou utiliser un navigateur alternatif.
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.
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...
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"
...
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...
Ce site utilise des cookies pour personnaliser le contenu, adapter votre expérience et vous garder connecté si vous vous enregistrez.
En continuant à utiliser ce site, vous consentez à notre utilisation de cookies.