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
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
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é ???
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
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é ???
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,
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
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,
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 !!!!
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
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 !!!!
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,
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,
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,