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

Signaler
Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
8 avril 2008
-
Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
8 avril 2008
-
    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

Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
8 avril 2008
1
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+
Messages postés
206
Date d'inscription
lundi 22 novembre 1999
Statut
Membre
Dernière intervention
3 juillet 2008

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
Messages postés
206
Date d'inscription
lundi 22 novembre 1999
Statut
Membre
Dernière intervention
3 juillet 2008

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