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

XL 2019 Texbox en couleur suivant conditions

  • Initiateur de la discussion Initiateur de la discussion Mapat
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Mapat

XLDnaute Occasionnel
Bojour

J'ai adapté un formulaire créé par Mr Boisgontier
Serait-il possible, suivant la réponse qui est en colonne E (Oui ou Non) que le texBox
correspondant sur le formulaire se mette en couleur : Oui = fond jaune et police rouge

En vous souhaitant une bonne soirée

Cordialement
 

Pièces jointes

Solution
bonsoir
VB:
Private Sub Colonne5_Change()
    If Colonne5 = "Oui" Then
        Me.Colonne5.BackStyle = fmBackStyleOpaque
        Me.Colonne5.BackColor = &H80FFFF
        Me.Colonne5.ForeColor = &HFF&
    Else
        Me.Colonne5.BackStyle = fmBackStyleTransparent
        Me.Colonne5.BackColor = &H80000005
        Me.Colonne5.ForeColor = &H0&
    End If
End Sub
re
me.controls(colonne5.tabindex-1).propriété
a condition que tu n'est pas construit ton userform et Control comme un chapacan et que le tableau (tabindex) soit cohérent (dans l'ordre) sinon tu sera obligé de le nommer explicitement
 
Re

Alors ajoute ce code dans celui de l'userform
VB:
Private Sub couleur()
 With Me.Colonne4
        .BackStyle = IIf(Colonne5 = "Oui", fmBackStyleOpaque, fmBackStyleTransparent)
        .BackColor = IIf(Colonne5 = "Oui", &H80FFFF, &H80000005)
        .ForeColor = IIf(Colonne5 = "Oui", &HFF&, &H0&)
    End With
End Sub
puis cette ligne dans la procédure nommée Private Sub CléCherchée_click()
VB:
 Select Case TypeName(c)
           Case "TextBox", "ComboBox"
             Me(nom_control) = f.Cells(ligneEnreg, col)
             couleur '<- ajout à faire ici
           Case "Frame"

NB: Donc reprendre le code initial présent dans ta PJ du premier message
Et faire juste ces deux ajouts.

Test OK sur mon PC.
 
re
exemple le texte box change la couleur du précédent si "oui"
VB:
Private Sub tous_Change(txtb, bkcolor, fontcolor, mot$)
    Dim X
   X = Abs(LCase(Me.ActiveControl.Value) = mot)
        With txtb
         .BackStyle = X
        .BackColor = bkcolor
        .ForeColor = fontcolor(X)
    End With
End Sub

Private Sub colonne2_Change()
    tous_Change colonne1, vbYellow, Array(vbBlack, vbRed), "oui"
End Sub

Private Sub colonne3_Change()
    tous_Change colonne2, vbYellow, Array(vbBlack, vbRed), "oui"
End Sub

Private Sub colonne4_Change()
    tous_Change colonne3, vbYellow, Array(vbBlack, vbRed), "oui"
End Sub
Private Sub colonne5_Change()
    tous_Change colonne4, vbYellow, Array(vbBlack, vbRed), "oui"
End Sub

ca peut fonctionner avec les combobox aussi 😉
 
re
ouais mais la ça n'est pas du kiss
le K.I.S.S serait de faire x sub ou fonction faisant la même chose pour x control
😉
D'autant plus que la sub générique utilisant le bouleen est certainement moins lourde qu'un "IIF(...,...,...)"même si dans le cas présent ca représente un quart de pois chiche
 
Re

D'ailleurs, je me suis fait un noeud aussi
En ajoutant juste cette procédure, je rends hommage à Gribouille 😉
VB:
Private Sub CléCherchée_AfterUpdate()
With UserForm1.Colonne4
        .BackStyle = IIf(Colonne5 = "Oui", fmBackStyleOpaque, fmBackStyleTransparent)
        .BackColor = IIf(Colonne5 = "Oui", &H80FFFF, &H80000005)
        .ForeColor = IIf(Colonne5 = "Oui", &HFF&, &H0&)
    End With
End Sub
 
re
VB:
Private Sub CléCherchée_AfterUpdate()
With UserForm1.Colonne4
        .BackStyle = Colonne5 = "Oui"
        .BackColor = array(&H80FFFF, &H80000005)(abs(Colonne5 = "Oui"))
        .ForeColor =array(&HFF&, &H0&)(abs(Colonne5 = "Oui"))
    End With
End Sub

😉 😛 😛 😛 😛
bon d'accords je sort 😉
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…