[VBA] Créer par du code vba une feuille excel contenant une macro vba...

Résolu
cs_gritche2 Messages postés 4 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 8 avril 2008 - 8 oct. 2007 à 22:42
cs_gritche2 Messages postés 4 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 8 avril 2008 - 9 oct. 2007 à 15:19
    Bonjour,

mon problème est le suivant : je travail dans excel en vba et je génére beaucoup de graphiques. Pour chacun d'une eux je voudrais pouvoir récupérer l'évenement "Chart_BeforeDoubleClick" et l'implémenter avec une de mes macro.

Tout cela est fait pour que lorsque je clique des données dans le graph une fenêtre apparait avec pliens d'info concernant cette donnée.

J'arrive à faire la macro qui fait un affichage mais il faut coller cette macro manuellement.

Comment puis je faire pour l'insérer par code au moment de la création du graphique.

Par avance merci.

3 réponses

cs_gritche2 Messages postés 4 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 8 avril 2008 1
9 oct. 2007 à 15:19
Bonjour,

merci pour ton idée. Je penses utiliser cela mais dans un autre de mes prob.

Pour celui ci j'ai en fait trouvé :

ch As Chart

Set CurCodeModule = ThisWorkbook.VBProject.VBComponents(ch.CodeName).CodeModule
    With CurCodeModule
        x = .CountOfLines
        .InsertLines x + 1, "Private Sub Chart_BeforeDoubleClick(ByVal ElementID As Long, " & _
               "ByVal Arg1 As Long, ByVal Arg2 As Long, Cancel As Boolean)"
          .InsertLines x + 2, "Cancel = True"
           .InsertLines x + 3, "Call GlobalServices.DisplayInfo(Arg1, ActiveSheet.Name)"
            .InsertLines x + 4, "End Sub"
    End With

Pour que cela marche il faut faire Outils\Macro\Sécurité : onglet Editeurs approuvés cocher les 2 cases.

Merci
a+
3
GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
9 oct. 2007 à 11:52
Bonjour,

Un truc tout bete : sauver ton code générique dans un module (.bas) et ensuite tu peux l'importer at runtime de la manière suivante :



Application.VBE.ActiveVBProject.VBComponents.Import("moncode.bas")




Gérôme GUILLEMIN
Auteur du langage FBSL
0
GEDDi Messages postés 206 Date d'inscription lundi 22 novembre 1999 Statut Membre Dernière intervention 3 juillet 2008
9 oct. 2007 à 11:54
Bonjour,

Un truc tout bete : sauver ton code générique dans un module (.bas)
Ensuite tu charges ce code depuis une fonction.
Exemple :

Application.VBE.ActiveVBProject.VBComponents.Import("test.bas")


Gérôme GUILLEMIN
Auteur du langage FBSL
0
Rejoignez-nous