Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Changer la couleurs du textbox selon la valeurs.

Ukiki

XLDnaute Nouveau
Bonjour,

Je me doute qu'il y a peut etre des messages déjà existant sur ce forum, mais je me dois de demander, cela fait plusieurs jours que je bute sur un problème :
Dans un de mes Userform, je dois changer la couleur du textbox selon une valeurs prise dans une cellule comparé a une autre écrite dans un second textbox :


Pour expliquer :
Dans un userform
On une valeurs dans une cellule A, écrite dans le textbox1
Dans le textbox5, on rentre une valeur x
Je souhaite que :
Pour une valeurs superieur ou égale a x +15 ou x -15, que la case soit coloré en rouge
Et que, pour une valeur comprise entre x -15 et x +15, la case soit coloré en bleu
Le code utilisé :
Private Sub TextBox5_Change()
Select Case Me.TextBox5.Value
Case Is > TextBox1.Value + 15
Me.TextBox5.BackColor = RGB(255, 0, 0)
Case Is < TextBox1.Value - 15
Me.TextBox5.BackColor = RGB(255, 0, 0)
Case Is = TextBox1.Value + 15 Or TextBox1.Value - 15
Me.TextBox5.BackColor = RGB(0, 0, 255)

End Select
End Sub

Dans ce cas, la case est toujours rouge, qu'importe le nombre.
J'ai essayé en utilisant les IF et END IF, mais cela ne fonctionne pas non plus.

Si une ame bienveillante pourrait m'apporter de l'aide, je lui en serais reconnaissant

Merci beaucoup
Ukiki
 

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Vous dites: "Je me doute qu'il y a peut etre des messages déjà existant sur ce forum".

Alors pourquoi ne pas aller les consulter, voir ce que vous pouvez adapter et revenir avec vos recherches et tentatives ???
Vous en apprendrez plus que si nous vous le mâchons.

Bonne journée
 

Ukiki

XLDnaute Nouveau
Bonjour
Justement, le code utilisé vient d'un topic ancien, je l'ai arrangé pour qu'il "fonctionne" lorsque je lui demande de colorisé le textbox quand la valeur est soit inférieur, supérieur ou égale (avec quelques défaut mineures), mais lorsque j'ai voulu rajouter les +15 et - 15 dans le champs, alors à chaque fois, la valeurs est rouge, même quand je ne le veux pas, j'ai essayé en changeant des parties ou en rajoutant d'autres, malheureusement, rien y fait.
Après, j'ai fais plusieurs forum, mais sans trouver quoi que ce soit, mais le monde étant vaste, j'ai pu passer à côté du bon topic dans mon voyage, mais ne trouvant pas, je préfère demander un coup de main
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

Les textbox ont pour valeurs des chaines de caractères et parfois cela induit des erreurs.

en plus court, sans garantie aucune et à vue de nez, puisqu'il n'y a pas de classeur exemple cela devrait le faire:

VB:
Private Sub TextBox5_Change()
TextBox5.BackColor = IIf(Val(TextBox5) > Val(TextBox1) + 15 Or Val(TextBox5) < Val(TextBox1) - 15, vbRed, vbBlue)
End Sub

Voir l'aide pour apprendre les limites de la fonction Val. Suivant le cas employer une autre fonction de conversion.

Bonne journée
 

Ukiki

XLDnaute Nouveau
Bonjour,

Après découverte et test, tout fonctionne, j'en profite pour mieux comprendre les fonctions IIF et Val (l'aide Microsoft explique plutôt bien, ces fonctions pourraient me servir encore un moment)
Merci pour le coup de main !

Bonne journée
 

Discussions similaires

Réponses
5
Affichages
90
Réponses
16
Affichages
834
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…