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

10 réponses

1 2
Avatar
anonymousA
bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de commandes qui
est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais pour
t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d'outils , selectionner la nouvelle barre d'outils puis cliquer sur
Supprimer.


A+

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
Pounet95
Bonsoir Twinley,
Pourquoi affectes tu ta barre de menu à NewMenu alors que c'est pour la
détruire ?
Je suppose que cette affectation a déjà été effectuée à la création, et,
AMHA, pour la détruire
quelque chose du genre

Application.CommandBars(nombarre).Delete devrait suffire?

Me trompe-je ?

--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)

"twinley" a écrit dans le message de news:

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


Avatar
twinley
Bonsoir à tous, bonsoir anonumousA, bonsoir Pounet

J'ai essayé vos codes à tous les deux et j'ai la même erreur 5.

J'ai créé ce menu avec le code ci dessous.
Attention j'ai l'impression qu'il crée des pbs car je ne vois pas le
menu dans les outils pour le supprimer manuellement.
J'avais cherché avant de poser la question et anonymous m'a bien indiqué
l'endroit, mais il n'y a rien.

D'autre part, je n'avais pas porté attention aux menus et sous-menus.
L'anonymous pédagogie a forcé mon attention sur ce point , donc j'ai
tenté de supprimer les sous menus Trim1 et Trim2 avant, mais j'ai
toujours err5.

Voici le poison :

Sub CreateTransMenu()
Dim TransMenu As CommandBarPopup

On Error Resume Next

With Application.CommandBars(1)
Set TransMenu = .Controls.Add(Type:=msoControlPopup,
before:=.Controls.Count - 1)
End With

TransMenu.Caption = "MultiTrans"

'Creation des sous-menus
With TransMenu.Controls.Add(msoControlButton)
.Caption = "Trim1"

.OnAction = "ScanningExcel"
End With

With TransMenu.Controls.Add(msoControlButton)
.Caption = "Trim2"

.OnAction = "MiseEnForme"
End With
End Sub

Ya comme un lézard !

à+twinley

Bonsoir Twinley,
Pourquoi affectes tu ta barre de menu à NewMenu alors que c'est pour la
détruire ?
Je suppose que cette affectation a déjà été effectuée à la création, et,
AMHA, pour la détruire
quelque chose du genre

Application.CommandBars(nombarre).Delete devrait suffire?

Me trompe-je ?



Avatar
twinley
Bsr anonymous,

Pour réviser il faut déjà avoir visé.
Je suis en train de me faire les griffes.
Je n'avais pas fait le distingo entre menu et sous-menu au niveau du
code. Vu mais pas retenu pour être plus précis.

Encore err5, j'ai mis un texte sous le post de Pounet.

à+twinley

bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de commandes qui
est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais pour
t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d'outils , selectionner la nouvelle barre d'outils puis cliquer sur
Supprimer.


A+


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
Je viens te tester tes deux sub en création et suppression. Rien.
Je dois avoir un truc déactivé ou bien qui inhibe...
C'est pas possible que ton code ne passe pas.

à+twinley

bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de commandes qui
est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais pour
t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d'outils , selectionner la nouvelle barre d'outils puis cliquer sur
Supprimer.


A+


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
Houps, c'est bon, ton code crée bien une bar qu'il faut cocher dans
afficheg menu perso. C'est parfait, toute mes excuses, je pensait qu'il
allait s'afficher directement comme MultiTrans.
C'est déjà une bonne chose.

à+twinley


Je viens te tester tes deux sub en création et suppression. Rien.
Je dois avoir un truc déactivé ou bien qui inhibe...
C'est pas possible que ton code ne passe pas.

à+twinley


bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de commandes
qui est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais pour
t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d'outils , selectionner la nouvelle barre d'outils puis cliquer sur
Supprimer.


A+


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
Excellent et je peut supprimer la commandbarre. Parfait pour ton code.
Toutefois l'ennui c'est que c'est une barre supplémentaire qu'il faut
déplacer et qui s'insère mal dans la présentation car elle crée une
ligne supplémentaire.
J'aurais préféré l'ajout d'un menu au même niveau que le ? de l'aide.
Mais à défaut c'est déjà pas mal.

Reste à supprimer MultiTran. Je viens de trouver. Grâce à tes
explications, j'ai en réalité créé par VBA une entrée dans l'onglet
Commandes, il suffisait de faire un glisser-lacher pour l'enlever
manuellement. OUF.

Je poursuit mes recherches car je n'arrive pas à faire ce que je veux.
En tout cas merci pour l'éclairage.

à+twinley

Houps, c'est bon, ton code crée bien une bar qu'il faut cocher dans
afficheg menu perso. C'est parfait, toute mes excuses, je pensait qu'il
allait s'afficher directement comme MultiTrans.
C'est déjà une bonne chose.

à+twinley



Je viens te tester tes deux sub en création et suppression. Rien.
Je dois avoir un truc déactivé ou bien qui inhibe...
C'est pas possible que ton code ne passe pas.

à+twinley


bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de commandes
qui est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais
pour t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d'outils , selectionner la nouvelle barre d'outils puis cliquer sur
Supprimer.


A+


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
Bon j'avance : création d'un menu et des sous menus OK ( en style Commandes)

suppression manuelle du menu OK

suppression du menu par VBA ...in progress


à+twinley

Excellent et je peut supprimer la commandbarre. Parfait pour ton code.
Toutefois l'ennui c'est que c'est une barre supplémentaire qu'il faut
déplacer et qui s'insère mal dans la présentation car elle crée une
ligne supplémentaire.
J'aurais préféré l'ajout d'un menu au même niveau que le ? de l'aide.
Mais à défaut c'est déjà pas mal.

Reste à supprimer MultiTran. Je viens de trouver. Grâce à tes
explications, j'ai en réalité créé par VBA une entrée dans l'onglet
Commandes, il suffisait de faire un glisser-lacher pour l'enlever
manuellement. OUF.

Je poursuit mes recherches car je n'arrive pas à faire ce que je veux.
En tout cas merci pour l'éclairage.

à+twinley


Houps, c'est bon, ton code crée bien une bar qu'il faut cocher dans
afficheg menu perso. C'est parfait, toute mes excuses, je pensait
qu'il allait s'afficher directement comme MultiTrans.
C'est déjà une bonne chose.

à+twinley



Je viens te tester tes deux sub en création et suppression. Rien.
Je dois avoir un truc déactivé ou bien qui inhibe...
C'est pas possible que ton code ne passe pas.

à+twinley


bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de commandes
qui est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière
suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais
pour t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet Barre
d'outils , selectionner la nouvelle barre d'outils puis cliquer sur
Supprimer.


A+


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
anonymousA
re,

super twinley. Ce qui me plait avec les gens comme toi, c'est que tu
cherches d'abord avant de poser des questions.
Pense que tu es sur la voie royale de la compréhension totale.
Si tu as besoin quand même , n'hésites pas.

A+


Bon j'avance : création d'un menu et des sous menus OK ( en style
Commandes)

suppression manuelle du menu OK

suppression du menu par VBA ...in progress


à+twinley


Excellent et je peut supprimer la commandbarre. Parfait pour ton code.
Toutefois l'ennui c'est que c'est une barre supplémentaire qu'il faut
déplacer et qui s'insère mal dans la présentation car elle crée une
ligne supplémentaire.
J'aurais préféré l'ajout d'un menu au même niveau que le ? de l'aide.
Mais à défaut c'est déjà pas mal.

Reste à supprimer MultiTran. Je viens de trouver. Grâce à tes
explications, j'ai en réalité créé par VBA une entrée dans l'onglet
Commandes, il suffisait de faire un glisser-lacher pour l'enlever
manuellement. OUF.

Je poursuit mes recherches car je n'arrive pas à faire ce que je veux.
En tout cas merci pour l'éclairage.

à+twinley


Houps, c'est bon, ton code crée bien une bar qu'il faut cocher dans
afficheg menu perso. C'est parfait, toute mes excuses, je pensait
qu'il allait s'afficher directement comme MultiTrans.
C'est déjà une bonne chose.

à+twinley



Je viens te tester tes deux sub en création et suppression. Rien.
Je dois avoir un truc déactivé ou bien qui inhibe...
C'est pas possible que ton code ne passe pas.

à+twinley


bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de
commandes qui est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière
suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est un
commandbar button autrement faut changer de type de variable mais
pour t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet
Barre d'outils , selectionner la nouvelle barre d'outils puis
cliquer sur Supprimer.


A+


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
Merci pour tes encouragements. J'ai encore une err91 que je viens de
poster sur un autre fil "commandbarpopup" et je completerais ce fil avec
la soluce. Là je bloque.

à+twinley

re,

super twinley. Ce qui me plait avec les gens comme toi, c'est que tu
cherches d'abord avant de poser des questions.
Pense que tu es sur la voie royale de la compréhension totale.
Si tu as besoin quand même , n'hésites pas.

A+



Bon j'avance : création d'un menu et des sous menus OK ( en style
Commandes)

suppression manuelle du menu OK

suppression du menu par VBA ...in progress


à+twinley


Excellent et je peut supprimer la commandbarre. Parfait pour ton code.
Toutefois l'ennui c'est que c'est une barre supplémentaire qu'il faut
déplacer et qui s'insère mal dans la présentation car elle crée une
ligne supplémentaire.
J'aurais préféré l'ajout d'un menu au même niveau que le ? de l'aide.
Mais à défaut c'est déjà pas mal.

Reste à supprimer MultiTran. Je viens de trouver. Grâce à tes
explications, j'ai en réalité créé par VBA une entrée dans l'onglet
Commandes, il suffisait de faire un glisser-lacher pour l'enlever
manuellement. OUF.

Je poursuit mes recherches car je n'arrive pas à faire ce que je veux.
En tout cas merci pour l'éclairage.

à+twinley


Houps, c'est bon, ton code crée bien une bar qu'il faut cocher dans
afficheg menu perso. C'est parfait, toute mes excuses, je pensait
qu'il allait s'afficher directement comme MultiTrans.
C'est déjà une bonne chose.

à+twinley



Je viens te tester tes deux sub en création et suppression. Rien.
Je dois avoir un truc déactivé ou bien qui inhibe...
C'est pas possible que ton code ne passe pas.

à+twinley


bonsoir twinley,

il faut que tu révises sur les barres d'outils. En effet,
Application.CommandBars(nomBarre).Controls("Macros").Delete et
Application.CommandBars(nomBarre).Delete sont 2 choses différentes.
Dans le 1er cas , tu ne supprimes que le controle mais la barre de
commandes reste. Dans le 2eme cas, c'est toute la barre de
commandes qui est supprimée
Enfin, la déclaration de varaiables peut s'écrire de la manière
suivante

Sub mettre_Menu()

Dim nomBarre As String
Dim NewMenu As CommandBar, newctrl As CommandBarButton (si c'est
un commandbar button autrement faut changer de type de variable
mais pour t'aider Intellisense est là pour ça)

nomBarre = "MultiTrans"
Set NewMenu = Application.CommandBars.Add
With NewMenu
.Name = nomBarre
Set newctrl = .Controls.Add
With newctrl
.Caption = "Macros"
End With
End With

End Sub

pour supprimer

Sub Suppr_Menu()

Dim nomBarre As String


nomBarre = "MultiTrans"
'Application.CommandBars(nomBarre).Controls("Macros").Delete
'ou selon ce que tu veux faire l'une ou l'autre des suppressions
'Application.CommandBars(nomBarre).Delete

End Sub

Quand à supprimer manuellement la barre de menus, il faut faire
Affichage/barre d'outils/Personnaliser puis aller sur l'onglet
Barre d'outils , selectionner la nouvelle barre d'outils puis
cliquer sur Supprimer.


A+


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