Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
Vieux 03/02/2010, 11h43   #1
Candidat au titre de Membre du Club
 
Date d'inscription: janvier 2010
Messages: 20
Par défaut Ajout menu dans Barre d'excel

Bonjour,
Je suis un peu embêté car je n'arrive pas à insérer un menu dans la barre d'excel, juste après "Help".
Je l'avais fait sur un ancienne version d'excel et je n'arrive pas à mettre la main dessus et comme c'est pas quelque chose que je ne fais pas souvent, je suis dans la panade.
A dire vrai je l'avais "pompé" quelque part d'où et sans chercher à vraiment comprendre.
Ca doit se mettre automatiquement dans la barre à l'ouverture du fichier.

Merci
A+
patyom est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 12h15   #2
Expert Confirmé Sénior
 
Avatar de pc75
 
Date d'inscription: septembre 2004
Localisation: Paris
Âge: 54
Messages: 2 493
Par défaut

Bonjour,

A mettre dans un module, mais c'est pour Excel 2002.

Code :
 
Sub auto_open()
ajouteMenu "Menu", _
            Array("Item..."), _
            Array("Macro1"), _
            Array(1753)
 
End Sub
 
Private Sub Workbook_BeforeClose(Cancel As Boolean)
 
' arg   :   nom du menu à effacer (chaine)
 
effaceMenu "Nom d&u menu"
 
End Sub
Sub ajouteMenu(ByVal MenuName As String, _
            ByVal tItems As Variant, _
            ByVal tLinks As Variant, _
            ByVal tTTText As Variant)
    
    Dim myMenu As CommandBar
    Dim newMenu As CommandBarControl
    Dim subMenu As CommandBarControl
    Dim ctl As CommandBarControl
    Dim Value As Variant
    Dim i As Long, j As Long
    
    Set myMenu = CommandBars.ActiveMenuBar
    Set newMenu = myMenu.Controls.Add(Type:=msoControlPopup, Before:=9, temporary:=True)
    newMenu.Caption = MenuName
    For Each Value In tItems
        If IsArray(Value) Then
            'cas d'un sous menu
            Set subMenu = newMenu.Controls.Add(Type:=msoControlPopup, temporary:=True)
            subMenu.Caption = Value(0)
            For j = 1 To UBound(Value)
                Set ctl = subMenu.Controls.Add(Type:=msoControlButton)
                ctl.Caption = Value(j)
                ctl.Style = msoButtonIconAndCaption
                ctl.OnAction = tLinks(i)(j)
                ctl.FaceId = CLng(tTTText(i)(j))
            Next j
        Else
            'cas d'un menu
            Set ctl = newMenu.Controls.Add(Type:=msoControlButton)
            If Left(Value, 1) = "-" Then
                ctl.BeginGroup = True
                ctl.Caption = Mid(Value, 2)
            Else
                ctl.Caption = Value
            End If
            ctl.Style = msoButtonIconAndCaption
            ctl.OnAction = tLinks(i)
            ctl.FaceId = CLng(tTTText(i))
        End If
        i = i + 1
    Next Value
    
 
End Sub
 
Sub effaceMenu(ByVal MenuName As String)
    
    Dim myMenu As CommandBar
    
    On Error Resume Next
   
    Set myMenu = CommandBars.ActiveMenuBar
    myMenu.Controls(MenuName).Delete
 
End Sub
 
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 14h12   #3
Candidat au titre de Membre du Club
 
Date d'inscription: janvier 2010
Messages: 20
Par défaut

Salut PC75,
Ça marche super mais, et il y a tjr un mais, je n'ai pas vraiment saisi à quoi correspond le chiffre "1753" dans
Code :
Sub auto_open()
ajouteMenu "Menu", _
            Array("Item..."), _
            Array("Macro1"), _
            Array(1753)
 
End Sub
J'ai un peu cherché (pas trop) mais rien de bien concluant dans l'aide.
Explique si tu veux bien-entendu !

Merci, c'est sympa

A+
patyom est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 14h58   #4
Expert Confirmé Sénior
 
Avatar de pc75
 
Date d'inscription: septembre 2004
Localisation: Paris
Âge: 54
Messages: 2 493
Par défaut

Re,

Ca correspond au "FaceId", c'est à dire l'icone qui s'affiche à gauche de l'item du menu.

ftp://ftp-developpez.com/fring/vba/e...eid/faceid.pdf
__________________
Par principe, je ne réponds pas aux messages URGENT.
Il n'y a pas de choses urgentes, il n'y a que des choses en retard. (un inconnu)
pc75 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 03/02/2010, 15h34   #5
Candidat au titre de Membre du Club
 
Date d'inscription: janvier 2010
Messages: 20
Par défaut

re,
Voilà pourquoi je t'ai posé la question, il n'y a rien qui s'affiche chez moi, pb de version Excel PC MAc peut-être, enfin je note.
Merci pour les conseils c'est déjà plus clair dans mon fichier.

A+
patyom est déconnecté   Envoyer un message privé Réponse avec citation
NEWS EXCELF.A.Q EXCELTUTORIELS EXCELSOURCES EXCELOUTILS EXCELLIVRES EXCELOFFICE 2010

Réponse Proposer ce sujet en actualité

Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non



Fuseau horaire GMT +1. Il est actuellement 07h38.


Vos questions techniques : forum d'entraide Excel - Publiez vos articles, tutoriels et cours
et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones
Nous contacter - Hébergement - Participez - Copyright © 2000-2010 www.developpez.com - Legal informations.