If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand je
lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBarsIf .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche du
controle dont le tag est égal à ctag est infructueux, alors détruire le
conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas trouvé
et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand je
lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche du
controle dont le tag est égal à ctag est infructueux, alors détruire le
conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas trouvé
et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand je
lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBarsIf .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche du
controle dont le tag est égal à ctag est infructueux, alors détruire le
conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas trouvé
et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
.../...
tu as raison, c'est le test d'origine, mais comme je ne passais pas
dedans j'ai viré le Not, pour voir si l'action se faisait.
Mais je n'arrive pas à la faire tourner.
J'ai un autre code qui est plus compréhensible pour moi
Sub Suppr_Menu1()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
Set MenuMois = Application.CommandBars(NomBarre)
''''On Error GoTo 0
If Not MenuMois Is Nothing Then MenuMois.Delete
End Sub
Dans celui-là c'est set MenuMois qui ne s'initialise pas, il n'y a
jamais de valeur dedans.
Le On error GoTo 0 je ne vois pas à quoi ça sert, alors je l'écarte pour
l'instant.
Je n'arrive pas à mettre quelquechose dans Set MenuMois...
L'aide de commandbars donne un For Next pour enlever toutes les bars
mais il ne se passe rien non plus. J'en ai qu'une et elle s'accroche, je
vais la renommer "Morbach".
Pas facile ces menus...
Je met sous bâche pour ce soir. Bonne nuit et merci pour l'aide.
à+twinleyre,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand
je lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBarsIf .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche du
controle dont le tag est égal à ctag est infructueux, alors détruire
le conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas
trouvé et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
.../...
tu as raison, c'est le test d'origine, mais comme je ne passais pas
dedans j'ai viré le Not, pour voir si l'action se faisait.
Mais je n'arrive pas à la faire tourner.
J'ai un autre code qui est plus compréhensible pour moi
Sub Suppr_Menu1()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
Set MenuMois = Application.CommandBars(NomBarre)
''''On Error GoTo 0
If Not MenuMois Is Nothing Then MenuMois.Delete
End Sub
Dans celui-là c'est set MenuMois qui ne s'initialise pas, il n'y a
jamais de valeur dedans.
Le On error GoTo 0 je ne vois pas à quoi ça sert, alors je l'écarte pour
l'instant.
Je n'arrive pas à mettre quelquechose dans Set MenuMois...
L'aide de commandbars donne un For Next pour enlever toutes les bars
mais il ne se passe rien non plus. J'en ai qu'une et elle s'accroche, je
vais la renommer "Morbach".
Pas facile ces menus...
Je met sous bâche pour ce soir. Bonne nuit et merci pour l'aide.
à+twinley
re,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand
je lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche du
controle dont le tag est égal à ctag est infructueux, alors détruire
le conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas
trouvé et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
.../...
tu as raison, c'est le test d'origine, mais comme je ne passais pas
dedans j'ai viré le Not, pour voir si l'action se faisait.
Mais je n'arrive pas à la faire tourner.
J'ai un autre code qui est plus compréhensible pour moi
Sub Suppr_Menu1()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
Set MenuMois = Application.CommandBars(NomBarre)
''''On Error GoTo 0
If Not MenuMois Is Nothing Then MenuMois.Delete
End Sub
Dans celui-là c'est set MenuMois qui ne s'initialise pas, il n'y a
jamais de valeur dedans.
Le On error GoTo 0 je ne vois pas à quoi ça sert, alors je l'écarte pour
l'instant.
Je n'arrive pas à mettre quelquechose dans Set MenuMois...
L'aide de commandbars donne un For Next pour enlever toutes les bars
mais il ne se passe rien non plus. J'en ai qu'une et elle s'accroche, je
vais la renommer "Morbach".
Pas facile ces menus...
Je met sous bâche pour ce soir. Bonne nuit et merci pour l'aide.
à+twinleyre,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand
je lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBarsIf .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche du
controle dont le tag est égal à ctag est infructueux, alors détruire
le conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas
trouvé et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
je crois que pour tu comprennes mieux, il faut que tu reviennes au
modèle d'objet d'EXcel. Sous l'objet Application, il existe l'objet
Commandbars qui est une collection de commandbar( il y en a 94).
L'objet commandbars est hiérarchique de la collection
CommandbarControls collection contenant tous les controles ( il y en a a
peu près 1700) représentés par les objets commanbarControl dont les
types sont définies dans l'aide de VBA ( à la section
CommandBarcontrol)et par des objets CommandbarButton, CommandbarCombobox
et CommandbarPopup lorsqu'on veut utiliser des controles non
intégrés.Ceci dit les propriétes et méthodes des 3 controles précédents
sont les mêmes que cellles des objets commanbarControl.
En conséquence, quand tu veux créer ou supprimmer quelquechose, il faut
que ce quelque chose soit déterminé comme un objet d'une collection
auquel tu as fait référence dans ta déclaration de variable.
Donc écrire Dim MenuMois As CommandBarPopup et ensuite écrire Set
MenuMois = Application.CommandBars(NomBarre)n'a pas de sens car c'est
défnir comme un objet commanbar ce que tu as déclaré (NomBArre) comme un
commanbarPopup.
Ensuite si tu détruire quelquechose, soit tu veux atteindre un controle
donné et auquel cas il faudra te lu nommes ou que tu le recherches par
une boucle for dans l'ensemble des commanbars puis tu le détruiras ensuite,
soit tu cherches à virer toute une barre de commande et donc forcément
tous ses controles fils et il te faudra la nommer puis utiliser .delete
Je sais que c'est un peu ardu. Ceci dit, s'il y a un sujet régulièrement
traité et bien traité sur plein de sites sur Excel, c'est bien celui-là.
Allez, dodo, maintenant.
A+.../...
tu as raison, c'est le test d'origine, mais comme je ne passais pas
dedans j'ai viré le Not, pour voir si l'action se faisait.
Mais je n'arrive pas à la faire tourner.
J'ai un autre code qui est plus compréhensible pour moi
Sub Suppr_Menu1()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
Set MenuMois = Application.CommandBars(NomBarre)
''''On Error GoTo 0
If Not MenuMois Is Nothing Then MenuMois.Delete
End Sub
Dans celui-là c'est set MenuMois qui ne s'initialise pas, il n'y a
jamais de valeur dedans.
Le On error GoTo 0 je ne vois pas à quoi ça sert, alors je l'écarte
pour l'instant.
Je n'arrive pas à mettre quelquechose dans Set MenuMois...
L'aide de commandbars donne un For Next pour enlever toutes les bars
mais il ne se passe rien non plus. J'en ai qu'une et elle s'accroche,
je vais la renommer "Morbach".
Pas facile ces menus...
Je met sous bâche pour ce soir. Bonne nuit et merci pour l'aide.
à+twinleyre,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand
je lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBarsIf .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche
du controle dont le tag est égal à ctag est infructueux, alors
détruire le conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas
trouvé et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
je crois que pour tu comprennes mieux, il faut que tu reviennes au
modèle d'objet d'EXcel. Sous l'objet Application, il existe l'objet
Commandbars qui est une collection de commandbar( il y en a 94).
L'objet commandbars est hiérarchique de la collection
CommandbarControls collection contenant tous les controles ( il y en a a
peu près 1700) représentés par les objets commanbarControl dont les
types sont définies dans l'aide de VBA ( à la section
CommandBarcontrol)et par des objets CommandbarButton, CommandbarCombobox
et CommandbarPopup lorsqu'on veut utiliser des controles non
intégrés.Ceci dit les propriétes et méthodes des 3 controles précédents
sont les mêmes que cellles des objets commanbarControl.
En conséquence, quand tu veux créer ou supprimmer quelquechose, il faut
que ce quelque chose soit déterminé comme un objet d'une collection
auquel tu as fait référence dans ta déclaration de variable.
Donc écrire Dim MenuMois As CommandBarPopup et ensuite écrire Set
MenuMois = Application.CommandBars(NomBarre)n'a pas de sens car c'est
défnir comme un objet commanbar ce que tu as déclaré (NomBArre) comme un
commanbarPopup.
Ensuite si tu détruire quelquechose, soit tu veux atteindre un controle
donné et auquel cas il faudra te lu nommes ou que tu le recherches par
une boucle for dans l'ensemble des commanbars puis tu le détruiras ensuite,
soit tu cherches à virer toute une barre de commande et donc forcément
tous ses controles fils et il te faudra la nommer puis utiliser .delete
Je sais que c'est un peu ardu. Ceci dit, s'il y a un sujet régulièrement
traité et bien traité sur plein de sites sur Excel, c'est bien celui-là.
Allez, dodo, maintenant.
A+
.../...
tu as raison, c'est le test d'origine, mais comme je ne passais pas
dedans j'ai viré le Not, pour voir si l'action se faisait.
Mais je n'arrive pas à la faire tourner.
J'ai un autre code qui est plus compréhensible pour moi
Sub Suppr_Menu1()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
Set MenuMois = Application.CommandBars(NomBarre)
''''On Error GoTo 0
If Not MenuMois Is Nothing Then MenuMois.Delete
End Sub
Dans celui-là c'est set MenuMois qui ne s'initialise pas, il n'y a
jamais de valeur dedans.
Le On error GoTo 0 je ne vois pas à quoi ça sert, alors je l'écarte
pour l'instant.
Je n'arrive pas à mettre quelquechose dans Set MenuMois...
L'aide de commandbars donne un For Next pour enlever toutes les bars
mais il ne se passe rien non plus. J'en ai qu'une et elle s'accroche,
je vais la renommer "Morbach".
Pas facile ces menus...
Je met sous bâche pour ce soir. Bonne nuit et merci pour l'aide.
à+twinley
re,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand
je lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche
du controle dont le tag est égal à ctag est infructueux, alors
détruire le conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas
trouvé et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
je crois que pour tu comprennes mieux, il faut que tu reviennes au
modèle d'objet d'EXcel. Sous l'objet Application, il existe l'objet
Commandbars qui est une collection de commandbar( il y en a 94).
L'objet commandbars est hiérarchique de la collection
CommandbarControls collection contenant tous les controles ( il y en a a
peu près 1700) représentés par les objets commanbarControl dont les
types sont définies dans l'aide de VBA ( à la section
CommandBarcontrol)et par des objets CommandbarButton, CommandbarCombobox
et CommandbarPopup lorsqu'on veut utiliser des controles non
intégrés.Ceci dit les propriétes et méthodes des 3 controles précédents
sont les mêmes que cellles des objets commanbarControl.
En conséquence, quand tu veux créer ou supprimmer quelquechose, il faut
que ce quelque chose soit déterminé comme un objet d'une collection
auquel tu as fait référence dans ta déclaration de variable.
Donc écrire Dim MenuMois As CommandBarPopup et ensuite écrire Set
MenuMois = Application.CommandBars(NomBarre)n'a pas de sens car c'est
défnir comme un objet commanbar ce que tu as déclaré (NomBArre) comme un
commanbarPopup.
Ensuite si tu détruire quelquechose, soit tu veux atteindre un controle
donné et auquel cas il faudra te lu nommes ou que tu le recherches par
une boucle for dans l'ensemble des commanbars puis tu le détruiras ensuite,
soit tu cherches à virer toute une barre de commande et donc forcément
tous ses controles fils et il te faudra la nommer puis utiliser .delete
Je sais que c'est un peu ardu. Ceci dit, s'il y a un sujet régulièrement
traité et bien traité sur plein de sites sur Excel, c'est bien celui-là.
Allez, dodo, maintenant.
A+.../...
tu as raison, c'est le test d'origine, mais comme je ne passais pas
dedans j'ai viré le Not, pour voir si l'action se faisait.
Mais je n'arrive pas à la faire tourner.
J'ai un autre code qui est plus compréhensible pour moi
Sub Suppr_Menu1()
Dim NomBarre$, MenuMois As CommandBarPopup
NomBarre = "Mois"
On Error Resume Next
Set MenuMois = Application.CommandBars(NomBarre)
''''On Error GoTo 0
If Not MenuMois Is Nothing Then MenuMois.Delete
End Sub
Dans celui-là c'est set MenuMois qui ne s'initialise pas, il n'y a
jamais de valeur dedans.
Le On error GoTo 0 je ne vois pas à quoi ça sert, alors je l'écarte
pour l'instant.
Je n'arrive pas à mettre quelquechose dans Set MenuMois...
L'aide de commandbars donne un For Next pour enlever toutes les bars
mais il ne se passe rien non plus. J'en ai qu'une et elle s'accroche,
je vais la renommer "Morbach".
Pas facile ces menus...
Je met sous bâche pour ce soir. Bonne nuit et merci pour l'aide.
à+twinleyre,
je n'ai jamais essayé la recherche par le critère tag. Ceci dit quand
je lis ton code il me semble qu'il y a une incohérence.
With Application.CommandBarsIf .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
moi, je comprends le code comme ça : si le résultat de la recherche
du controle dont le tag est égal à ctag est infructueux, alors
détruire le conrole en question.
Mais comment Excel pourrait-il détruire un controle qu'il n'a pas
trouvé et donc qui n'existe pas ?
Par contre si on écrit
If not .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
alors là ca parait plus logique.
Qu'en penses-tu ?
A+
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
Bonsoir à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
Bravo twinley ;-))
Par pur sadisme, une façon bien + simple de supprimer le menu :
Cub SuppMenu()
On Error Resume Next
Application.CommandBars(1).Controls("Mois").Delete
End Sub
A partir du moment où tu mets en place la gestion d'erreur (On Error
Resume Next), le test "If Not Menu Is Nothing ..." est superflu.
Une remarque également : ne serait-il pas + logique d'appeler le menu
"Trim" ou "Trimestre" ?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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
Bravo twinley ;-))
Par pur sadisme, une façon bien + simple de supprimer le menu :
Cub SuppMenu()
On Error Resume Next
Application.CommandBars(1).Controls("Mois").Delete
End Sub
A partir du moment où tu mets en place la gestion d'erreur (On Error
Resume Next), le test "If Not Menu Is Nothing ..." est superflu.
Une remarque également : ne serait-il pas + logique d'appeler le menu
"Trim" ou "Trimestre" ?
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
Bravo twinley ;-))
Par pur sadisme, une façon bien + simple de supprimer le menu :
Cub SuppMenu()
On Error Resume Next
Application.CommandBars(1).Controls("Mois").Delete
End Sub
A partir du moment où tu mets en place la gestion d'erreur (On Error
Resume Next), le test "If Not Menu Is Nothing ..." est superflu.
Une remarque également : ne serait-il pas + logique d'appeler le menu
"Trim" ou "Trimestre" ?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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors
que celui-ci c'est CommandBarPopup. Je remettrai la somlution dans
l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
content de voir que tu es arrivé au bout.
A+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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
content de voir que tu es arrivé au bout.
A+
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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !
re,
content de voir que tu es arrivé au bout.
A+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 à tous,
J'y suis presque grâce à anonymousA et Pounet.
Je reprend un nouveau fil car l'autre était orienté CommandBar alors que
celui-ci c'est CommandBarPopup. Je remettrai la somlution dans l'autre fil.
Il suffit de glisser -lacher pour l'enlever mais en VBA, je coince.
J'ai une err 91 qui traine lorsque je veux enlever le menu Mois,
sur la ligne : .FindControl(Tag:=cTag).Delete
Voici tout le code qui est dans un module standart
Option Explicit
Const cTag As String = "Mois"
Sub CreerMenuMois()
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 SupprimerMenuMois()
With Application.CommandBars
If .FindControl(Tag:=cTag) Is Nothing Then
.FindControl(Tag:=cTag).Delete
End If
End With
End Sub
Merci à toute âme charitable qui me supprimera cette err 91 !