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):
Mais, lors de son execution, à la ligne "For Each cb In w.CommandBars(1)", il me met "objet requis".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Pouvez-vous me trouver une solution? ou une piste de résolution du problème?
Merci d'avance ;-p
Partager