Icone sous-menu VB | Excel
Résolu
Harry
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
Je veux créer un menu supplémentaire et un sous menu dans la barre Excel quand je lance un fichier, avec le code VB suivant :
Set niveau_menu = Application.CommandBars("Worksheet Menu Bar").FindControl(Type:=msoControlPopup, Tag:="niveau_menu")
If niveau_menu Is Nothing Then
' création du bouton sur la barre de menu
Set niveau_menu = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, temporary:=True) '
niveau_menu.Caption = "&Users AVT"
niveau_menu.Tag = "Niveau_menu"
Set sous_menu1 = niveau_menu.Controls.Add(Type:=msoControlButton, ID:=548, temporary:=True)
sous_menu1.Caption = "&Ajouter un utilisateur"
sous_menu1.OnAction = "parametre1"
avec ce code ça marche, le problème est que je veux mettre une petite icône à côté du libellé du sous menu, cette icône est désigné par un nombre prédéfini dans VB apparemment...
L'icône qui correspond au nombre 548 s'affiche, mais quand je décide de changer l'ID pour afficher une autre image, par exemple 27, ça bugue et j'ai l'erreur suivante :
Erreur d'exécution '-2147467259 (80004005)':
Erreur Automation
Erreur non spécifiée
voilà je comprends pas du tout pourquoi certaines images s'affichent et d'autres font planter...
Je veux créer un menu supplémentaire et un sous menu dans la barre Excel quand je lance un fichier, avec le code VB suivant :
Set niveau_menu = Application.CommandBars("Worksheet Menu Bar").FindControl(Type:=msoControlPopup, Tag:="niveau_menu")
If niveau_menu Is Nothing Then
' création du bouton sur la barre de menu
Set niveau_menu = Application.CommandBars("Worksheet Menu Bar").Controls.Add(Type:=msoControlPopup, temporary:=True) '
niveau_menu.Caption = "&Users AVT"
niveau_menu.Tag = "Niveau_menu"
Set sous_menu1 = niveau_menu.Controls.Add(Type:=msoControlButton, ID:=548, temporary:=True)
sous_menu1.Caption = "&Ajouter un utilisateur"
sous_menu1.OnAction = "parametre1"
avec ce code ça marche, le problème est que je veux mettre une petite icône à côté du libellé du sous menu, cette icône est désigné par un nombre prédéfini dans VB apparemment...
L'icône qui correspond au nombre 548 s'affiche, mais quand je décide de changer l'ID pour afficher une autre image, par exemple 27, ça bugue et j'ai l'erreur suivante :
Erreur d'exécution '-2147467259 (80004005)':
Erreur Automation
Erreur non spécifiée
voilà je comprends pas du tout pourquoi certaines images s'affichent et d'autres font planter...
A voir également:
- Icone sous-menu VB | Excel
- Menu déroulant excel - Guide
- Word et excel gratuit - Guide
- Icone - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
4 réponses
Bonjour,
Voici un exemple type de la création du menu dynamique sous Excel avec ces icons dont vous parlé !
donc c'est l'instruction : [ .FaceId = 2579 ] qui définit l'icone.
À l'aide du classeur suivant :
http://membre.oricom.ca/lupin/documents/barreoutils.xls
La nouvelle barre d'outils créé permet de visualiser 20 X 20 barres d'outils avec tous les icones
disponible. En déplaçant la souris audessus d'un icone, le [ FaceId ] apparait dans un info-bulle.
Lupin.
Voici un exemple type de la création du menu dynamique sous Excel avec ces icons dont vous parlé !
Function AjoutBarreMenu() As Boolean ' Dim Texte As String Dim I As Integer Dim Flag As Boolean Dim BarreMenu, MaBarre, MonItem As Object On Error GoTo Err_Barre Flag = SupprimeMenu Flag = False 'Création de la barre de menu Set BarreMenu = Application.CommandBars.ActiveMenuBar Set MaBarre = BarreMenu.Controls.Add(Type:=msoControlPopup, temporary:=True) MaBarre.Caption = "Automatisme" 'Insère menu Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Ouvrir sans VBA" .OnAction = "OuvrirSansVBA" .FaceId = 2579 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "VB Editeur" .OnAction = "VBEditeur" .FaceId = 66 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Active Évènement" .OnAction = "ActiveEvenement" .FaceId = 66 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Désactive Évènement" .OnAction = "DesactiveEvenement" .FaceId = 66 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Trier les onglets par noms" .OnAction = "A_FonctionsPerso.TrierOnglets" .FaceId = 1000 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Produit la liste des Menus" .OnAction = "ListeMenus" .FaceId = 212 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Produit la liste des Barres" .OnAction = "ListeBarres" .FaceId = 642 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Efface les cellules de la feuille" .OnAction = "EffaceCellulePage" .FaceId = 635 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Personnalisé la barre de titre d'Excel" .OnAction = "RenommeExcel" .FaceId = 222 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Test si le presse-papier est vide" .OnAction = "TestContenuPressePapier" .FaceId = 22 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Affiche Info Systême" .OnAction = "ChercheSystemeInfo" .FaceId = 487 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Affiche version de Windows" .OnAction = "ChercheWindowsVersion" .FaceId = 1016 End With Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Affiche version du fichier" .OnAction = "VersionFichier" .FaceId = 1000 End With 'TrierOnglets Set MonItem = MaBarre.Controls.Add(Type:=msoControlButton) With MonItem .Caption = "Nouveau" .OnAction = "Boucle" .FaceId = 222 End With AjoutBarreMenu = True Exit_Barre: Exit Function Err_Barre: AjoutBarreMenu = False Texte = "Erreur dans la routine AjoutBarreMenu" Texte = Texte & Chr(13) & Err.Number Texte = Texte & Chr(13) & Err.Description MsgBox Texte Resume Next End Function '
donc c'est l'instruction : [ .FaceId = 2579 ] qui définit l'icone.
À l'aide du classeur suivant :
http://membre.oricom.ca/lupin/documents/barreoutils.xls
La nouvelle barre d'outils créé permet de visualiser 20 X 20 barres d'outils avec tous les icones
disponible. En déplaçant la souris audessus d'un icone, le [ FaceId ] apparait dans un info-bulle.
Lupin.
bonjour
il y a un problème avec ton lien car on récupère un fichier sans macro.
à plus
À l'aide du classeur suivant : http://membre.oricom.ca/lupin/documents/barreoutils.xls
il y a un problème avec ton lien car on récupère un fichier sans macro.
à plus