Colorer TexBox sous condition

Bonjour à Toutes et à tous,

Voilà j'ai un user form avec deux combo en cascade qui affiche dans des textboxs, j'aimerais pouvoir colorer en rouge (fond) ces dernière, selon si un mot est mentionné sur la même ligne.

Je met fichier joint avec une image pour mieux comprendre.

Et si le temps j'ai mis une série de 5 butons sur false a l'ouverture, je sais pas si on peu les faire fonctionner avec les combobox, c'est a dire que si on sélectionne aaaa dans la combo 1 on a 2 choix dans la combo 2 soit 1 et 2, donc les butons 1 et 2 devrons s'afficher et faire office de la combo2.

Voila toute aide sera la bienvenue, merci

9muratime-v2.zip (45.92 Ko)

Bonjour

Un essai à tester. Te convient-il ?

Bye !

13muratime-v3.zip (28.20 Ko)

Merci gmb c'est quasi ça

J'ai du coup changé comme ça pour je voulais le fond en rouge , et pour les boutons c'est possible de faire quelque chose ?

 If TV(I, 5) = "forfait" Then
                Controls("TextBox" & T1).BackColor = RGB(255, 0, 0)
                Controls("TextBox" & T2).BackColor = RGB(255, 0, 0)
            Else
                Controls("TextBox" & T1).ForeColor = RGB(0, 0, 0)
                Controls("TextBox" & T2).ForeColor = RGB(0, 0, 0)

et ça dans le sub pour effacer le fond une fois un choix modifié dans un combobox et lui remet un fond blanc.

Public Sub Effac()
Dim J As Byte 'déclare la variable J (incrément)

For J = 1 To 10 'boucle sur les 8 textboxes de l'UserForm1
    UserForm1.Controls("TextBox" & J).Value = "" 'efface la TextBox de la boucle
    UserForm1.Controls("TextBox" & J).BackColor = RGB(255, 255, 255)
Next J 'prochaine colonne de la boujcle 2
End Sub
muratime a écrit :

t pour les boutons c'est possible de faire quelque chose ?

En fait, je ne suis pas sûr d'avoir compris.

Alors, un essai à tester :

Bye !

7muratime-v4.zip (28.52 Ko)

C'est presque ça en faite, il faut afficher les boutons à la hauteur des items de la combo2 par exemple si tu choisi dddd dans la combo 1 le choix de la combo2 sera 7-8-9 donc ça sera 3 items si je puis dire donc 3 boutons qui s'affiche bouton 1.2.3 et le faite de cliquer sur le bouton 1.2 ou 3 me changera aussi la combo2 comme un va et vient.

Bonjour

Nouvel essai.

Bye !

10muratime-v5.zip (29.92 Ko)

Bon bah Nickel ça marche impeccable GMB

Sinon j'essai ça, mais ça ne fonctionne pas, si je met plusieurs choix une idée ?

If TV(I, 41) = "1" or "2" or "3" Then
           Controls("TextBox" & T32).ForeColor = RGB(255, 255, 0)

      Else
           Controls("TextBox" & T32).ForeColor = RGB(0, 128, 0)

      End If

Et une dernière chose si je veux colorer en orange par exemple, le bouton qui contient la ligne forfait, quelle est la procédure ?

Je ne sais pas ce que tu veux faire avec de telles instructions mais ta variable tableau TV est définie avec 5 comme valeurs de 2° dimension : il y a 5 colonnes au tableau de données.

Donc, écrire " TV(I, 41) " ne peut conduire qu'à un bug.

Bye !

En faite c'est pas ça que je voulais je m'y perd excuse moi, c'était juste la question du bouton si je veux colorer le bouton en orange par exemple qui contient la ligne forfait ce serais quoi la procédure ?

C'est a dire au même niveau que ici j'imagine dans la combo1 le code que tu as fais.

For n = 1 To 10
        Controls("Button" & n).Visible = False

    Next n
    For n = 0 To D.Count - 1
        Controls("Button" & n + 1).Visible = True

    Next n

et j'avais tenté un essai comme ça mais ça fonctionne pas

If TV(I, 5) = "forfait" Then 
                     Controls("CommandButton" & n).BackColor = RGB(255, 128, 0)

            Else
                      Controls("CommandButton" & n).BackColor = RGB(255, 0, 255)

            End If

Nouvelle version.

Bye !

8muratime-v6.zip (30.35 Ko)

Ok merci gmb par contre doit y avoir un truc qui cloche, si tu choisi combo 1 bbbb et n'importe quel index dans combo2 il n'y a aucun mot forfait donc les boutons devraient resté couleur d'origine !

Nouvel essai.

Bye !

10muratime-v7.zip (29.94 Ko)

Ok merci gmb ça fonctionne presque bien par contre pourquoi si je met ce code là dans combo 1 cela ne fonctionne pas ? Car le changement de couleurs doit se faire quand la combo1 est chargé et ne rien faire dans la combo2.

Si on regarde aaaa et les deux index 1 et 2 on devrait avoir les deux boutons affiché en rose quand la combo1 est chargé !

Sinon inutile de remettre la réinitialisation des textboxs elle se fait avec le Public Sub Effac()

If TV(I, 5) = "forfait" Then
                Controls("TextBox" & T1).BackColor = RGB(255, 0, 0)
                Controls("TextBox" & T2).BackColor = RGB(255, 0, 0)
                Controls("CommandButton" & ComboBox2.ListIndex + 2).BackColor = RGB(255, 0, 255)
            Else
                Controls("TextBox" & T1).BackColor = RGB(255, 255, 255)
                Controls("TextBox" & T2).BackColor = RGB(255, 255, 255)
            End If

J'ai changé ça aussi pour que la combo 2 ne soit jamais vide au changement de la combo1

If Me.ComboBox2.ListCount > 1 Then Me.ComboBox2.ListIndex = 0

Bonjour

J’avais cru comprendre que tu voulais que le changement de couleur du bouton soit associé à la présence du mot « forfait » dans les opportunités qu’il offre.

N’as-tu pas écrit dans ton message de hier à 13h49 :

si tu choisi combo 1 bbbb et n'importe quel index dans combo2 il n'y a aucun mot forfait donc les boutons devraient resté couleur d'origine !

J’ai du mal à me faire une idée précise du fonctionnement que tu veux obtenir.

Désolé.

Bye !

En faite est ce que ce serait possible de mettre le code ci dans la combo1 au lieu de la combo2 ?

If TV(I, 5) = "forfait" Then
                Controls("TextBox" & T1).BackColor = RGB(255, 0, 0)
                Controls("TextBox" & T2).BackColor = RGB(255, 0, 0)
                Controls("CommandButton" & ComboBox2.ListIndex + 2).BackColor = RGB(255, 0, 255)
            Else
                Controls("TextBox" & T1).BackColor = RGB(255, 255, 255)
                Controls("TextBox" & T2).BackColor = RGB(255, 255, 255)
            End If
muratime a écrit :

En faite est ce que ce serait possible de mettre le code ci dans la combo1 au lieu de la combo2 ?

Qui t'empêche ? Essaie !

Bye !

C'est ce que j'ai fais mais ça bug sur ça

If TV(I, 5) = "forfait" Then

Je ne vois pas pourquoi il peut y avoir un bug sur cette instruction.

Bye !

je l'ai mis à la fin du combo 1 dans le fichier et ça bug j'ai essayer de mettre ailleurs de combo1 mais idem

10muratime-v7.zip (20.96 Ko)

Effectivement, dans ta macro, lorsque la macro veut exécuterl'instruction

If TV(I, 5) = "forfait" Then

la valeur de I est de 27 alors que la dimension 1 de Tv est de 26. D'où le bug.

Mais tu ne m'as toujours pas expliqué ce que tu veux obtenir...

Bye !

Rechercher des sujets similaires à "colorer texbox condition"