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. 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
  2. Re,

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

    (Enabled au lieu de Enable)

    Patrice
    0
    1. 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. 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 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. du coup je ne sais plus si j'ai fait cette erreur mais je ne crois pas.
          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. 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. 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. 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. Bonjour,

                  Le Load n'est pas nécessaire.

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


                  ;o)
                  0
                  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