[EXCEL/VBA] Maintenance de macros

Résolu/Fermé
laurent1030 Messages postés 7 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 21 mai 2007 - 15 mai 2007 à 11:42
laurent1030 Messages postés 7 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 21 mai 2007 - 15 mai 2007 à 15:12
Bonjour à tous,

J'ai écrit une macro en VBA qui utilise un Module et une boite de dialogue. Cette macro est utilisée actuellement dans plusieurs fichiers Excel, ce qui m'oblige à tous les mettre à jour lorsque je veux modifier la macro.

J'ai essayé d'utiliser les "templates" ou "modèles de documents" sous Excel, mais cela ne semble pas aussi performant que sous Word. Lorsque je crée un fichier sur base du modèle, la macro est "copiée" dans le nouveau document. Résultat, si je mets à jour le modèle, les fichiers créés sur base du modèle ne sont pas mis à jour.

Comment faire pour pouvoir gérer ma macro de façon centralisée? La seule méthode que j'aie trouvée, c'est de mettre la macro dans un autre fichier, qui doit être ouvert en parrallèle avec le/les fichier(s) sur lesquels la macro doit être exécutée. Pas très pratique.

Merci
A voir également:

3 réponses

laurent1030 Messages postés 7 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 21 mai 2007 2
15 mai 2007 à 15:12
Ok, j'ai trouvé. J'ai ajouté un code Visual Basic qui ajoute automatiquement un bouton dans le menu "Tools" (mon Excel est en anglais):

Private Sub Workbook_Open()
Dim ctrl As CommandBarControl
Set ctrl = Application.CommandBars("Tools").FindControl(, , "MYCONTROL")
If ctrl Is Nothing Then
Set ctrl = Application.CommandBars("Tools").Controls.Add(msoControlButton)
ctrl.Tag = "MYCONTROL"
ctrl.OnAction = "Start"
ctrl.Caption = "My Macro"
End If
End Sub
1
xjl Messages postés 232 Date d'inscription mardi 27 mars 2007 Statut Membre Dernière intervention 12 juin 2007 183
15 mai 2007 à 11:53
Salut,

En fait le meilleur moyen c'est de prendre ton fichier où tu développes ta macro, de faire Enregistrer sous et là tu choisis le nom que tu veux pour ta macro, et tu sélectionnes en bas l'extension des Macros complémentaires (*.xla) et il te la met directement dans le bon dossier...

Ensuite dans Excel dans n'importe quel fichier, tu peux faire Outils\Macros Complémentaires et sélectionner ta macro qui est alors utilisable dans tous tes fichiers Excel alors que tu ne l'as que dans une unique version sur ton pc.

Un conseil, garde le fichier d'origine pour pouvoir mettre à jour ta macro facilement et utilise la même méthode pour l'enregistrement en écrasant à chaque fois l'ancienne macro ! ;-)
0
laurent1030 Messages postés 7 Date d'inscription mardi 15 mai 2007 Statut Membre Dernière intervention 21 mai 2007 2
15 mai 2007 à 14:32
Merci, je n'avais pas pensé à ça.

Mais comment est-ce que je peux accéder à ma macro ? Normalement, je l'exécuter via le menu Outils\Macro, mais elle n'apparaît plus dans la liste des macros. Pourtant, je vois bien le code VBA dans l'éditeur Visual Basic. Je cherche de mon côté car j'imagine que ça doit être tout bête.
0