[VBA Excel] Importation dynamique de code

Résolu
Signaler
Messages postés
29
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
24 juillet 2007
-
Messages postés
3
Date d'inscription
jeudi 4 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010
-
Bonjour,

Je suis en train de faire une macro dans un fichier excel qui exporte dans d'autres fichiers excels du code présent dans un fichier text.
Pour ce qui est des modules je n'ai pas de problème, mais j'aimerai savoir comment ajouter du code dynamiquement du code dans la page ThisWorkbook, afin de pouvoir ajouter du code évenementiel à l'ouverture, à la sauvegarde etc du fichier ?

Pour l'import je me sert de
Workbooks(Grip).VBProject.VBComponents.Import "Nom du fichier"

Mais elle me fait un apport basique dans une nouveau module de classe.

Merci

5 réponses

Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut,

effectivement, tu ne peux pas avoir deux module 'ThisWorkBook'. Il faut lire ton fichier texte (donc le code) et l'écrire dans ThisWorkBook avec InsertLine de l'objet CodeModule (si j'ai bonne mémoire)

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
29
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
24 juillet 2007

Merci pour ta réponse rapide.
J'ai essayé de faire avec ta méthode, j'ai vu aussi qu'il y avait la méthode AddFromFile de CodeModule.

Pour acceder à l'objet CodeModule, j'ai vu qu'il fallait passer par l'objet CodePanes de l'objet VBE : ça donne en gros ça :

Application.VBE.CodePanes(1).CodeModule.AddFromFile Chemin

Mais voilà là ça ajoute au workbook qui éxecute la macro. J'ai essayé de preciser le workbook mais sans succès :

Workbooks("AutreWorkBook").VBProject.VBE.CodePanes(1).CodeModule.AddFromFile Chemin

ça fait toujours reference au premier workbook, et aussi un autre problème on dirait que le module ThisWorkbook n'est pas accessible depuis CodePanes(index) (j'ai bouclé sur tous et il n'est pas sorti)

Peut-être que ma méthode n'est pas la bonne
Messages postés
29
Date d'inscription
jeudi 16 mars 2006
Statut
Membre
Dernière intervention
24 juillet 2007

Non en fait je viens de trouver pour ceux que ça interesse :

Workbooks("Workbook.xls").VBProject.VBComponents.Item(1).CodeModule.AddFromFile Chemin

ça ajoute dans le premier module (donc "ThisWorkbook") du WorkBook renseigné.

Et bien j'aurai un peu galéré quand même pour cette toute petite ligne de code ':\

Merci en tout cas mortalino !
Messages postés
584
Date d'inscription
jeudi 28 décembre 2006
Statut
Membre
Dernière intervention
29 avril 2010
1
Dans ton code chemin represente le chemin vers quel type de fichier?

Un mod .bas ou ?

Merci en avance.

<hr size="2" width="100%" />  zen69 aka Ortho Le Profett
  [site web]
Messages postés
3
Date d'inscription
jeudi 4 novembre 2010
Statut
Membre
Dernière intervention
25 novembre 2010

Merci beaucoup pour ce thread !!!