Changer la couleur d'un textbox en fonction de sa valeur

Bonjour, j'ai besoin de votre aide pour changer la couleur deux textbox en fonction de la valeur de ces deux textbox mais je n'y arrive pas. Il faut savoir qu'à l'ouverture du formulaire les texbox ont bien déjà leurs valeurs instancié. Mes 2 textbox sont txtProdJour et txtObjJour. Le but c'est que lorsque txtProdJour = txtObjJour les deux textbox deviennent vert, lorsque txtProdJour > txtObjJour les deux textbox deviennent vert et que txtProdJour = txtObjJour/2 ( quand txtProdJour = la moitié de ObjJour) les textbox deviennent rouge

Voici mon code :

Private Sub UserForm_Initialize()

Select Case Me.txtProdJour.Value
        Case Is = Me.txtObjJour.Value
            Me.txtProdJour.BackColor = vbGreen
            Me.txtObjJour.BackColor = vbGreen
        Case Is > Me.txtObjJour
            Me.txtProdJour.BackColor = vbGreen
            Me.txtObjJour.BackColor = vbGreen
        Case Is = Me.txtObjJour.Value / 2
            Me.txtProdJour.BackColor = vbRed
            Me.txtObjJour.BackColor = vbRed
 End Select
End Sub     

Quand j'exécute le programme quelque soit les valeurs des textbox elles restent vertes. Si quelqu'un peut m'aider.

Merci d'avance.

Bonjour,

Essaie avec ce code :

Select Case Val(Me.txtProdJour)
        Case Is = Val(Me.txtObjJour)
            Me.txtProdJour.BackColor = vbGreen
            Me.txtObjJour.BackColor = vbGreen
        Case Is > Val(Me.txtObjJour)
            Me.txtProdJour.BackColor = vbGreen
            Me.txtObjJour.BackColor = vbGreen
        Case Is = Val(Me.txtObjJour) / 2
            Me.txtProdJour.BackColor = vbRed
            Me.txtObjJour.BackColor = vbRed
 End Select

Merci pour ta réponse mais encore une fois malgré les valeurs des textbox, elles restent vertes, ça ne fonctionne pas

Re-,

Tu devines que j'avais essayé avant de poster...

Et comme tu n'avais pas joint de fichier exemple, je m'en étais créé un...

Et que dans mon fichier, ça fonctionne... (si bien sûr, la prod est bien strictement 2 fois moins que l'objectif....)

16stagiaire-v1.xlsm (16.76 Ko)

Oui j'ai bien vue mais ça ne fonctionne pas dans mon code je ne vois pas pourquoi

Re-,

on avance....

on est passé de :

ça ne fonctionne pas

à :

ça ne fonctionne pas dans mon code

Prochaine étape???? (avec un bout de ton fichier anonymisé???)

Oui si je pouvais vous envoyez le fichier je l'aurais fait mais c'est un fichier d'entreprise et je préfère ne pas l'envoyer. Pour vous donner une idée la partie de l'interface qui nous intéresse ici ressemble à ça :

image

Il faut savoir aussi que ces textbox sont codés avec des requêtes sql comme cela :

Dim requete As String
  Dim requete2 As String
With CreateObject("ADODB.Connection")
    requete = "SELECT ObjectifJour, NbMachineProduite FROM Production WHERE DateJour = CAST( GETDATE() AS Date)"
    .Open "Provider = SQLOLEDB;Server=<NomServeur>;Database=<NomBD>;Persist Security Into=False;Integrated Security=SSPI;"
    With .Execute(requete)

        If Not .EOF Then txtObjJour.Value = .Fields("ObjectifJour"): txtProdJour.Value = .Fields("NbMachineProduite")
        .Close
    End With
    .Close
End With

Et tout ce code ce fait dans le : Private Sub UserForm_Initialize() <- qui est le formulaire ou il y a l'interface du screen envoyé plus haut.

Est ce que ça t'aide à mieux comprendre le problème ?

Re-,

comme je ne peux pas connaître la valeur "exacte" des données...

essaie en remplaçant "Val" par "CDbl"

(Val renvoie un nombre entier, CDbl transforme la valeur "texte" en Double)

Ce bout de code est bien inséré après les lignes de requête?

Ok grosse boulette de ma part que tu m'as fait comprendre effectivement le code pour changer la couleur des textbox est écrit avant le code des requêtes SQL.

J'ai honte

Merci à toi je crois que j'aurais jamais trouvé sinon !

Rechercher des sujets similaires à "changer couleur textbox fonction valeur"