Cellule de couleur basée sur la valeur du texte

23

Une colonne Excel contient une valeur de texte représentant la catégorie de cette ligne.

Existe-t-il un moyen de formater toutes les cellules ayant une valeur distincte une couleur unique sans créer manuellement un format conditionnel pour chaque valeur?

Exemple: si j'avais les catégories bedroom, bedroom, bathroom, kitchen, living room, je voudrais que toutes les cellules contenant bedroomsoient d'une couleur particulière, d' bathroomune couleur différente, etc.

Steven
la source
Si vous ne voulez pas le faire manuellement, comment voulez-vous qu'il décide de la couleur des choses?
soandos
2
Je voudrais que ce soit automatique si possible, semblable à la façon dont les couleurs sont choisies pour différentes séries dans un graphique.
Steven
Ah, donc vous voulez que toutes les cellules avec le même contenu soient de la même couleur, mais ne vous souciez pas de quelle couleur il s'agit?
soandos
Une macro unique (pour créer les formats conditionnels une fois) serait-elle acceptable? Il devrait être exécuté exactement une fois par classeur et pourrait être supprimé par la suite.
Tex Hex
soandos: Oui, TeX Hex: Bien sûr!
Steven

Réponses:

6
  1. Copiez la colonne que vous souhaitez formater dans une feuille de calcul vide.
  2. Sélectionnez la colonne, puis choisissez "Supprimer les doublons" dans le panneau "Outils de données" de l'onglet "Données" du ruban.
  3. À droite de votre liste unique de valeurs ou de chaînes, créez une liste unique de nombres. Par exemple, si vous avez 6 catégories à colorier, la deuxième colonne pourrait simplement être 1-6. Ceci est votre table de recherche.
  4. Dans une nouvelle colonne, utilisez VLOOKUPpour mapper la chaîne de texte à la nouvelle couleur.
  5. Appliquez une mise en forme conditionnelle basée sur la nouvelle colonne numérique.
Eric
la source
3
L'étape 4 n'est pas claire pour moi, pourriez-vous s'il vous plaît développer? Merci.
pixels
1
Pourriez-vous élaborer sur 5?
zthomas.nc
1
Mais cela signifie sûrement que le formatage est sur les cellules contenant la valeur numérique et NON la valeur du texte
adolf garlic
11

Les captures d'écran ci-dessous proviennent d'Excel 2010, mais devraient être les mêmes pour 2007.

Sélectionnez la cellule et accédez à Conditional Formatting | Highlight Cells Rules | Text that Contains

MISE À JOUR: Pour appliquer la mise en forme conditionnelle pour la feuille de calcul entière, sélectionnez toutes les cellules puis appliquez la mise en forme conditionnelle.

entrez la description de l'image ici
(Cliquez sur l'image pour agrandir)

Maintenant, sélectionnez simplement la mise en forme souhaitée.

entrez la description de l'image ici

Nicu Zecheru
la source
5
Cela ne va-t-il pas encore exiger que l'OP crée manuellement un format conditionnel pour chaque valeur?
Dave DuPlantis
1
@Dave DuPlantis - NO. Vous pouvez sélectionner TOUTES les cellules puis utiliser la mise en forme conditionnelle. Toutes les cellules qui remplissent la condition seront formatées en conséquence.
Nicu Zecheru
6
Chaque condition doit toujours être créée manuellement, même si elles ne doivent être créées qu'une seule fois pour l'ensemble du classeur. Il recherche une solution qui ne l'oblige pas à spécifier les valeurs.
Dave DuPlantis
Est-il donc possible d'avoir plusieurs règles pour le «texte contient»? c'est encore une fonctionnalité assez médiocre de ms
adolf garlic
2

De: http://www.mrexcel.com/forum/excel-questions/861678-highlighting-rows-random-colors-if-there-duplicates-one-column.html#post4185738

Sub ColourDuplicates()
Dim Rng As Range
Dim Cel As Range
Dim Cel2 As Range
Dim Colour As Long




Set Rng = Worksheets("Sheet1").Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
Rng.Interior.ColorIndex = xlNone
Colour = 6
For Each Cel In Rng


If WorksheetFunction.CountIf(Rng, Cel) > 1 And Cel.Interior.ColorIndex = xlNone Then
Set Cel2 = Rng.Find(Cel.Value, LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False, SearchDirection:=xlNext)
    If Not Cel2 Is Nothing Then
        Firstaddress = Cel2.Address
        Do
        Cel.Interior.ColorIndex = Colour
        Cel2.Interior.ColorIndex = Colour
            Set Cel2 = Rng.FindNext(Cel2)

        Loop While Firstaddress <> Cel2.Address
    End If




Colour = Colour + 1


End If
Next


End Sub
Karmo
la source
Je vois que j'ai déjà voté pour cette réponse, mais je ne trouve pas le code que j'ai fini par utiliser. Un jour, je finirai par écrire du code flexible et le partagerai ici aussi.
Ryan
1

La couleur automatique choisissant la mise en forme conditionnelle n'est pas une fonctionnalité de Microsoft Excel.

Cependant, vous pouvez colorer une ligne entière en fonction de la valeur d'une colonne de catégorie individuellement.

  1. Créez une nouvelle règle de formatage dans le formatage conditionnel.
  2. Utilisez une formule pour déterminer les cellules à formater.
  3. Formule: =$B1="bedroom"(en supposant que la colonne de catégorie est B)
  4. Définir le format (en utilisant la couleur de remplissage)
  5. Appliquer la mise en forme des règles à toutes les cellules
Steven
la source
2
Pour info, Eric a posté une réponse beaucoup plus utile ... la vôtre ressemble plutôt à une refonte de la première réponse que vous avez obtenue.
Frank