Code VBA applicable à toutes les TextBox d'un Userform

rounil09

XLDnaute Occasionnel
Bonjour la liste.

Le code ci-dessous fonctionne pour une textbox.

Je voudrais qu'il s'applique aux 34 Textbox de mon Userform.
Comment s'y prendre ?

Private Sub TextBox1_Change()
If TextBox1.Value = "Non" Then
TextBox1.ForeColor = &H808080
Else
TextBox1.ForeColor = &H0&
End If
End Sub

Par avance merci de votre aide
 

Dranreb

XLDnaute Barbatruc
Re : Code VBA applicable à toutes les TextBox d'un Userform

Bonsoir.
Il y a deux voies possibles.
1) - Déclarer une variable variable globale WithEvents TBx As MSForms.TextBox et veiller à ce que ce soit toujours le contrôle actif de l'UserForm par un code exécuté en permanence tant que celui ci est Affiché.
2) - Créer un module de classe contenant cette même déclaration et créer dans une table ou une collection un exemplaire de cet objet pour chacune des TextBox de l'UserForm.
 

rounil09

XLDnaute Occasionnel
Re : Code VBA applicable à toutes les TextBox d'un Userform

Merci Dranreb de ta réponse.
Mais je jette l'éponge. Cela fait 3 heures que je m'escrime dessus.
Je n'y arrive pas, malgré des exemples trouvés en ligne, peu ou prou transposables.
Tout simplement, j'ai pas le niveau pour m'en sortir.
Je vais donc faire les 34 macros, 1 par textbox.
C'est pas élégant, mais ça va fonctionner.
Tant pis pour le fun et l'efficacité !!!

Bien cordialement
 

néné06

XLDnaute Accro
Re : Code VBA applicable à toutes les TextBox d'un Userform

Bonjour Rounil09, Salutations Dranreb

Il est vrai que, comme le dit notre ami Dranreb au Post#4, une PJ aurait été plus explicative !
Je fais parvenir un petit exemple avec les 34 textbox pour voir le fonctionnement des modules de Classe.
Regardes et dis-nous si cela correspond aux besoins?

A+

René
 

Pièces jointes

  • Classe tb.xlsm
    19.6 KB · Affichages: 145

rounil09

XLDnaute Occasionnel
Re : Code VBA applicable à toutes les TextBox d'un Userform

Un grand merci (tardif) pour la réponse de néné06.
C'est pas tout à fait ce que je cherche, c'est proche.
En fait mes TextBox sont déjà renseignées et non modifiables.
Je pense pouvoir adapter ce code ; je ne connaissais pas le module de classe.
Donc affaire réglée...
A+
 

laetitia90

XLDnaute Barbatruc
Re : Code VBA applicable à toutes les TextBox d'un Userform

bonjour tous:eek:

salut néné :eek:

on pourrait simplifier un peu le code de le classe avec IIf

Code:
Option Compare Text
Public WithEvents txt As MSForms.TextBox
Private Sub txt_Change()
txt.BackColor = IIf(txt = "", &HFFFFFF, IIf(txt = "Non", &H8080FF, &HEEF00))
End Sub
 

Discussions similaires

Réponses
12
Affichages
460
Réponses
16
Affichages
504

Statistiques des forums

Discussions
312 348
Messages
2 087 508
Membres
103 568
dernier inscrit
NoS