XLS ou XLA ?
Une fois que ton classeur .xls a été enregistré en macro complémentaire (.xla) tu te retrouves en effet avec deux fichiers. Le classeur (.xls) ne sert plus à rien. Tu peux le détruire. Tu pourras toujours visualiser et modifier les procédures et fonctions de ta macro complémentaire dans l'éditeur VBE. La chose à faire maintenant (après avoir détruit ou mis de côté au cas où ton classeur.xls) est d'installer ta macro complémentaire : dans Excel tu fais Outils\Macros complémentaires..., tu cherches la tienne dans la liste, tu coches la case en face de son nom puis OK (si elle n'est pas dans la liste tu la cherches avec Parcourir puis même chose). A partir du moment où elle estinstallée, ta macro complémentaire sera lancée à chaque ouverture d'Excel et tu pourras appeler ses procédures et fonctions depuis les modules de code d'autres classeurs, ou utiliser tes fonctions dans des cellules d'une feuille de calcul (à condition qu'elles se contentent de renvoyer un résultat). Oui, pour les boutons, il n'y a pas de miracle. Sa macro complémentaire devrait, à mon avis, comporter un module réservé à la création d'une BO personnalisée avec le nombre de boutons dont il a besoin et reliés à ses procédures. Il pourrait s'inspirer de ce bout de code, qui crée une barre d'outils avec deux boutons :
dans un module standard
sub CreeBO() 'à appeler dans le Workbook_Open du .xla
Dim MaBar, Btn1, Btn2
On Error Resume Next
Set MaBar = Application.CommandBars.Add("MaBarre")
With MaBar
Set Btn1 = .Controls.Add(msoControlButton)
With Btn1
.FaceId = 39
.OnAction = "Macro1"
End With
Set Btn2 = .Controls.Add(msoControlButton)
With Btn2
.FaceId = 40
.OnAction = "Macro2"
End With
.Visible = True
End With
end subsub Macro1() MsgBox "Bouton 1" end sub
sub Macro2() MsgBox "Bouton 2" end sub
sub DelBO() 'à appeler dans le Workbook_AddinUninstall du .xla
On Error Resume Next
Application.CommandBars("MaBarre").Delete
end subAuteur : Frédéric Sigonneau
Mots clefs associés à cette page : complémentaire, xla, macro
- Vous devez vous identifier ou créer un compte pour écrire des commentaires
