VBA problème pour load

Résolu
Bonjour, j'ai une erreur d'exécution "438" Propriété ou méthode non gérée par cette objet

Je suis dans Userform1 et je veux que s'affiche une autre fenêtre userform2 s'affiche quand je clique sur un bouton et que l'ancienne fenêtre (userform1) disparaise.

Private Sub CommandButton_suivant1_Click()

'Traitement du bouton suivant
Load UserForm2
UserForm2.Show
Unload UserForm1

End Sub


Et j'ai donc la ligne load UserForm2 qui est surligner lors du débogage.

Je vois pas d'où peu venir l'erreur car j'ai utiliser ce code jusqu'à ce que sa bug.
Si vous avez une idée;

12 réponses

  1. Bonsoir

    C'est un problème de chronologie, essaie :

    Private Sub CommandButton_suivant1_Click()
    Unload UserForm1
    Load UserForm2
    UserForm2.Show
    End sub

    Ça devrait fonctionner.

    Patrice
    1
    1. Bonjour,

      Le Load n'est pas nécessaire.

      Private Sub CommandButton_suivant1_Click()
           Unload Me
           UserForm2.Show
      End sub 


      ;o)
      0
      1. Salut aucune de vos solution ne marche et quand je vire le Load UserForm2 j'ai une erreur sur le UserForm2.show de type "424"

        Je comprend pas c'est comme si il ne reconnaisse pas UserForm2
        0
        1. Régression: J'ai commenter mes lignes de code pour pouvoir travailler sur le userform2 mais lorsque je lance l'exécution du UserForm2 il me dit qu'il y a une erreur dans mes lignes commenter de mon UserForm1!!! de mieux en mieux donc.
          0
          1. C'est difficile de dire comme ça juste avec un bout de code. Ce qui t'a été donné fonctionne. Le problème est ailleurs.

            Le mieux c'est que tu mettes ton fichier sur https://www.cjoint.com/ en enlevant les données sensibles. Tu colles ici le lien fournit par le site.

            ;o)
            0
            1. J'ai trouver ce qui bloque:
              sur la userforme2 j'ai un multipage et je fais ceci
              Private Sub UserForm_Initialize()
              
              Multipage.pages(1).Enable = False
              Multipage.pages(2).Enable = False
              Multipage.pages(3).Enable = False
              Multipage.pages(4).Enable = False
              Multipage.pages(5).Enable = False
              
              End Sub


              J'ai 6 onglets et donc lorsque j'ai enlever ces lignes mon problème est parti avec.
              Si quelqu'un sait pourquoi j'ai tel comportement de mon programme
              0
              1. Es-tu sûr du nom du multipage ? ca ne serait pas plutôt Multipage1 ??

                Je viens de faire un test et tout fonctionne correctement chez moi

                Ôo
                0
            2. du coup je ne sais plus si j'ai fait cette erreur mais je ne crois pas.
              0
              1. Salut je test bien avec :
                Multipage1.pages(1).Enable = False
                Multipage1.pages(2).Enable = False
                Multipage1.pages(3).Enable = False
                Multipage1.pages(4).Enable = False
                Multipage1.pages(5).Enable = False

                Et j'ai toujours le même problème, erreur 438 sur mon UserForm1.show.
                Si quelqu'un voie pourquoi.
                0
                1. Contributeur
                  bonjour tous,
                  Le fait de charger un UF est implicitement en modal.. donc pas possible d'afficher un autre à partir de celui-ci en le fermant.
                  Deux solutions possibles...
                  1°) dans l'ouverture du 1er UF mettre un condition d'ouverture du 2..
                  exemple :
                      Userform1.Show  
                      If LeDrapeau = True then  
                          Userorm2.Show  
                      End if

                  Ou bien..
                  Userform1.show
                  'Et dans le UF1 mettre sur un bouton ou une condition...
                      Me.hide  
                     Userform2.Show

                  Evidemment faut adapter tout ça au contexte.
                  A+

                  L'expérience instruit plus sûrement que le conseil. (André Gide)
                  Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
                  0
                  1. Je suis très surpris de ton affirmation, pour moi le code fonctionne très bien avec VBA 6.3 sous Excel.

                    Userform1 bouton 1 :
                    Private Sub CommandButton1_Click()
                        Unload UserForm1
                        UserForm2.Show
                    End Sub


                    Userform2 bouton 1 :
                    Private Sub CommandButton1_Click()
                        Unload UserForm2
                        UserForm1.Show
                    End Sub

                    On passe de l'un à l'autre sans problème !

                    Patrice.
                    0
                2. Salut merci pour ta réponse mais ce souci est régler, maintenant ce qui me fait une erreur c'est le multipage1 que j'ai dans mon userForm2 composer de 6 onglets

                  dés que je fait

                  Private Sub UserForm_Initialize()
                  
                  'bloque les onglets
                  MultiPage1.Pages(2).Enable = False
                  
                  End Sub


                  la ligne de code MultiPage1.Pages(2).Enable = False me crée clairement mon erreur vu que lorsque je la commente mon problème disparait.
                  Chose bizarre le débogueur me renvoie sur userform1 sur ma ligne userform2.show

                  Private Sub B_accepter_Click()
                  
                  UserForm2.Show
                  UserForm1.Hide
                  
                  End Sub


                  Donc voila ou j'en suis.
                  0
                  1. Re,

                    La bonne syntaxe est :
                    MultiPage1.Pages(2).Enabled = False

                    (Enabled au lieu de Enable)

                    Patrice
                    0
                    1. Merci Patrice c'était bien une bête et méchante erreurs de syntaxe.
                      0
                      1. De rien au plaisir de te relire sur ce forum

                        Cordialement
                        Patrice
                        0