TextBox en lettres rouges

Bonjour à vous tous et, tout d'abord, merci pour votre aide.

J'essaie de faire en sorte que le texte d'une TextBox dans un UserBox soit en lettres rouges. J'ai testé avec plusieurs codes mais sans succès:

Private Sub UserForm_Initialize()

UserFormNUMLIM = Sheets("VALIDATION").Range("V2") 'Je reprends la cellule V2 et informe l'utilisateur d'une erreur

TextBoxNUMLIM.ForeColor = vbRed 'Je demande à ce que l'info de la textbox NUMLIM soit en rouge.

End Sub

Comme cela ne marche pas, j'ai testé:

Private Sub UserFormNUMLIM_Change() 

If Len(TextBoxNUMLIM) = "Attention!" Then TextBoxNUMLIM.ForeColor = RGB(255, 0, 0) 

End If 

End Sub

Mais dans ce deuxième cas j'ai un retour d'erreur VBA à cause du "End If".

Est-ce qu'il y aurait une autre solution pour que la TextBoxNUMLIM soit en lettres rouges?

D'avance merci.

patrick

Bonjour,

Mais dans ce deuxième cas j'ai un retour d'erreur VBA à cause du "End If".

Ton End if ne sert a rien car le resultat de ton if est juste derriere Then:

'Soit :
If Len(TextBoxNUMLIM) = "Attention!" Then TextBoxNUMLIM.ForeColor = RGB(255, 0, 0) 

'Soit :
If Len(TextBoxNUMLIM) = "Attention!" Then 
TextBoxNUMLIM.ForeColor = RGB(255, 0, 0) 
End If 

Ta couleur n'est pas le soucis ici. (enfin le "Len" compte le nombre de caractere donc ne sera jamais égal a "Attention !")

A+

Effectivement, merci pour le Len.

J'ai modifié par :

Private Sub TextBoxNUMLIM_Change()

If Len (TextBoxNUMLIM) <> 1 Then TextBoxNUMLIM.ForeColor = RGB(255, 0, 0)

End Sub

Mais le texte reste toujours en gris.

Dans ce cas je lui dis que si il y a du texte, que le TextBoxNUMLIM soit en lettres rouges. Non?

Merci.

Alors l'action se fera si le texte dans TextBoxNUMLIM change car :

Private Sub TextBoxNUMLIM_Change()

Si une fois le texte changé le nombre de caractere est différent de 1 alors ce texte est rouge.

If Len (TextBoxNUMLIM) <> 1 Then TextBoxNUMLIM.ForeColor = RGB(255, 0, 0)

Pour moi si c'est encor Gris soit :

Tu ne changes pas le texte et du coup la procedure ne se lance pas

soit : ce que tu as ecrit a 1 seul caratere et la procedure fonctionne

soit : ton "TextBoxNUMLIM" n'est pas exactement le nom de ton objet.

Pour tester clic sur le bord te ta ligne pour marquer un stop dans la procedure et change le texte ensuite a coup de touche [F8] tu vas voir si le texte rouge est bien pris en compte.

image

On va y arriver.

En fait, le UserForm s'ouvre une fois que le fichier excel rempli une condition: cellule A1 = "OK".

Dans cet UserForm, la TextBoxNUMLIM reprend la valeur de la cellule V2. Donc effectivement, le texte de la textbox ne change pas, donc ne peut pas devenir rouge (merci de ta précision).

C'est dans cette optique que j'étais parti sur Private Sub UserForm_Initialize(). De ce fait, au lancement du UserForm je demande à ce que la TextBoxNUMLIM soit en lettres rouges:

Private Sub UserForm_Initialize()

TextBoxNUMLIM = Sheets("VALIDATION").Range("V2") 'Je reprends la cellule V2 et informe l'utilisateur d'une erreur

TextBoxNUMLIM.ForeColor = vbRed 'Je demande à ce que l'info de la textbox NUMLIM soit en rouge.

End Sub

Le texte de la cellule V2 est bien présent mais n'est pas en rouge.... Why?

Je tiens à préciser que le TextBoxNUMLIM est en Enabled: False dans les propriétés car je ne veux pas que l'utilisateur puisse le modifier.

PAtrick.

Effectivement, on va trouver

Tu as essayé TextBoxNUMLIM.enabled = true ?

A ma connaissance pas possible de changer la couleur d'un textbox verrouillé.

Essai de changer Locked avec un Si plutot que de mettre Enabled.

image

Super, on se voit à quelle heure pour la p'tite bière que je te dois???

C'était "juste" le fait de l'avoir mis en False.

Merci pour ton aide!

Parfait, tu peux déja sortir les glaçons j'arrive.

Rechercher des sujets similaires à "textbox lettres rouges"