[excel2003]
salut,
j'ai crée une fonction, que j'ai stockée sous forme xla, je voudrai créer un bouton dans la barre, dynamiquement, i.e dans la foction elle-même.
merci
Version imprimable
[excel2003]
salut,
j'ai crée une fonction, que j'ai stockée sous forme xla, je voudrai créer un bouton dans la barre, dynamiquement, i.e dans la foction elle-même.
merci
Peux-tu nous en dire plus ? Là, je peux supposer plusieurs choses :
Créer un bouton dans "une" barre (laquelle ?) qui lance ta macro complémentaire...
Lancer ta macro qui crée la barre à l'ouverture du fichier avec un bouton qui fait des choses...
... ou autre chose...
Tu peux préciser ?
A+
Hello,
j'utilise et j'ai distribué un XLA qui génére son propre menu :
sur le code de ThisWorkbook de ton xla :
et j'ai mis dans un module de code de mon XLA les fonctions :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 Private Sub Workbook_BeforeClose(Cancel As Boolean) DelMenu "MonMenu" Application.Speech.Speak "Good bye ! See you soon !" End Sub Private Sub Workbook_Open() ArrText = Array( ... ) ArrCode = Array( ... ) ArrIcon = Array(7707, 7707 ...) ' affichage du Menu AddMenu "MonMenu", _ ArrText, _ ArrCode, _ ArrIcon End Sub
ExempleCode:
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 Sub AddMenu(ByVal MenuName As String, _ ByVal tItems As Variant, _ ByVal tLinks As Variant, _ ByVal tTTText As Variant) Set myMenu = CommandBars.ActiveMenuBar Set newMenu = myMenu.Controls.Add(Type:=msoControlPopup, 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 DelMenu(ByVal MenuName As String) On Error Resume Next Set myMenu = CommandBars.ActiveMenuBar myMenu.Controls(MenuName).Delete End Sub
Code:
1
2
3
4
5
6 addmenu "Developpez.com", _ array("Fichier","Ouvrir","-Quitter"), _ array("dummymacro1", "dummymacro2", "dummymacro3"), _ array(1957, 107, 5756) delmenu "Developpez.com"
Merci de vos réponse, mais en fait ma fonction permet de calculer la retenue irg sur salaire, à partir de n'importe quels classeur, je voudrais simplement simplifier l'utilisation de cette fonction en rajoutant un bouton personnel dans la barre d'outils à partir de la fonction elle même, j'espère être clair dans mes explication.
C'est ce qu'il me semblait. Alors regarde là, tu as le code à utiliser dans ton xla.
A+