On error ne marche pas toujours ?

SHA

XLDnaute Nouveau
Bonjour,

En quittant le classeur je veux supprimer un point de menu que mon appli ajoute :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("M&on menu Contextuel...").Delete
End Sub

Si en cours d'utilisation l'utilisateur a supprimé manuellement ce point de menu la macro plante en ignorant le On Error... :confused:

D'où peut venir le problème ?

Merci de votre aide,

JJ
 

Jacques87

XLDnaute Accro
Re : On error ne marche pas toujours ?

Bonjour JJ,

Tu utilises : "On error Resume Next"
De ce fait ton erreur n'est pas analysée et ton code se poursuit par la ligne qui suit immédiatemment l'erreur, donc dans ton cas "End Sub"

Pour analyser l'erreur il te faudrait écrire :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume GoTo erreur

Application.CommandBars("Cell").Controls("M&on menu Contextuel...").Delete
erreur :
MsgBox("Qui vous a permis de supprimer mon bouton dans le Menu ?")
End Sub


Bonne journée
 

Luki

XLDnaute Accro
Re : On error ne marche pas toujours ?

bonjour Sha,Jacques,

j'ai fait un essai chez, moi, pas de problèmes....

Est-tu sûr que le plantage vient de cette macro?

Jacques, c'est vrai que l'erreur est ignorée, mais de fait ne devrait pas faire planter puisue, justement, l'instuction suivante est End Sub.

A moins que le code que nous montre Sha soit en réalité plus long...

Sha, Faudrait voir avec le reste du fichier à mon avis.

A+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : On error ne marche pas toujours ?

Bonjour

Tu as peut-être déjà une gestion d'erreur de lancer avant par un autre module.

essaies ainsi voir

Private Sub Workbook_BeforeClose(Cancel As Boolean)
on error goto 0
On Error Resume Next
Application.CommandBars("Cell").Controls("M&on menu Contextuel...").Delete
End Sub
 

Jacques87

XLDnaute Accro
Re : On error ne marche pas toujours ?

Bonjour Lucki

Quand Sha dit : "la macro plante en ignorant le On Error."

Je ne l'avais pas bien compris, il me semblait que par plantage il voulait dire non fonctionnement
Autant pour moi
Sinon il est vrai qu'il faudrait voir la totalité de son code

Bonne journée


Oups Pascal, pas vu
 

myDearFriend!

XLDnaute Barbatruc
Re : On error ne marche pas toujours ?

Bonjour SHA, Jacques87, Luki, Pascal76,

Normalement :
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.CommandBars("Cell").Controls("M&on menu Contextuel...").Delete
End Sub

devrait fonctionner sans problème...

SHA, vérifie cependant les options dans ton éditeur VBE :
menu Outils / Options / onglet Général, dans le cadre "Récupération d'erreurs", l'option activée par défaut est "Arrêt sur les erreurs non gérées".

Cordialement,
 

Discussions similaires

Statistiques des forums

Discussions
312 497
Messages
2 088 994
Membres
104 000
dernier inscrit
dinelcia