Liste deroulante variable + couleur variable Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
Curtis Newton
Membre fidèle
Membre fidèle
Messages : 226
Inscrit le : 19 avril 2015
Version d'Excel : FR 2010

Message par Curtis Newton » 3 mars 2018, 19:57

Bonsoir,

Je travaille sur une ébauche d'emploi du temps sur le fichier joint.

En feuille 4, j'ai une liste de données en colonne A. Chaque cellule a une couleur propre.

Dans chaque onglet menuel, dans la plage de cellules ("B2:B17), une liste déroulante fait référence aux données de la feuille 4. Chaque sélection dans une cellule prend la couleur de la donnée en feuille 4.

J'aurais pu utiliser des MFC... mais, une personne qui ne maîtrise pas excel est susceptible d'ajouter ou de modifier les valeurs de la feuille 4, ainsi que la couleur.

Pourriez-vous m'aiguiller?

Merci pour votre aide.
Test.xlsx
(15.55 Kio) Téléchargé 13 fois
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'733
Appréciations reçues : 703
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 3 mars 2018, 20:10

Bonjour,
Pourquoi ne pas masquer la feuille (SheetVeryHidden) ?
Cdlt.
1 membre du forum aime ce message.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
Curtis Newton
Membre fidèle
Membre fidèle
Messages : 226
Inscrit le : 19 avril 2015
Version d'Excel : FR 2010

Message par Curtis Newton » 3 mars 2018, 20:16

Je n'ai pas été assez précis. J'aurais aimé qu'une MFC ou une macro prenne en compte les modifications apportées par l'utilisateur, sans qu'il ait besoin de faire quoi que ce soit. ;)
D
Dadams51
Membre habitué
Membre habitué
Messages : 117
Appréciation reçue : 1
Inscrit le : 10 avril 2016
Version d'Excel : 2016 FR

Message par Dadams51 » 3 mars 2018, 20:37

Bonsoir,

Ci-joint le fichier où j'ai appliqué les MFC pour la colonne B. Justement, les MFC n'ont rien à voir avec ce qui est écrit en feuille 4.
Une fois ton planning créé, tu peux le protéger (en empêcher la modification) en protégeant la feuille (onglet révision). Il n'existe pas , à ma connaissance, un moyen d'empêcher uniquement la modification des MFC.
L'application des MFC n'est pas compliquée. Commence par la cellule B2 de la colonne B. Avec le texte AA : Accueil, mise en forme conditionnelle, règles de mises en surbrillance des cellules, Egal à puis à gauche AA et à droite Format personnalisé puis tu choisis le jaune fluo en fond. Sur la même cellule avec le texte AB, tu fais de même en choisissant le vert en fond. Et ainsi de suite. Lorsque tout est mis en forme pour cette cellule, tu la tires jusqu'en bas, et le tour est joué !

Dadams
Test.xlsx
(17.28 Kio) Téléchargé 7 fois
1 membre du forum aime ce message.
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 3 mars 2018, 20:53

bonjour
une proposition
principe
c'est l 'EQUIV de la val dans la liste nommée qui decide de la couleur de la MFC
curtisnw.xlsx
(15.08 Kio) Téléchargé 11 fois
cordialement
c'est en cherchant qu'on trouve
Avatar du membre
Curtis Newton
Membre fidèle
Membre fidèle
Messages : 226
Inscrit le : 19 avril 2015
Version d'Excel : FR 2010

Message par Curtis Newton » 3 mars 2018, 20:53

Pardon, je vais vous rendre chèvre ;)

L'utilisateur va utiliser le fichier sur le long terme sans jamais acquérir des notions de base sur excel.

Il faut qu'il puisse modifier ou ajouter des données et couleurs de la feuille 4 à sa guise et qu'une macro fasse le reste. J'ai mis ou MFC au cas où il y aurait une formule particulière.

Je lorgne sur un mix de validation de données avec une formule décalée et une macro faisant référence à la colonne des données et couleurs.
t
tulipe_4
Passionné d'Excel
Passionné d'Excel
Messages : 8'789
Appréciations reçues : 262
Inscrit le : 1 janvier 2011
Version d'Excel : 2000 2007

Message par tulipe_4 » 3 mars 2018, 21:09

bonjour
dans ma proposition
regarde dans gestionnaire de nom ; tu y verras "liste" et une formule Decaler(.....) c'est pour faire une liste autoextensible
ensuite pour la couleur
1) tu cliques sur des cel du tablo a colorier
2) tu vas sur MFC>>gerer les regles>>>t'en choisis une >>modifier
tu vas voir une formule simple
=ET(EQUIV(la lettre et le chiff de la cel;liste;0)=1 )
qui donne la position du choix (1;2;3;4) dans la liste en feuille 4 ,ce n° fait ref a une couleur que tu choisis
comme tu as 4 couleurs , il faut repéter 4 fois le process en changeant ce qui suit le = et la couleur
attention ne pas mettre de $$ a Equiv pour duplicaton sur tout le tablo
1 membre du forum aime ce message.
c'est en cherchant qu'on trouve
Avatar du membre
Curtis Newton
Membre fidèle
Membre fidèle
Messages : 226
Inscrit le : 19 avril 2015
Version d'Excel : FR 2010

Message par Curtis Newton » 3 mars 2018, 21:14

Merci Tulipe, j'ai également trouvé une réponse en VBA. Cela donne le même résultat mais j'utiliserai ta proposition.

Pour ceux que cela intéresse, en vba :
[code]
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Cadre As String
    If Not Application.Intersect(Target, Range("B2:J17")) Is Nothing Then
        If Target.Count > 1 Then
            With Target.Interior
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End With
            Exit Sub
        End If
        Cadre = Target
        With Target.Interior
            Select Case Cadre
            Case Is = Range("L2").Value
                .Color = Range("L2").Interior.Color
            Case Is = Range("L3").Value
                .Color = Range("L3").Interior.Color
            Case Is = Range("L4").Value
                .Color = Range("L4").Interior.Color
            Case Is = Range("L5").Value
                .Color = Range("L5").Interior.Color
            Case Else
                .Pattern = xlNone
                .TintAndShade = 0
                .PatternTintAndShade = 0
            End Select
        End With
    End If
End Sub
[/code]



Merci pour votre aide
Copie de curtisnw-2.xlsm
(22.61 Kio) Téléchargé 9 fois
Avatar du membre
Jean-Eric
Fanatique d'Excel
Fanatique d'Excel
Messages : 16'733
Appréciations reçues : 703
Inscrit le : 27 août 2012
Version d'Excel : 365 Personnel

Message par Jean-Eric » 4 mars 2018, 01:45

Bonjour,
Une proposition tardive. :P
Cdlt.
CurtisNewton.xlsm
(30.34 Kio) Téléchargé 10 fois
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim ws As Worksheet, rng As Range, n As Long

    If Target.CountLarge > 1 Then Exit Sub

    If Not Target.ListObject Is Nothing Then
    
        Set ws = ThisWorkbook.Worksheets("Paramètres")
        Set rng = ws.ListObjects(1).Range
        
        Select Case Target
            Case Is = vbNullString
                Target.Interior.Color = -4142
            Case Else
                n = Application.Match(Target, rng, 0)
                Target.Interior.Color = ws.Cells(n, 1).Interior.Color
        End Select
    End If
    
    Set rng = Nothing: Set ws = Nothing

End Sub
1 membre du forum aime ce message.
Jean-Eric

Je ne réponds pas aux M.P. non sollicités.
Avatar du membre
Curtis Newton
Membre fidèle
Membre fidèle
Messages : 226
Inscrit le : 19 avril 2015
Version d'Excel : FR 2010

Message par Curtis Newton » 4 mars 2018, 07:16

Excellente proposition. J'adore. :appl2:
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message