OVH Cloud OVH Cloud

VBA - supprimer le menu personnalisé

12 réponses
Avatar
twinley
Bonsoir,

Après de nombreux essais, j'ai créé un menu qui apparaît sous le nom de
MultiTrans.

Après encore plus de tentatives, le sparadrap est toujours là...
Impossible de l'enlever.

La sub ci-dessous m'envoi une err d'execution 5 : argumùent ou appel de
procedure incorrect.

Ce message arrive sur le ligne
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")


Sub Suppr_Menu()
Dim nomBarre As String
Dim NewMenu
nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub


Comment modifier cette sub pour supprimer le menu personnalisé ?

et aussi pour accélérer les tests à venir :
Comment supprimer le menu personnalisé manuellement ?

Et comment déclarer Dim NewMenu d'une meilleure façon que variant ?
Quand je sais pas, je laisse variant pour que ça tourne mais c'est pas
terrible.

Merci pour votre aide

--
à+twinley

2 réponses

1 2
Avatar
twinley
Après bien des années à courir l'Univers VBA... twinley, de ses petits
yeux rougis et de ses doigts qui ont trop saigné sur les claviers...
à enfin commis ce code avec l'aide d'anonymousA, Pounet et
l'incommensurable support de tout le forum (FS, FxM, Fauconnier avec
Google qui est votre ami ... qu'ils disent ! )

Création d'un menu Mois avec 4 sous-menus
Suppression du menu Mois

Sub CreateMenuMois()
Dim MenuMois As CommandBarPopup
On Error Resume Next
With Application.CommandBars(1)
Set MenuMois = .Controls.Add(Type:=msoControlPopup,
before:=.Controls.Count - 1)
End With
MenuMois.Caption = "Mois"
'Creation des sous-menus
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim1"
.OnAction = "Macro1"
End With
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim2"
.OnAction = "Macro2"
End With
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim3"
.OnAction = "Macro3"
End With
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim3"
.OnAction = "Macro4"
End With
End Sub

Sub Suppr_Menu2()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
With Application.CommandBars(1) ' (1) ou ("Worksheet Menu Bar")
Set MenuMois = .Controls(NomBarre)
If Not MenuMois Is Nothing Then .Controls(NomBarre).Delete
End With
End Sub

à+twinley

Bonsoir,

Après de nombreux essais, j'ai créé un menu qui apparaît sous le nom de
MultiTrans.

Après encore plus de tentatives, le sparadrap est toujours là...
Impossible de l'enlever.

La sub ci-dessous m'envoi une err d'execution 5 : argumùent ou appel de
procedure incorrect.

Ce message arrive sur le ligne
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")


Sub Suppr_Menu()
Dim nomBarre As String
Dim NewMenu
nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub


Comment modifier cette sub pour supprimer le menu personnalisé ?

et aussi pour accélérer les tests à venir :
Comment supprimer le menu personnalisé manuellement ?

Et comment déclarer Dim NewMenu d'une meilleure façon que variant ?
Quand je sais pas, je laisse variant pour que ça tourne mais c'est pas
terrible.

Merci pour votre aide



Avatar
twinley
et le Youki hein ?

oh lala, j'ai oublié de remercier Youki...

à+twinley


Après bien des années à courir l'Univers VBA... twinley, de ses petits
yeux rougis et de ses doigts qui ont trop saigné sur les claviers...
à enfin commis ce code avec l'aide d'anonymousA, Pounet et
l'incommensurable support de tout le forum (FS, FxM, Fauconnier avec
Google qui est votre ami ... qu'ils disent ! )

Création d'un menu Mois avec 4 sous-menus
Suppression du menu Mois

Sub CreateMenuMois()
Dim MenuMois As CommandBarPopup
On Error Resume Next
With Application.CommandBars(1)
Set MenuMois = .Controls.Add(Type:=msoControlPopup,
before:=.Controls.Count - 1)
End With
MenuMois.Caption = "Mois"
'Creation des sous-menus
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim1"
.OnAction = "Macro1"
End With
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim2"
.OnAction = "Macro2"
End With
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim3"
.OnAction = "Macro3"
End With
With MenuMois.Controls.Add(msoControlButton)
.Caption = "Trim3"
.OnAction = "Macro4"
End With
End Sub

Sub Suppr_Menu2()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
With Application.CommandBars(1) ' (1) ou ("Worksheet Menu Bar")
Set MenuMois = .Controls(NomBarre)
If Not MenuMois Is Nothing Then .Controls(NomBarre).Delete
End With
End Sub

à+twinley


Bonsoir,

Après de nombreux essais, j'ai créé un menu qui apparaît sous le nom
de MultiTrans.

Après encore plus de tentatives, le sparadrap est toujours là...
Impossible de l'enlever.

La sub ci-dessous m'envoi une err d'execution 5 : argumùent ou appel
de procedure incorrect.

Ce message arrive sur le ligne
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")


Sub Suppr_Menu()
Dim nomBarre As String
Dim NewMenu
nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars(nomBarre).Controls("Macros")
NewMenu.Delete
End Sub


Comment modifier cette sub pour supprimer le menu personnalisé ?

et aussi pour accélérer les tests à venir :
Comment supprimer le menu personnalisé manuellement ?

Et comment déclarer Dim NewMenu d'une meilleure façon que variant ?
Quand je sais pas, je laisse variant pour que ça tourne mais c'est pas
terrible.

Merci pour votre aide





1 2