On Error Resume Next
Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With BG
.Caption = "Projet"
End With
etc ...
end sub
Ca marche bien.
Je lance ca à l'ouverture du classeur :
Private Sub Workbook_Open()
On Error Resume Next
Application.CommandBars(1).Controls("Projet").Delete
Call MenuGrilleBase
End Sub
Bon, le problème, c'est quand j'ouvre plusieurs classeurs, ca me met autant
de menu "Projet" que de classeur ouvert.
Bon, j'ai fini par faire ca :
On Error Resume Next
Application.CommandBars(1).Controls("Projet").Delete
mais c'est pas académique je trouve. Ca marche, mais j'ai peur que ca
finisse par planter un moment donné.
Y a pas moyen de faire un test s'il n'y a pas un menu "Projet" déja
existant. si Oui, alors, je lance pas la création d'un nouveau menu.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
isabelle
bonjour Ced,
Sub MenuGrilleBase() On Error Resume Next If IsError(Application.CommandBars("Projet")) Then Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) With BG .Caption = "Projet" End With End If End sub
isabelle
Ced a écrit :
Bonjour, j'ai créé un menu personalisé avec :
Sub MenuGrilleBase()
On Error Resume Next Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) With BG .Caption = "Projet" End With
etc ... end sub
Ca marche bien.
Je lance ca à l'ouverture du classeur :
Private Sub Workbook_Open()
On Error Resume Next Application.CommandBars(1).Controls("Projet").Delete
Call MenuGrilleBase
End Sub
Bon, le problème, c'est quand j'ouvre plusieurs classeurs, ca me met autant de menu "Projet" que de classeur ouvert. Bon, j'ai fini par faire ca : On Error Resume Next Application.CommandBars(1).Controls("Projet").Delete
mais c'est pas académique je trouve. Ca marche, mais j'ai peur que ca finisse par planter un moment donné. Y a pas moyen de faire un test s'il n'y a pas un menu "Projet" déja existant. si Oui, alors, je lance pas la création d'un nouveau menu.
Merci de vos réponses.
bonjour Ced,
Sub MenuGrilleBase()
On Error Resume Next
If IsError(Application.CommandBars("Projet")) Then
Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With BG
.Caption = "Projet"
End With
End If
End sub
isabelle
Ced a écrit :
Bonjour, j'ai créé un menu personalisé avec :
Sub MenuGrilleBase()
On Error Resume Next
Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True)
With BG
.Caption = "Projet"
End With
etc ...
end sub
Ca marche bien.
Je lance ca à l'ouverture du classeur :
Private Sub Workbook_Open()
On Error Resume Next
Application.CommandBars(1).Controls("Projet").Delete
Call MenuGrilleBase
End Sub
Bon, le problème, c'est quand j'ouvre plusieurs classeurs, ca me met autant
de menu "Projet" que de classeur ouvert.
Bon, j'ai fini par faire ca :
On Error Resume Next
Application.CommandBars(1).Controls("Projet").Delete
mais c'est pas académique je trouve. Ca marche, mais j'ai peur que ca
finisse par planter un moment donné.
Y a pas moyen de faire un test s'il n'y a pas un menu "Projet" déja
existant. si Oui, alors, je lance pas la création d'un nouveau menu.
Sub MenuGrilleBase() On Error Resume Next If IsError(Application.CommandBars("Projet")) Then Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) With BG .Caption = "Projet" End With End If End sub
isabelle
Ced a écrit :
Bonjour, j'ai créé un menu personalisé avec :
Sub MenuGrilleBase()
On Error Resume Next Set BG = Application.CommandBars(1).Controls.Add(msoControlPopup, , , , True) With BG .Caption = "Projet" End With
etc ... end sub
Ca marche bien.
Je lance ca à l'ouverture du classeur :
Private Sub Workbook_Open()
On Error Resume Next Application.CommandBars(1).Controls("Projet").Delete
Call MenuGrilleBase
End Sub
Bon, le problème, c'est quand j'ouvre plusieurs classeurs, ca me met autant de menu "Projet" que de classeur ouvert. Bon, j'ai fini par faire ca : On Error Resume Next Application.CommandBars(1).Controls("Projet").Delete
mais c'est pas académique je trouve. Ca marche, mais j'ai peur que ca finisse par planter un moment donné. Y a pas moyen de faire un test s'il n'y a pas un menu "Projet" déja existant. si Oui, alors, je lance pas la création d'un nouveau menu.