Code dynamique workbook_windowactivate
Bonjour,
J'ai créé des macros qui ouvrent 2 types de documents Excel, traitent leur contenu et crée un formulaire/type pour permettre à l'utilisateur de générer des graphiques en choisissant leurs paramètres.
Le problème est que si le user ouvre le premier document et roule la macro, le formulaire correspondant s'ouvre, ce qui est OK, mais si le user ouvre l'autre document, qui lui utilise une autre macro et un autre formulaire, le formulaire du premier demeure ouvert dans l'autre document. J'ai cherché à utiliser le worksheet.activate pour cacher le formulaire non correspondant, mais il ne se déclenche que lorsque je change de sheet, non pas de workbook. Si je mets le code dans workbook_windowactivate, je peux voir l'évènement, mais je dois l'y entrer manuellement.
Ma question est; est-il possible de mettre du code dynamiquement dans l'évènement d'un workbook, comme on le fait avec les worksheet?
Merci!
Erreur d'exécution '75': Erreur d'accès Chemin/Fichier
Il me semble que ça fait 2 jours que je cherche des choses sans résultat...
Un autre problème s'est ajouté.
J'ai un bouton "Reset" sur chacune des worksheet, dont le code est généré dynamiquement, qui appelle une fonction dans la macro "TraitePremiere" qui se trouve dans le classeur "Perso.xls" et qui supprime le userform(nommé "NomFormulaire1") qui se trouve dans le premier classeur(le même que le bouton).
Voici le code;
Code:
1 2 3 4
|
ActiveWorkbook.VBProject.VBComponents.Item("NomFormulaire1").Hide
ActiveWorkbook.VBProject.VBComponents.Remove ActiveWorkbook.VBProject.VBComponents.Item("NomFormulaire1")
ActiveWorkbook.VBProject.VBComponents.Unload ActiveWorkbook.VBProject.VBComponents.Item("NomFormulaire1") |
J'ai bien lu qu'il ne fallait pas que le userform soit en cours d'affichage pour qu'il puisse être supprimé, et mon code fonctionne bien, mais si je le recrée et donne à ce nouveau userform le même nom, soit "NomFormulaire1", il me fait l'erreur
Code:
Erreur d'exécution '75': Erreur d'accès Chemin/Fichier
comme s'il existait encore(c'est pourquoi j'ai essayé le unload). On dirait qu,il le garde en mémoire... pourtant, dans l'éditeur VB, il n'y est plus! Et si je parcours les vbcomponents de type 3 par code, il n'y est plus! J'ai même essayé en supprimant so code avant, rien n'y fait! Avez-vous une idée
à ce sujet?
Merci!