couleur pour liste déroulante

Beetwin

XLDnaute Nouveau
Bonjour à tous

La question à été posée mille fois en effet sur ce site on trouve plein de réponse, mais les macros j'y arrive pas.
Je souhaite en fait que quand on valide un choix dans la liste déroulante la couleur correspondant à celle-ci s'affiche automatiquement .


je joint mon fichier
Si quelqu'un peut regarder et m'aidé merci à vous.
 
Dernière édition:

Beetwin

XLDnaute Nouveau
Re : couleur pour liste déroulante

Merci de me répondre

Toutefois j'ai essayé mais on peut enregistrer que 3 mise en forme conditionnelle et j'ai dans mon tableu une vingtaine de couleur correspondant a une vingtaine de choix possible .
 

supercrapaud

XLDnaute Occasionnel
Re : couleur pour liste déroulante

OK si tu t'y connais en macro voilà un truc à développer.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Range("a16:a20"), Target) Is Nothing Then
If ActiveCell = "PORTAIL PVC" Then ActiveCell.Interior.Color = 4
End If
End Sub
ce que je te conseille c'est d'enregistrer une macro. Ensuite tu colore ta cellule de toutes les couleurs à la suite comme cela tu connaîtras les N°. Il te suffira de rajouter des lignes en changeant le texte et le N° de la couleur et de changer ta plage de données.
 

Pièces jointes

  • Classeur1.xls
    39.5 KB · Affichages: 78
  • Classeur1.xls
    39.5 KB · Affichages: 81
  • Classeur1.xls
    39.5 KB · Affichages: 88

tototiti2008

XLDnaute Barbatruc
Re : couleur pour liste déroulante

Re,

un essai (à mettre dans le code de la feuille concernée)

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim NomPlage As String, Pos As Long
    On Error GoTo ErrValid
    Application.ScreenUpdating = False
    If Target.Count = 1 Then
        If Not Application.Intersect(Target, Range("A3,C3,E3,G3")) Is Nothing Then
            If Target.Validation.Type = 3 Then
                Target.Interior.ColorIndex = xlColorIndexNone
                NomPlage = Replace(Target.Validation.Formula1, "=", "")
                Pos = 0
                If Application.CountIf(Range(NomPlage), Target.Value) > 0 Then
                    Pos = Application.Match(Target.Value, Range(NomPlage), 0)
                    Target.Interior.ColorIndex = Range(NomPlage).Range("A" & Pos).Interior.ColorIndex
                End If
            End If
        End If
    End If
    Application.ScreenUpdating = True
    On Error GoTo 0
ErrValid:
End Sub
 

Discussions similaires

Réponses
8
Affichages
483

Statistiques des forums

Discussions
312 654
Messages
2 090 563
Membres
104 577
dernier inscrit
GOGNAN