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

XL 2019 Formulaire Excel - TxtBox avec couleur de la celle associée

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 !

L

Lindsay_RBD

Guest
Bonjour à tous,

Je suis actuellement entrain de travailler sur un nouveau formulaire. Je vais essayer d'être la plus claire possible pour vous expliquer mon problème :

Lorsque je clique sur le bouton "Rechercher une référence", un formulaire s'ouvre. J'inscris mon numéro de lot et celui-ci m'indique différentes données donc le statut des lots associés (rouge, orange ouvert).
Une référence a 11 numéro lot. Chaque lot est associé à un TxtBox dans mon formulaire.

Malheureusement, je n'arrive pas à associer l'ensemble de mes numéros de lot, à la bonne couleur de mon tableau Excel.

Le formulaire "Rechercher un lot" fonctionne cependant parfaitement bien et associe bien la couleur.

Actuellement mon code ressemble à ceci, et je pense avoir un soucis au niveau du If/Then/Else :
VB:
Private Sub btn_rechercher_Click()
Dim sel As Range, col As Long

Sheets("Suivi des lots").Select

On Error Resume Next 'éviter une erreur si "co = sel column" ne trouve pas la colonne
        Set sel = Sheets("Suivi des lots").Range("C6:CZ6").Find(Me.RefMatiere.Value, , xlValues, xlWhole)
    col = sel.Column 'identifier la colonne correspondante au résultat de recherche
    
    If sel Is Nothing Then _
        NumLotMatiere1.BackColor = RGB(255, 0, 0)
        NumLotMatiere2.BackColor = RGB(255, 0, 0)
        NumLotMatiere3.BackColor = RGB(255, 0, 0)
        NumLotMatiere4.BackColor = RGB(255, 0, 0)
        NumLotMatiere5.BackColor = RGB(255, 0, 0)
        NumLotMatiere6.BackColor = RGB(255, 0, 0)
        NumLotMatiere7.BackColor = RGB(255, 0, 0)
        NumLotMatiere8.BackColor = RGB(255, 0, 0)
        NumLotMatiere9.BackColor = RGB(255, 0, 0)
        NumLotMatiere10.BackColor = RGB(255, 0, 0)
        NumLotMatiere11.BackColor = RGB(255, 0, 0)
        
    Else
        DesignMatiere = Cells(7, col).Value
        NumLotMatiere1 = Cells(9, col).Value
            With NumLotMatiere1
            .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
           End With
    
        NumLotMatiere2 = Cells(10, col).Value
        With NumLotMatiere2
           .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
        End With

        NumLotMatiere3 = Cells(11, col).Value
        With NumLotMatiere3
           .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere4 = Cells(12, col).Value
        With NumLotMatiere4
          .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere5 = Cells(13, col).Value
        With NumLotMatiere5
            .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere6 = Cells(14, col).Value
        With NumLotMatiere6
            .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere7 = Cells(15, col).Value
        With NumLotMatiere7
            .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere8 = Cells(16, col).Value
        With NumLotMatiere8
        .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere9 = Cells(17, col).Value
        With NumLotMatiere9
            .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere10 = Cells(18, col).Value
        With NumLotMatiere10
           .BackColor = IIf(sel.Interior.ColorIndex = 50, &HC000&, _
                             IIf(sel.Interior.ColorIndex = 45, &H80FF&, &HFF&))
            End With

        NumLotMatiere11 = Cells(19, col).Value
        With NumLotMatiere11
            .BackColor = IIf(sel.Interior.Color = 50, &H33CC33, _
                            IIf(sel.Interior.ColorIndex = 45, &H128AE4, &H808080))
            End With
    End If
          
End Sub

Je vous joins le fichier Excel.

Je vous remercie par avance pour votre aide ! 🙂
 

Pièces jointes

Bonjour
Une version revue et qui ne plante plus.
Bonjour Yal 🙂

Merci pour ce premier retour. Malheureusement lorsque j'effectue la recherche par référence, les couleurs de correspondent pas au couleur des cellules associées comme tu peux le voir ci-dessous.
L'ensemble des TextBox apparaissent en rouge ou grise alors qu'il faudrait qu'elles reprennent la couleur des cellules du tableau associé
 
Ok mais ce n'est pas ce que tu as programmé. Une version qui si j'ai bien compris répond à la question.
Effectivement, ton code est LARGEMENT plus simple que le miens.
J'avais essayé d'adapter mon code de du formulaire "Recherche Lot" mais j'ai du m'y perdre à force ...
Ce que tu as fait fonctionne super bien ! Je te remercie !
 
- 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

M
  • Question Question
Réponses
0
Affichages
1 K
Mirguy23
M
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…