Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

CommandBars sur feuille type Graph

4 réponses
Avatar
tattoo94
ReBonjour,

Tant que j'y suis j'ai une autre question...

J'ai un petit code, voir ci-dessous, pour la création d'un CommandBars.
Ca fonctionne très bien sur des feuilles 'normale' mais si je passe sur une feuille de type 'Graphique' (en fait un Graph Pivot Table) mon menu n'apparait pas.

J'ai déjà testé d'autre méthode d'ajout de menu mais sans succès, une petie idée ?

Une fois de plus un grand merci d'avance,

Private Sub Workbook_Activate()

On Error Resume Next 'Evite l'erreur si le menu existe déjà
Application.CommandBars(1).Controls("Forecast Hotel").Delete

'Créer et ajouter un Menu perso.
With Application.CommandBars(1).Controls.Add(msoControlPopup, , , 10)
.Caption = "Forecast Hotel"

With .Controls.Add(msoControlButton)
.Caption = "Send File" 'Nom du bouton, légende
.FaceId = 24 'Logo
.OnAction = "EnvoiFichier" 'Action,(active la macro SendMail)
.BeginGroup = False 'Défini un groupe via True/False, si True il y aura une ligne.
End With

With .Controls.Add(msoControlButton)
.Caption = "Question"
.FaceId = 49
.OnAction = "AfficheDetailsFred"
.BeginGroup = True
End With

End With

End Sub

4 réponses

Avatar
FFO
Salut à toi

Je viens de tester ton code
Effectivement avec une feuille ayant un graphe si celui-ci est selectionné
le menu n'apparait pas
Maintenant il suffit de ne pas sélectionner le graphe pour qu'il réapparaisse

As tu essayé ???
Avatar
tattoo94
FFO a écrit le 31/10/2008 à 11h55 :
Salut à toi

Je viens de tester ton code
Effectivement avec une feuille ayant un graphe si celui-ci est
selectionné
le menu n'apparait pas
Maintenant il suffit de ne pas sélectionner le graphe pour qu'il
réapparaisse

As tu essayé ???


Salut,

Merci pour le test mais je crois qu'il y a un malentendu.

En effet, si le graph est dans une feuille de calcul et qu'il est sélectionné, la barre de menu n'apparait pas, l'astuce est que mon graph est une feuille de type Graph (et pas worksheet), j'ai donc tenté une macro qui 'désélectionne' la graph mais ça fonctionne pas.
J'ai aussi chercher d'autres codes mais là aussi, rien

Une autre idée ?

Encore merci,
Avatar
FFO
Rebonjour à toi
Effectivement avec une feuille de type Graph ton menu sur la 1° barre
rechigne à apparaitre
Par contre si tu le mets sur la barre d'affichage ( celle qui possède
notamment les icones "Enregistrer", "Copier", "Coller" etc...) tu n'as plus
cette inconvénient il reste présent quelque soit le type de feuille

Pour celà tu dois utiliser le numéro 3 de l'instruction CommandBars ainsi :

On Error Resume Next 'Evite l'erreur si le menu existe déjà
Application.CommandBars(3).Controls("Forecast Hotel").Delete

'Créer et ajouter un Menu perso.
With Application.CommandBars(3).Controls.Add(msoControlPopup, , , 10)
.Caption = "Forecast Hotel"
With .Controls.Add(msoControlButton)
.Caption = "Send File" 'Nom du bouton, légende
.FaceId = 24 'Logo
.OnAction = "EnvoiFichier" 'Action,(active la macro SendMail)
.BeginGroup = False 'Défini un groupe via True/False, si True il y aura une
ligne.
End With

With .Controls.Add(msoControlButton)
.Caption = "Question"
.FaceId = 49
.OnAction = "AfficheDetailsFred"
.BeginGroup = True
End With

End With

Celà devrait te convenir

Dis Moi !!!!
Avatar
tattoo94
FFO a écrit le 31/10/2008 à 13h37 :
Rebonjour à toi
Effectivement avec une feuille de type Graph ton menu sur la 1° barre
rechigne à apparaitre
Par contre si tu le mets sur la barre d'affichage ( celle qui possède
notamment les icones "Enregistrer", "Copier",
"Coller" etc...) tu n'as plus
cette inconvénient il reste présent quelque soit le type de
feuille

Pour celà tu dois utiliser le numéro 3 de l'instruction
CommandBars ainsi :

On Error Resume Next 'Evite l'erreur si le menu existe déjà
Application.CommandBars(3).Controls("Forecast Hotel").Delete

'Créer et ajouter un Menu perso.
With Application.CommandBars(3).Controls.Add(msoControlPopup, , , 10)
.Caption = "Forecast Hotel"
With .Controls.Add(msoControlButton)
.Caption = "Send File" 'Nom du bouton, légende
.FaceId = 24 'Logo
.OnAction = "EnvoiFichier" 'Action,(active la macro SendMail)
.BeginGroup = False 'Défini un groupe via True/False, si True il y aura
une
ligne.
End With

With .Controls.Add(msoControlButton)
.Caption = "Question"
.FaceId = 49
.OnAction = "AfficheDetailsFred"
.BeginGroup = True
End With

End With

Celà devrait te convenir

Dis Moi !!!!


Merci,

C'est en effet une alternative à laquelle je n'avais pas pensé, c'est un peu moins cool mais au moins ça fonctionne,

Encore merci,