boucle sur des texbox

  • Initiateur de la discussion Initiateur de la discussion Excalibur
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

Excalibur

Guest
Bonjour à tous,

J'ai un problème pour faire des boucles sur des textbox.
Je m'explique :

J'ai un userform avec 20 texbox nommées textbox1 à textbox20.
Quand j'initialise la userform je met la propiété 'enabled' à 'false' pour les textbox 2 à 20.

En fait j'aimerai que, lorsque l'utilisateur entre un texte dans textbox1, la propriété 'enabled' de textbox2 passe à 'true' et ainsi de suite. Peut-on le faire par une boucle et comment ?

Avez vous une idée sur la méthode à utiliser SVP?

Là, je suis vraiment sec.

Merci beaucoup.
 
Bonsoir,

Pour agir sur toutes les TexBox d'une UF (ou sur tout type de contrôle), tu peux parcourir la collection controls :

For Each ctrl In Me.Controls
If Left(ctrl.Name, 5) = 'TextB' Then
ctrl.visible= false
End If
Next ctrl

Dans ce cas, tous les contrôles de type TextBox auront leur propriété visible mise à False : ils deviennent invisibles.

Dans le cas que tu cites, je ne vois pas trop l'implication d'une boucle.
Il faut gérer TB par TB l'affichage de la suivante.

Dans l'évennement change de ton TB : TextBox2.enable=true

A moins qu'un honorable membre de cet assemblée n'ai une autre idée

Bonne soirée

Rai
 
Rebonjour,

J'ai trouvé comment faire la boucle :

Dim i As Integer
For i = 1 To 20
If Not Userform1.Controls('TextBox' & CStr(i)) = '' then
Userform1.Controls('TextBox' & CStr(i+1)).Enabled=True
Endif
Next

Le problème c'est que je ne vois pas dans quelle procédure mettre cette partie de code pour que cela soit exécuté à chaque fois qu'on renseigne une textbox de la userform ?

Merci d'avance si vous pouvez m'aider.

Exca.
 
Merci Rai pour ta réponse,

Je m'étais mal exprimé : en fait il y aura beaucoup plus de 20 textbox dans la feuille et je voulais juste éviter d'écrire à chaque fois :

Private Sub Textbox1_Change()

< code >

End Sub

Private Sub Textbox2_Change()

< code >

End Sub

..... et cetera

Si vous avez une idée, je suis preneur.

Exca.
 
Bonjour Hervé,

Désolé j'étais en train d'écrire un message sans voir ta réponse.
Je ne sais pas ce qu'est un module de classe mais je vais étudier le fichier que tu m'as envoyé : je sens que je vais être moins bete en me couchant tout à l'heure.

Merci beaucoup de toute façon pour vos réponses.

A+

Exca.
 
Merci beaucoup Hervé

J'ai récupéré ton fichier et c'est exactement ce que je voulais.
Par contre je ne comprend pas grand chose pour l'instant et comme j'aime bien comprendre je vais prendre le temps de bien analyser (avec l'aide incluse dans VBA) ce que tu as écrit.

Merci encore.

Exca.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
8
Affichages
1 K
Retour