Association couleur et valeur

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

Lleytt

XLDnaute Nouveau
Bonjour à tous,

Je suis novice sur Excel et j'aimerais savoir s'il était possible d'associer un fond de couleur cellule à une valeur.
Je m'explique:

J'ai un tableau de C2 à S31 avec des cases remplies ou non. Certaines ont un fond de couleur particulier qui varie. Ce fond est attribué manuellement.
A côté de ça, j'aimerais effectuer un tableau qui traduit les couleurs. C'est-à-dire si dans une colonne la couleur bleu est présente 1 fois alors s'affichera dans la cellule le chiffre 1.
J'aimerais ainsi pouvoir décompter précisément le nombre de cases colorées d'une certaine manière.

Cela est-il possible via une formule SI couleur=..., valeur 1..., valeur 0 ?

Cordialement,

Lleyt
 
Re : Association couleur et valeur

Bonjour

Faute de mieux, une vieille méthode avec la fonction LIRE.CELLULE(63;....) de XL4 en pièce jointe.

Deux défauts :
* On doit utiliser cette fonction dans un nom (défini avec le gestionnaire de nom) et pas directement dans la cellule.
* Ici, il faut utiliser une colonne intermédiaire.

En attendant mieux, une petite macro...

@ plus
 

Pièces jointes

Re : Association couleur et valeur

Bonjour Lleytt, CISCO, gosselien,

Oui, une petite macro :

Code:
Sub CompteCouleurs()
Dim d As Object, c As Range, a, b, i&
Set d = CreateObject("Scripting.Dictionary")
For Each c In ActiveSheet.[C2:S31]
  If c.Interior.ColorIndex <> xlNone Then _
    d(c.Interior.Color) = d(c.Interior.Color) + 1
Next
'---restitution---
If d.Count Then
  Application.ScreenUpdating = False
  a = d.keys: b = d.items
  With Workbooks.Add.Sheets(1) 'nouveau document
    For i = 0 To UBound(a)
      .Cells(i + 2, 1).Interior.Color = a(i)
      .Cells(i + 2, 2) = b(i)
    Next
    '---formatage---
    .[A1] = "Couleur": .[B1] = "Nombre"
    .[A1:B1].Font.Bold = True
    .[B:B].HorizontalAlignment = xlCenter
    .[A:B].Sort .[B1], xlDescending, Header:=xlYes 'tri
  End With
End If
End Sub
Mettez-la dans le module VBA que vous voulez.

A+
 
Re : Association couleur et valeur

Bonjour,

Roger2327, ce que vous m'offrez est ce dont j'ai besoin mais une erreur se produit quand je copie :

Option Explicit

Const plage$ = "C2:S31"

Sub test()
Dim i&, r
With Feuille01.[A2]
With Intersect(.CurrentRegion, .Parent.Columns("A:B")): .ClearContents: .Interior.Color = xlNone: End With
r = compteCouleur(Range(plage))
.Resize(UBound(r) + 1, 2) = r
For i = 0 To UBound(r)
On Error Resume Next
.Offset(i).Interior.Color = r(i, 0)
On Error GoTo 0
Next
End With
End Sub

La 3eme ligne Subtest() semble poser problème...

Job75, votre solution est également ce dont j'ai besoin, mais j'aimerais que les résultats s'affichent sur la même page que le tableau, cela est-il possible?

Merci pour votre aide!!!
 
Re : Association couleur et valeur

Job75, votre solution est également ce dont j'ai besoin, mais j'aimerais que les résultats s'affichent sur la même page que le tableau, cela est-il possible?

Code:
Sub CompteCouleurs()
Dim d As Object, c As Range, a, b, i&
Set d = CreateObject("Scripting.Dictionary")
For Each c In ActiveSheet.[C2:S31]
  If c.Interior.ColorIndex <> xlNone Then _
    d(c.Interior.Color) = d(c.Interior.Color) + 1
Next
'---restitution en colonnes AA:AB (ou plus loin)---
If d.Count Then
  Application.ScreenUpdating = False
  a = d.keys: b = d.items
  With ActiveSheet
    .[AA:AB].Clear 'RAZ
    For i = 0 To UBound(a)
      .Cells(i + 2, "AA").Interior.Color = a(i)
      .Cells(i + 2, "AB") = b(i)
    Next
    '---formatage---
    .[AA1] = "Couleur": .[AB1] = "Nombre"
    .[AA1:AB1].Font.Bold = True
    .[AB:AB].HorizontalAlignment = xlCenter
    .[AA:AB].Sort .[AB1], xlDescending 'tri
    Application.Goto .[AA1], True 'cadrage
  End With
End If
End Sub
A+
 
Re : Association couleur et valeur

Re...


(...)

La 3eme ligne Subtest() semble poser problème...

(...)
Il n'y a pas de ligne​
Code:
Subtest()
mais une ligne​
Code:
Sub test()
Je viens de rouvrir le classeur et de faire un essai : ça fonctionne.
En voyant votre classeur, peut-être pourrait-on trouver une explication ?​


ℝOGER2327
#7822


Mardi 10 Clinamen 142 (Rémission des Poissons - fête Suprême Quarte)
12 Germinal An CCXXIII, 5,1051h - charme
2015-W14-3T12:15:08Z
 
Re : Association couleur et valeur

Merci Roger2327, j'ai opté pour la façon de faire de Job 75, qui d'ailleurs je remercie grandement.

J'ai juste une dernière petite question, est-il possible d'avoir plusieurs module VBA par feuille Excel?

J'aimerais pouvoir aussi exécuter cette même pratique sur certaines parties du tableau. Par exemple de C2 à S7, de C8 à S8, de D9 à S9 ou encore C10 à S15... afin d'avoir un détail des résultats trouvés par la formule que vous m'avez communiquée.

Promis, après j'arrête... 🙂
 
Re : Association couleur et valeur

Re...


Merci Roger2327, j'ai opté pour la façon de faire de Job 75, qui d'ailleurs je remercie grandement.
(...)
D'accord, je sors.​


ℝOGER2327
#7823


Mardi 10 Clinamen 142 (Rémission des Poissons - fête Suprême Quarte)
12 Germinal An CCXXIII, 6,0889h - charme
2015-W14-3T14:36:48Z
 

Pièces jointes

Re : Association couleur et valeur

Ce n'est pas que je ne trouvais pas votre technique adéquate, c'est que pour une certaine raison elle ne veut pas fonctionner mais vous répondez exactement à mes besoins!

Voici le problème qui s'affiche lorsque j'appuie sur le bouton crée après avoir ajouté la formule à ma feuille de calcul...

Si vous en connaissez la cause, je serais plus que ravie de passer par votre technique.
 

Pièces jointes

Re : Association couleur et valeur

Re...


Ce n'est pas que je ne trouvais pas votre technique adéquate, c'est que pour une certaine raison elle ne veut pas fonctionner mais vous répondez exactement à mes besoins!

Voici le problème qui s'affiche lorsque j'appuie sur le bouton crée après avoir ajouté la formule à ma feuille de calcul...

Si vous en connaissez la cause, je serais plus que ravie de passer par votre technique.
Je crois avoir compris d'où vient le problème : vous avez copié le code du module de code de l'onglet Onglet 1 de mon classeur dans le module de code de la feuille que vous voulez traiter (et vous avez bien fait !), mais vous n'avez pas vu que mon classeur contenait aussi du code dans le module Module01. C'est ma faute : j'aurais dû vous le dire !

Pour que ça fonctionne, il vous faut aussi copier ce code. Vous pouvez le mettre soit à la suite du code test, soit dans un module standard quelconque. Cela fonctionnera dans les deux cas.


ℝOGER2327
#7824


Mardi 10 Clinamen 142 (Rémission des Poissons - fête Suprême Quarte)
12 Germinal An CCXXIII, 6,4612h - charme
2015-W14-3T15:30:25Z
 
- 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

Retour