Erreur 424 lors affichage d'un form

Le
Vince
Bonjour

La macro suivante me génère une erreur 424. Elle est probablement due à la
première ligne qui donne l'ordre à Excel d'importer le form depuis le disque
dur
L'importation se fait pourtant sans problème et si je relance la macro une
deuxième fois en enlevant la première ligne, le form s'affiche très bien

Private Sub Macro1()
ActiveWorkbook.VBProject.VBComponents.Import ("C:program filesmicrosoft
officeoffice11form_reval.frm")
[Diverses instructions]
Form_reval.Show
End Sub

Je ne comprends pas pourquoi cela ne fonctionne pas car j'ai déjà une macro
similaire qui fonctionne nickel

Est-ce que quelqu'un pourrait m'aider ?

Merci d'avance et bonne journée à tous
Vince
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Vince
Le #5377601
Bon finalement j'ai progressé. J'ai écrit une ligne de code qui installe le
module de référence Microsoft Forms 2.0 Object Library au lancement de la
macro.

Du coup l'erreur 424 n'apparaît plus mais le formulaire ne s'affiche
toujours pas et la macro sembe ignorer la ligne form_reval.show




Bonjour

La macro suivante me génère une erreur 424. Elle est probablement due à la
première ligne qui donne l'ordre à Excel d'importer le form depuis le disque
dur...
L'importation se fait pourtant sans problème et si je relance la macro une
deuxième fois en enlevant la première ligne, le form s'affiche très bien...

Private Sub Macro1()
ActiveWorkbook.VBProject.VBComponents.Import ("C:program filesmicrosoft
officeoffice11form_reval.frm")
[Diverses instructions]
Form_reval.Show
End Sub

Je ne comprends pas pourquoi cela ne fonctionne pas car j'ai déjà une macro
similaire qui fonctionne nickel...

Est-ce que quelqu'un pourrait m'aider ?

Merci d'avance et bonne journée à tous
Vince




MichDenis
Le #5103601
Copie ce qui suit dans ton projet VBA et exécute
la procédure test

Il ne reste plus qu'à renseigner cette variable de la procédure Test
selon ton application :
ImportUserform = "C:Userform1.Frm"

N.B- Assure toi que tu n'as pas déjà un formulaire qui porte le nom
du formulaire que tu veux importer.

'------------------------------
Sub test()
Dim ImportUserform As String
ImportUserform = "C:Userform1.Frm"
If Dir(ImportUserform) <> "" Then
ThisWorkbook.VBProject.VBComponents.Import ImportUserform
Voir_Userform1
End if
End Sub
'------------------------------
Sub Voir_Userform1()
UserForm1.Show ' Remplace UserForm1 par le nom de ton formulaire
End Sub
'------------------------------







"Vince"
Bonjour

La macro suivante me génère une erreur 424. Elle est probablement due à la
première ligne qui donne l'ordre à Excel d'importer le form depuis le disque
dur...
L'importation se fait pourtant sans problème et si je relance la macro une
deuxième fois en enlevant la première ligne, le form s'affiche très bien...

Private Sub Macro1()
ActiveWorkbook.VBProject.VBComponents.Import ("C:program filesmicrosoft
officeoffice11form_reval.frm")
[Diverses instructions]
Form_reval.Show
End Sub

Je ne comprends pas pourquoi cela ne fonctionne pas car j'ai déjà une macro
similaire qui fonctionne nickel...

Est-ce que quelqu'un pourrait m'aider ?

Merci d'avance et bonne journée à tous
Vince
Vince
Le #5103461
Merci beaucoup ça fonctionne très bien maintenant.
Est-ce que c'est parce que je n'avais pas déclaré de variable que ça ne
jouait pas avant ? faut dire que je comprends pas trop ces notions de
variables... :)

Bonne journée


Copie ce qui suit dans ton projet VBA et exécute
la procédure test

Il ne reste plus qu'à renseigner cette variable de la procédure Test
selon ton application :
ImportUserform = "C:Userform1.Frm"

N.B- Assure toi que tu n'as pas déjà un formulaire qui porte le nom
du formulaire que tu veux importer.

'------------------------------
Sub test()
Dim ImportUserform As String
ImportUserform = "C:Userform1.Frm"
If Dir(ImportUserform) <> "" Then
ThisWorkbook.VBProject.VBComponents.Import ImportUserform
Voir_Userform1
End if
End Sub
'------------------------------
Sub Voir_Userform1()
UserForm1.Show ' Remplace UserForm1 par le nom de ton formulaire
End Sub
'------------------------------







"Vince"
Bonjour

La macro suivante me génère une erreur 424. Elle est probablement due à la
première ligne qui donne l'ordre à Excel d'importer le form depuis le disque
dur...
L'importation se fait pourtant sans problème et si je relance la macro une
deuxième fois en enlevant la première ligne, le form s'affiche très bien...

Private Sub Macro1()
ActiveWorkbook.VBProject.VBComponents.Import ("C:program filesmicrosoft
officeoffice11form_reval.frm")
[Diverses instructions]
Form_reval.Show
End Sub

Je ne comprends pas pourquoi cela ne fonctionne pas car j'ai déjà une macro
similaire qui fonctionne nickel...

Est-ce que quelqu'un pourrait m'aider ?

Merci d'avance et bonne journée à tous
Vince






MichDenis
Le #5103401
| Est-ce que c'est parce que je n'avais pas déclaré de variable que ça ne
| jouait pas avant ?

Non. En fait les variables sont pour la mise en "forme .... du code" !!!!
mais si tu préfères, on peut résumer le code du message précédent
comme ceci :

Tu dois adapter le chemin et le nom du formulaire selon ton application
'----------------------
Sub test()
ThisWorkbook.VBProject.VBComponents.Import "c:Userform1.frm"
VBA.UserForms.Add("Userform1").Show
End Sub
'----------------------

Tu as vite saisi que cela devient trop facile et que tout le monde va finir par
comprendre les subtilités du code et n'auront plus besoin de venir exposer
leur "petit malheur" ici.
C'est top secret -> garde cette exemple pour toi !

;-)))
MichDenis
Le #5103361
Et pour ceux qui trouve que le code est encore trop long :
'----------------------
Sub test()
VBA.UserForms.Add(ThisWorkbook.VBProject.VBComponents.Import("c:Userform1.frm").Name).Show
End Sub
'----------------------

Conservez ceci en mémoire -> un examen la dessus la semaine prochaine
au lendemain de Noel !



"MichDenis"

| Est-ce que c'est parce que je n'avais pas déclaré de variable que ça ne
| jouait pas avant ?

Non. En fait les variables sont pour la mise en "forme .... du code" !!!!
mais si tu préfères, on peut résumer le code du message précédent
comme ceci :

Tu dois adapter le chemin et le nom du formulaire selon ton application
'----------------------
Sub test()
ThisWorkbook.VBProject.VBComponents.Import "c:Userform1.frm"
VBA.UserForms.Add("Userform1").Show
End Sub
'----------------------

Tu as vite saisi que cela devient trop facile et que tout le monde va finir par
comprendre les subtilités du code et n'auront plus besoin de venir exposer
leur "petit malheur" ici.
C'est top secret -> garde cette exemple pour toi !

;-)))
Vince
Le #5377301
Merci beaucoup de tous ces commentaires... c'est fort utile...

Bonne journée!



Et pour ceux qui trouve que le code est encore trop long :
'----------------------
Sub test()
VBA.UserForms.Add(ThisWorkbook.VBProject.VBComponents.Import("c:Userform1.frm").Name).Show
End Sub
'----------------------

Conservez ceci en mémoire -> un examen la dessus la semaine prochaine
au lendemain de Noel !



"MichDenis"

| Est-ce que c'est parce que je n'avais pas déclaré de variable que ça ne
| jouait pas avant ?

Non. En fait les variables sont pour la mise en "forme .... du code" !!!!
mais si tu préfères, on peut résumer le code du message précédent
comme ceci :

Tu dois adapter le chemin et le nom du formulaire selon ton application
'----------------------
Sub test()
ThisWorkbook.VBProject.VBComponents.Import "c:Userform1.frm"
VBA.UserForms.Add("Userform1").Show
End Sub
'----------------------

Tu as vite saisi que cela devient trop facile et que tout le monde va finir par
comprendre les subtilités du code et n'auront plus besoin de venir exposer
leur "petit malheur" ici.
C'est top secret -> garde cette exemple pour toi !

;-)))






Publicité
Poster une réponse
Anonyme