OVH Cloud OVH Cloud

problème deuxième exécution code

1 réponse
Avatar
Rejete
bonjour,

mon problème est le suivant : j'ai une macro qui crée notamment une boite de
dialogue qui sert à entrer des données pour écrire le code d'un module,
module également généré par ce code. A la fin du code, la boite de dialogue
et le module qui la crée se suppriment automatiquement. Mais si je désire
importer un seconde fois dans le même classeur le code qui crée la boite de
dialoque après avoir supprimé le module qui avait été généré, la boite de
dialogue ne prend jamais le nom que je veux lui affecter, "crea32" en
l'occurence, et elle n'est donc jamais loadée par "crea32.show" étant donné
que ce nom n'est pas affecté. J'ajouterais également que " crea32.show" ne
renvoit pas le bug "erreur exécution 424 _ objet requis", alors que je le
répète la boite de dialogue nommée "Crea32" n"existe plus.

Dim userf As Object
Set userf = ThisWorkbook.VBProject.VBComponents.Add(3)
userf.Name = "crea32"

J'aimerais donc savoir quelle est l'origine de ce problème et comment le
résoudre.
En espérant avoir été assez compréhensible je vous remercie d'avance.

Pierre

1 réponse

Avatar
Ange Ounis
As-tu essayé :
userf.Show
?
Ou, si cette solution ne fonctionne pas :
VBA.UserForms.Add(userf.Name).Show
(en conservant le nom donné par défaut par Excel lors de la création)

Ces deux instructions visent seulement à lancer le userform créé par ton code;
Elles ne remplacent pas, ni l'une ni l'autre, l'instruction qui crée le module
de code (Set userf = ThisWorkbook.VBProject.VBComponents.Add(3)).

----------
Ange Ounis
----------

bonjour,

mon problème est le suivant : j'ai une macro qui crée notamment une boite de
dialogue qui sert à entrer des données pour écrire le code d'un module,
module également généré par ce code. A la fin du code, la boite de dialogue
et le module qui la crée se suppriment automatiquement. Mais si je désire
importer un seconde fois dans le même classeur le code qui crée la boite de
dialoque après avoir supprimé le module qui avait été généré, la boite de
dialogue ne prend jamais le nom que je veux lui affecter, "crea32" en
l'occurence, et elle n'est donc jamais loadée par "crea32.show" étant donné
que ce nom n'est pas affecté. J'ajouterais également que " crea32.show" ne
renvoit pas le bug "erreur exécution 424 _ objet requis", alors que je le
répète la boite de dialogue nommée "Crea32" n"existe plus.

Dim userf As Object
Set userf = ThisWorkbook.VBProject.VBComponents.Add(3)
userf.Name = "crea32"

J'aimerais donc savoir quelle est l'origine de ce problème et comment le
résoudre.
En espérant avoir été assez compréhensible je vous remercie d'avance.

Pierre