[VBA Excel] Ré-init ts txtBox MultiPage en 1x

Bonjour,

Comment réinitialiser tous les TexBox d'une Page (d'une MultiPage) en une seule commande ?

J'ai créé une multi-page.
Dans une certaine page, j'ai beaucoup de zones que l'utilisateur doit encoder.
J'aimerais, lorsque l'utilisateur clique sur le bouton Annuler, que toutes les zones soient ré-initialisées.
Y a-t-il un moyen de le faire en une fois, j'ai pas trop envie de prendre zone par zone et faire TextBox=""

Merci de votre attention !!
Configuration: Windows XP
Internet Explorer 6.0

4 réponses

  1. Ai essayé de deux manières, mais ça ne fonctionne pas ....
    Ai aussi essayé avec ctrls.Value="", ça ne marche pas non plus ...

    Est-ce parce que mon FrmPlainte est un formulaire multi-pages ?

    Private Sub CmdAnnul_Click()
    Dim ctrls As Control
    For Each ctrls In FrmPlainte.Controls
    If Left$(ctrls.Name, 7) = "TextBox" Then
    ctrls.Text = ""
    End If
    Next

    'For Each Ctrls In Controls
    ' If TypeOf Ctrls Is TextBox Then
    ' Ctrls.Text = ""
    ' ElseIf TypeOf Ctrls Is ComboBox Then
    ' Ctrls.Clear
    ' End If
    'Next

    End Sub

    J'ai bien regardé dans les différents messages qui parlent de ça.
    Je ne comprends pas pq ça ne fonctionne pas chez moi ...
    Si qqn peut m'éclairer ?
    0
    1. J'ai trouvé !

      1°) En fait, j'ai un un miltipage et aussi des formulaires dans un formulaire.
      Ce qui veut dire qu'il faut le faire au niveau du formulaire enfant et pas du formulaire parent comme je faisais (FrmPlainte).
      Je n'avais pas su le déchiffrer dans les autres messages du forum, mais voilà, maintenant c'est bon

      2°) De plus, avec TypeOf, ça ne fonctionne pas, mais bien avec left$.
      Mais j'ai dû encore changer car les noms de mes TextBox sont du style BoxNomPlgt, BoxPrenomPlgt et mes comboBox du style CboVillePlgt, CboCodePostPlgt, ...

      Donc, avec le code ci-dessous, ça marche !
      For Each ctrls In FrmPlaignant.Controls
      If Left$(ctrls.Name, 3) = "Box" Then
      ctrls.Text = ""
      ElseIf Left$(ctrls.Name, 3) = "Cbo" Then
      ctrls.Text = ""
      End If
      Next
      For Each ctrls In FrmContrevenant.Controls
      If Left$(ctrls.Name, 3) = "Box" Then
      ctrls.Text = ""
      ElseIf Left$(ctrls.Name, 3) = "Cbo" Then
      ctrls.Text = ""
      End If
      Next
      For Each ctrls In FrmPlainte.Controls
      If Left$(ctrls.Name, 3) = "Box" Then
      ctrls.Text = ""
      ElseIf Left$(ctrls.Name, 3) = "Cbo" Then
      ctrls.Text = ""
      ElseIf Left$(ctrls.Name, 5) = "Check" Then
      ctrls.Value = False
      End If
      Next

      Ouf, voilà un problème résolu.
      Merci pour les recherches !
      0
      1. si tu utilise les préfix standard de MS tu pourrais écrire

        select case left(ctrls.Name, 3)
        case "cbo", "txt" : ctrls:Text = ""
        case "chk" : ctrls.Value = False
        end select
        0

        Discussions similaires

        Qualité T.S

        8 réponses