Rechercher : dans
Par :

Icone sous-menu VB | Excel

Dernière réponse le 4 sep 2009 à 18:06:48 Harry, le 12 aoû 2008 à 11:05:47 
 Signaler ce message aux modérateurs

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...

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Icone sous menu VB | Excel » dans :
Eviter les doublons dans Excel VoirEviter les doublons lors d'un encodage dans un colonne de feuille excel: prendre le format conditionnel sur le première cellule sous les titres (par ex A2) choisir la formule suivante : =NB.SI($A$2:$A$21;A2)>1 mettre là la couleur de fond...
Modifier la taille du menu démarrer VoirVoici comment changer à volonté la taille de votre menu démarrer. Faites un clic droit sur le menu démarrer, puis, choisissez propriétés. Cliquez sur Personnaliser, dans la nouvelle fenêtre, augmentez ou diminuez le nombre de programmes récents...
Personnaliser la commande "Envoyer vers" VoirComment enrichir ou nettoyer le menu "Envoyer vers" ? Comment accéder au dossier "SendTo" ? Comment ajouter un raccourci dans SendTo ? Rétablir les raccourcis "Bureau", "Dossier compressé", "Mes documents", "Destinataire" Un clic droit...

1

Lupin.A, le 15 aoû 2008 à 14:11:31
  • +3

Bonjour,

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.

Répondre à Lupin.A

2

LePierre, le 15 aoû 2008 à 18:03:00

Bonjour

À 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

Répondre à LePierre

3

Lupin.A, le 15 aoû 2008 à 18:29:47

Re:

merci de l'info, c'est corrigé :-)

de plus j'ai une erreur dans l'instruction de déclaration :

Dim BarreMenu, MaBarre, MonItem As Object

qui doit s'écrire :

Dim BarreMenu As Object, MaBarre As Object, MonItem As Object


Lupin

Répondre à Lupin.A

5

kpitaine, le 28 jui 2009 à 22:42:49

Salut lupin,

Peux-tu m'expliquer comment supprimer tous les icones dans les barres sous complément???
Je n'arrive pas à me débarasser des barres.
Merci

Répondre à kpitaine

6

 Lupin.A, le 4 sep 2009 à 18:06:48

Bonjour kpitaine,

Je ne comprends pas la question ?

...tous les icones dans les barres sous complément...

Lupin
~L'essentiel est invisible pour les yeux~
  ~On ne voit bien qu'avec le coeur~

Répondre à Lupin.A

4

LePierre, le 16 aoû 2008 à 10:07:23

Bonjour

Je n'ai pas trouvé les déclarations "Dim BarreMenu, MaBarre, MonItem As Object " mais ton application fonctionne très bien.
Félicitations sincères !
à plus

Répondre à LePierre
Collection CommentÇaMarche.net