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

Fermé
@ntic - 31 janv. 2008 à 14:51
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 - 8 févr. 2008 à 21:39
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 !!
A voir également:

4 réponses

phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
31 janv. 2008 à 23:04
0
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
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
phil_232 Messages postés 286 Date d'inscription jeudi 6 décembre 2007 Statut Membre Dernière intervention 12 juin 2008 33
8 févr. 2008 à 21:39
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