VBA excel : Menu personnalisé et fermeture de classeurs
Bonjour,
Je développe actuellement une application qui crée un menu personnalisé lors de son ouverture et le supprime lors de sa fermeture.
Mais, je suis parfois amené à en ouvrir plusieurs qui utilisent le même menu.
Donc, lors de l'ouverture, je le supprime tout le temps (le menu personnalisé) et le recrée à l'identique et lors de la fermeture.
J'aimerai tester s'il existe, dans les autres classeurs ouverts ce fameux menu personnalisé et, donc, ne pas le supprimer si c'est le cas (voir plutôt le cacher) et le supprimer sinon...
Pour ce faire, j'utilise ce code dans Thisworkbook avec le déclencheur Workbook_BeforeClose (mon menu se nomme "Miodos" et se place juste avant le menu d'aide):
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| Private Sub Workbook_BeforeClose(Cancel As Boolean)
'il faut tester si dans les autres classeurs ouvert il existe un objet Miodos dans le menu
Dim MiodosExiste As Boolean
MiodosExiste = False
For Each w In Workbooks
Dim cb As CommandBarPopup
For Each cb In w.CommandBars(1)
If UCase(cb.Caption) = UCase("Miodos") Then
MiodosExiste = True
End If
Next cb
Next w
'si il y en a un, on ne fait rien sinon on 'efface
If Not MiodosExiste Then
Call Menu.EffacerMenu
End If
ThisWorkbook.Save
End Sub |
Mais, lors de son execution, à la ligne "For Each cb In w.CommandBars(1)", il me met "objet requis".
Pouvez-vous me trouver une solution? ou une piste de résolution du problème?
Merci d'avance ;-p