Association couleur et valeur

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
 

CISCO

XLDnaute Barbatruc
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

  • classeur couleur.xlsm
    10.6 KB · Affichages: 38
  • classeur couleur.xlsm
    10.6 KB · Affichages: 45
  • classeur couleur.xlsm
    10.6 KB · Affichages: 45

job75

XLDnaute Barbatruc
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+
 

ROGER2327

XLDnaute Barbatruc
Re : Association couleur et valeur

Bonjour à tous.


Un autre essai.​


ℝOGER2327
#7821


Mardi 10 Clinamen 142 (Rémission des Poissons - fête Suprême Quarte)
12 Germinal An CCXXIII, 4,5525h - charme
2015-W14-3T10:55:33Z
 

Pièces jointes

  • Décompte par couleurs (1).xlsm
    23.5 KB · Affichages: 40
Dernière édition:

Lleytt

XLDnaute Nouveau
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!!!
 

job75

XLDnaute Barbatruc
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+
 

ROGER2327

XLDnaute Barbatruc
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
 

Lleytt

XLDnaute Nouveau
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... :)
 

ROGER2327

XLDnaute Barbatruc
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

  • Décompte par couleurs (2).xlsm
    24.9 KB · Affichages: 25

Lleytt

XLDnaute Nouveau
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

  • Problème.docx
    155.3 KB · Affichages: 19
  • Problème.docx
    155.3 KB · Affichages: 25
  • Problème.docx
    155.3 KB · Affichages: 26

Lleytt

XLDnaute Nouveau
Re : Association couleur et valeur

Bonjour,

En effet, je ne l'avais pas copier mais un autre problème survient...
 

Pièces jointes

  • Problème.docx
    139.7 KB · Affichages: 18
  • Problème.docx
    139.7 KB · Affichages: 25
  • Problème.docx
    139.7 KB · Affichages: 27

ROGER2327

XLDnaute Barbatruc
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
 

Discussions similaires

Statistiques des forums

Discussions
312 379
Messages
2 087 761
Membres
103 661
dernier inscrit
fcleves