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

Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
8 avril 2008
- - Dernière réponse : 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.
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
4
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
8 avril 2008
1
3
Merci
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+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 120 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_gritche2
Messages postés
209
Date d'inscription
lundi 22 novembre 1999
Statut
Membre
Dernière intervention
3 juillet 2008
0
Merci
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
Commenter la réponse de GEDDi
Messages postés
209
Date d'inscription
lundi 22 novembre 1999
Statut
Membre
Dernière intervention
3 juillet 2008
0
Merci
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
Commenter la réponse de GEDDi