mis en forme conditionnel d'une liste déroulante dynamique

  • Initiateur de la discussion Initiateur de la discussion roisabri
  • 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 !

R

roisabri

Guest
Bonjour les amis,

J'ai besoin d'une mis en forme conditionnel d'une liste déroulante dynamique.

Je ne vois pas où elle est l'erreur.

Code:
Set Cell_Color = Worksheets(Data).Range("P2")
    While Not Cell_Color.Interior.Color = Gray Or Cell_Color.Interior.Color = White
        i = i + 1
        Set Cell_Color = Cell_Color.offset(1, 0)
    Wend
    
    
    With Worksheets(Plans).Range(Cells(3, 15).Address & ":" & Cells(Rows.Count, 15).End(xlUp).Address).Validation
            .Delete
            .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
            xlBetween, Formula1:="=Data!$B$2:$B$" & i
            .ErrorMessage = "You don't have the persmissison to write"
        End With
        With .FormatConditions
                .Delete
                For j = 2 To i
                .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""Data!$B"" & i & """""
                Next
            End With
            
        For j = 1 To i - 1
        .FormatConditions(j).Interior.Color = Sheets(Data).Cells(j, 16).Interior.Color
        Next
        
    End With

Merci pour votre aide
 
Re : mis en forme conditionnel d'une liste déroulante dynamique

Bonjour,
Pour plus d'efficacité, un fichier exemple est souhaitable
Néanmoins, je constate que tu fais appel à une plage de données situées sur une autre feuille pour alimenter tes listes et ça n'est possible que s'il s'agit d'une plage nommée
A+
kjin
 
Re : mis en forme conditionnel d'une liste déroulante dynamique

bonjour,
Comme je te l'ai déjà précisé, tu ne peux pas faire référence à une autre feuille dans tes formules !
Donc une solution à adapter
Code:
Sub test()
Dim i As Byte, j As Byte
Dim t()
i = 2

With Worksheets("Feuil1")
    While .Cells(i, 3).Interior.ColorIndex <> xlNone
        ReDim Preserve t(1 To 2, 1 To i - 1)
        'creation d'un tableau avec les noms et la couleur de la cellule contigues
        t(1, i - 1) = .Cells(i, 2)
        t(2, i - 1) = .Cells(i, 3).Interior.ColorIndex
        i = i + 1
    Wend
End With

If i < 3 Then Exit Sub

'insertion d'ue plage nommée pour la liste
ActiveWorkbook.Names.Add Name:="noms", RefersToR1C1:="=Feuil1!R2C2:R" & i - 1 & "C2"

With Worksheets("Feuil2").Range("C3:C5")
    With .Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="=noms"
        .ErrorMessage = "You don't have the persmissison to write"
    End With
    .FormatConditions.Delete
    For j = 2 To i - 2
        .FormatConditions.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=""" & t(1, j - 1) & """"
        .FormatConditions(j - 1).Interior.ColorIndex = t(2, j - 1)
    Next
End With

End Sub
A+
kjin
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

B
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
970
bd.afaf
B
Réponses
8
Affichages
1 K
T
Réponses
2
Affichages
2 K
Tibooo
T
M
Réponses
2
Affichages
1 K
moialbert2
M
T
  • Résolu(e)
XL pour MAC lenteur du vba
Réponses
16
Affichages
3 K
Réponses
10
Affichages
918
P
Réponses
7
Affichages
2 K
W
  • Question Question
Réponses
1
Affichages
1 K
Retour