Excel VBA - Multipages

Anonyme
2022-04-12T16:54:42+00:00

Bonjour,

Je ne sais pas s'il y a un bug avec mon Excel VBA, mais je ne réussi pas à effacer le contenu des TextBox page par page. J'ai essayé avec les deux codes ci-dessous.

Userform = Données_sondage

Multipage = Multipage1

Pages = Section 1, Section 2, Section x

Les boutons sont sur chacune des sections. J'ai toujours le même message = Erreur 424 objet requis (voir en rouge et image ci-dessous).

'Effacer toutes les TextBox dans la Section 1

Private Sub CommandButton1_Click()

MsgBox "Êtes-vous certain de vouloir supprimer le contenu de cette page ?", vbYesNo + vbCritical

'Dim C As Control, P

'For Each C In UserForm1.MultiPage1("Données_sondage").Pages("Section 1")

'For Each C In P.Controls

'If TypeOf C Is MSForms.TextBox Then 

'C.Value = "" 

'End If 

'Next C

'Next P

Dim c As Control

For Each c In UserForm.MultiPage1("Données\_sondage").Pages("Section 1").Controls 

    If TypeOf c Is MSForms.TextBox Then 

        c.Value = "" 

    End If 

Next c 

End Sub

Microsoft 365 et Office | Excel | Other | Windows

Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.

0 commentaires Aucun commentaire

14 réponses

  1. Anonyme
    2022-04-13T14:33:58+00:00

    Bonjour,

    Je tente d'effacer les textbox qui se trouvent dans une page d'une multipage. Et veux répéter cette action dans chacune des pages par la suite. J'ai donc :

    6 pages : Section 1, Section 2, etc.

    Mon userform : Données_sondage

    Ma multipage = Multipage1

    Un bouton effacer : sur chaque page (le code débute avec le bouton effacer : Private Sub CommandButton1_Click()

    Si je laisse le p = 2 for pas compatible

    Si j'enlève le p = objet requis en rouge (pour les deux codes)

    Des solutions ? Merci


    'Effacer toutes les TextBox de la Section 1

    Private Sub CommandButton1_Click()

    MsgBox "Êtes-vous certain de vouloir supprimer le contenu de cette page ?", vbYesNo + vbCritical

    Dim c As Control, p

    For Each c In Données_sondage.MultiPage1("Données_sondage").Pages("Section 1")

    For Each c In p.Controls

    If TypeOf c Is MSForms.TextBox Then

    c.Value = ""

    End If

    Next c

    Next p


    'Dim c As Control

    'For Each c In Données_sondage.MultiPage1("Données_sondage").Pages("Section 1").Controls

    'If TypeOf c Is MSForms.TextBox Then

    'c.Value = ""

    'End If

    'Next c

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2022-04-13T07:38:41+00:00

    Bonjour,

    Peux-tu partager le classeur ?

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2022-04-12T19:56:35+00:00

    Daniel,

    Je viens de penser au code

    Private Sub CommandButton1_Click() C'est le bouton exit

    Est-ce que le code doit partir du formulaire ou du bouton qui est dans la multipage ? Si c'est le cas, doit-on enlever userform du code ?

    Merci

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2022-04-12T17:45:07+00:00

    Merci Daniel mais :(

    Si je laisse le p = 2 for pas compatible et si j'enlève le p = objet requis en rouge


    'Effacer toutes les TextBox de la Section 1

    Private Sub CommandButton1_Click()

    MsgBox "Êtes-vous certain de vouloir supprimer le contenu de cette page ?", vbYesNo + vbCritical

    Dim c As Control, p

    For Each c In Données_sondage.MultiPage1("Données_sondage").Pages("Section 1")

    For Each c In p.Controls

    If TypeOf c Is MSForms.TextBox Then 
    
    c.Value = "" 
    
    End If 
    

    Next c

    Next p


    'Dim c As Control

    'For Each c In Données\_sondage.MultiPage1("Données\_sondage").Pages("Section 1").Controls 
    
        'If TypeOf c Is MSForms.TextBox Then 
    
            'c.Value = "" 
    
        'End If 
    
    'Next c 
    

    End Sub

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  5. DanielCo 107.7K Points de réputation
    2022-04-12T17:18:18+00:00

    Bonjour Denis,

    Te userformes ne s'appllent ni "userform" ni "ussrform1". Il faut mettre par exemple :

    For Each C In Données_sondages.MultiPage1("Données_sondage").Pages("Section 1")

    Daniel

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire