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
Invité régulier
 
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 8
Points : 8
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 00
Vieux 03/02/2010, 12h15   #2
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 760
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 760
Points : 2 938
Points : 2 938
Bonjour,

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

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
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 00
Vieux 03/02/2010, 14h12   #3
Invité régulier
 
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 8
Points : 8
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 :
1
2
3
4
5
6
7
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 00
Vieux 03/02/2010, 14h58   #4
Expert Confirmé
 
Avatar de pc75
 
Inscription : septembre 2004
Messages : 2 760
Détails du profil
Informations personnelles :
Âge : 56
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : septembre 2004
Messages : 2 760
Points : 2 938
Points : 2 938
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 00
Vieux 03/02/2010, 15h34   #5
Invité régulier
 
Inscription : janvier 2010
Messages : 22
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 22
Points : 8
Points : 8
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 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +1. Il est actuellement 12h24.


 
 
 
 
Partenaires

Hébergement Web