Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Erreur 424 lors affichage d'un form

6 réponses
Avatar
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 files\microsoft
office\office11\form_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

6 réponses

Avatar
Vince
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




Avatar
MichDenis
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" a écrit dans le message de news:

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
Avatar
Vince
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" a écrit dans le message de news:

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






Avatar
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 !

;-)))
Avatar
MichDenis
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" a écrit dans le message de news:


| 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 !

;-)))
Avatar
Vince
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" a écrit dans le message de news:


| 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 !

;-)))