changer la couleur d'une textbox selon une valeur

Neomajore

XLDnaute Nouveau
bonjour à tous, voila je suis pas mal embêté, je vous pose cette question malgrer toute les discutions parlant déjà de sa, mais mon soucis est que toute les solutions que j'ai trouver ne fonctionne pas.

mon but serais d'afficher une textbox montrant un pourcentage , si celui ci depasse l'objectif, il s'affiche en vert , sinon il s afficherais en rouge.
voici le code qui je le pensais étais peu être long, mais ne pouvais pas me générer d'erreur, mais celui ci me met " erreur de compilation , Else sans If" alors que le If est juste avant le Else ... :

If TextBox41.Value > 70 Then GoTo vert

ElseIf TextBox41.Value < 70 Then GoTo rouge

vert:
TextBox41.ForeColor = RGB(0, 255, 0)
TextBox41.BackColor = RGB(169, 255, 169)
GoTo fin

rouge:
TextBox41.ForeColor = RGB(255, 0, 0)
TextBox41.BackColor = RGB(169, 255, 169)
GoTo fin

fin:
End If

j'espère qu'une solution est possible, et je suis bien désoler de vous embêter avec sa , j'ai déjà essayé avec CDec... mais une fonction est manquante apparement.
 

Dull

XLDnaute Barbatruc
Re : changer la couleur d'une textbox selon une valeur

Salut Neomajore et Bienvenue, le Forum

Essaye peut-être comme cela
If TextBox41.Value > 70 Then GoTo vert Else GoTo rouge

vert:
TextBox41.ForeColor = RGB(0, 255, 0)
TextBox41.BackColor = RGB(169, 255, 169)
GoTo fin

rouge:
TextBox41.ForeColor = RGB(255, 0, 0)
TextBox41.BackColor = RGB(169, 255, 169)
GoTo fin

fin:

Bonne Journée
 

PrinceCorwin

XLDnaute Occasionnel
Re : changer la couleur d'une textbox selon une valeur

Bonjour,

Mieux vaux utiliser le select case:
VB:
Select Case Me.TextBox31.Value
    Case Is > 70
        Me.TextBox31.BackColor = RGB(0, 255, 0)
    Case Is <= 70
        Me.TextBox31.BackColor = RGB(255, 0, 0)
End Select

@Plus


Edit : Bonjour Dull
 

WUTED

XLDnaute Occasionnel
Re : changer la couleur d'une textbox selon une valeur

Bonjour Neomajore, Dull, PrinceCorwin , le forum

Je suis débutant en VBA mais j'ai lu par ci par là qu'il était trés déconseillé d'utiliser des GoTo, surtout que dans ta situation, je trouve ça assez inutile de s'embêter avec des étiquettes, pourquoi n'écris-tu pas un code plus simple, comme :
Code:
If TextBox41.Value > 70 Then 
  TextBox41.ForeColor = RGB(0, 255, 0)
  TextBox41.BackColor = RGB(169, 255, 169)
ElseIf TextBox41.Value < 70 Then 
  TextBox41.ForeColor = RGB(255, 0, 0)
  TextBox41.BackColor = RGB(169, 255, 169)
End if

C'est simple, et ça fonctionne trés bien chez moi :cool:

Bonne journée,
WUTED
 

Neomajore

XLDnaute Nouveau
Re : changer la couleur d'une textbox selon une valeur

Merci pour vos réponse rapide, pour la solution de Dull , sa ne fonctionne pas, quoi qu'il arrive sa m'affiche ma valeur en vert

pour la solution de prince, je connaissais pas et je ne connais toujours pas Select Case , je me documente la dessus et je vous tiens au courant
 

Neomajore

XLDnaute Nouveau
Re : changer la couleur d'une textbox selon une valeur

Bon bah sa marche, erreur de ma part finalement, je me suis dit : " bizarre que sa marche ailleur et pas chez moi ! "

Mais en fait ma valeur était pas prise en compte a cause du pourcentage.
En effet, je demande d'afficher une cellule qui contient du chiffre et du texte :
=CONCATENER(ARRONDI(C5;0);" %")
sans le texte sa marche parfaitement, merci de votre aide , j'afficherai mon pourcentage autrement =p
 

PrinceCorwin

XLDnaute Occasionnel
Re : changer la couleur d'une textbox selon une valeur

Bonjour,

Pourquoi concatener dans un textbox ??
utilise de préférence le formatage des résultats:
en excel
Code:
=texte(arrondi(C5;0);"#,##0.00%")
ou en VBA
Code:
me.textebox31 = format(application.round(sheets("mafeuille").range("C5"),0),"#,##0.00%")

@Plus
 

Neomajore

XLDnaute Nouveau
Re : changer la couleur d'une textbox selon une valeur

concatener étais dans une formule, qui me donne un pourcentage, ma textbox m'affiche juste le contenue de la formule.

Sympa ton idée par contre, elle va m’économisé des cellules car je me suis casser la tête et je suis partie trop loin faut croire.

De toute, maintenant sa marche, sa faisais quand même 3 jours que je tournais en rond sur des forums a lire des post pour tenter ma macro, merci a tous pour votre aide qui, sans elle m'aurais fait perdre encore pas mal de temps .
 

Lanza mario

XLDnaute Nouveau
Bonjour du forum
j'i crée une userform avec plusieurs texbox pour rentrer des donne. j'ai attribue a une tex box une donne de référence de 0.9 et je voudrais que quand je rentre des donnee qui dépassent le 0.9 les autre textbox se mettent en rouge pour me donner une alerte.
j'ai essaye ce code

If TextBox36.Value = "" Or TextBox90.Value = "" Then
X = 0
Else
X = TextBox36.Value - TextBox36.Value
End If

If X < 0.9 Or TextBox36.Value = "" Then
TextBox36.BackColor = &HFFFFFF
Else
TextBox36.BackColor = &HFF&
MsgBox ("Attention, tollerance maxi")
End If
mais ne marche pas, par contre si je change le 0.9 en 10 cela fonctionne; pouvez vous m'aider SVP
merci pour la reponse
 

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 840
Membres
103 972
dernier inscrit
steeter