Menu

Une même formule pour plusieurs Textbox

- - Dernière réponse :  Gustav - 6 janv. 2019 à 16:09
Bonjour et bonne année à tous et merci pour votre aide.
Voilà ma question :
J'ai une formule pour colorer les polices :
Private Sub TextBox1_Change()
If TextBox1.Value = 0 Then
Me.Textbox1.ForeColor = vbWhite
Else
End If
End Sub
Je voudrais que cette formule s'applique à 10 TextBox.
Je ne me vois pas la recopier 10 fois.
Il y a t-il un moyen pour regrouper les 10 TextBox dans une même formule couleur.
Un grand merci à vous
Bonne journée
Gustav
Afficher la suite 

Votre réponse

4 réponses

Messages postés
346
Date d'inscription
mardi 5 juin 2018
Dernière intervention
10 janvier 2019
27
0
Merci
Bonjour,

Est-ce que tes textboxes sont sur un userform ? Est-ce que tu as d'autres textboxes pour lesquels tu ne souhaites pas que la couleur change ? Dans ce cas, il me faut le noms des textboxes concernés.

Cordialement.

Daniel
Commenter la réponse de danielc0
0
Merci
Merci pour ta réponse rapide.
Oui, tous les textBox sont sur le même UserForm6.
Ils sont tout simplement numérotés de 1 à 10 : TextBox1, TextBox2, etc... et sont tous concernés par la même formule, à savoir :
Private Sub TextBox1_Change()
If TextBox1.Value = 0 Then
Me.Textbox1.ForeColor = vbWhite
Else
End If
End Sub
Je te remercie pour ta précieuse aide
Gustav
danielc0
Messages postés
346
Date d'inscription
mardi 5 juin 2018
Dernière intervention
10 janvier 2019
27 -
A l'initialisation du userform, mets ce code :

Dim GrTB() As New MesTextboxes
Private Sub UserForm_Activate()
Dim C As Control, i As Integer
For Each C In Me.Controls
    If Left(C.Name, 7) = "TextBox" Then
        ReDim Preserve GrTB(i)
        Set GrTB(i).tbx = C
        i = i + 1
    End If
Next
End Sub


Ajoute un module de classe et renomme-le "MesTextboxes". Dans ce module, mets :

Public WithEvents tbx As MSForms.TextBox
Private Sub tbx_change()
    If tbx.Value = "0" Then tbx.ForeColor = vbWhite
End Sub


Si tu rencontres des difficultés, dis-le.

Daniel
Commenter la réponse de Gustav
0
Merci
Merci Daniel. Sympa! Je regarde et je te tiens au courant!
Commenter la réponse de Gustav
0
Merci
Je viens d'essayer tes deux formules comme tu l'as bien décrit.
Mais désolé ça ne marche pas!
Le but est, comme expliqué plus haut, si dans un textbox j'ai la valeur 0, cette dernière ne s'affiche pas (elle est en fait de couleur blanche).
Au dessus de cette valeur 0, elle devient noire.
Ceci appliqué à 10 TextBox
Merci encore de te filer du travail un dimanche!
Gustav
Commenter la réponse de Gustav