Détection de couleur

braise1508

XLDnaute Nouveau
Salut,

Je souhaiterai connaître une formule ou macro sous excel pour comptabiliser le nombre de case avec telle ou telle couleur dans une colonne.

Merci de me dire si c'est possible et quelle est la formule.

Cordialement,:D

BRAISE1508
 

Gorfael

XLDnaute Barbatruc
Re : Détection de couleur

Salut,

Je souhaiterai connaître une formule ou macro sous excel pour comptabiliser le nombre de case avec telle ou telle couleur dans une colonne.

Merci de me dire si c'est possible et quelle est la formule.

Cordialement,:D

BRAISE1508
Salut
il n'existe pas (à ma connaissance) de formule travaillant sur les couleurs.
Ce que tu peux faire, c'est par exemple une function dans un module général
Code:
Function Comp_Coul(ByRef Plage_T As Range)
Dim Cel_Réf As String
Dim Cel As Range
Dim X As Long
Application.Volatile
Cel_Réf = Application.Caller.Address
For Each Cel In Plage_T
    If Cel.Interior.Color = Range(Cel_Réf).Interior.Color Then X = X + 1
Next Cel
Comp_Coul = X
End Function

dans la cellule où tu veux le résultat, tu mets :
=Comp_Coul(A1:A15)
et ça comptera le nombre de cellule de la plage A1:A15 qui a la même couleur de fond que la cellule qui contient la formule.

Mais comme tout ce qui concerne les format, ça ne fonctionnera que si un recalcul de la feuille est activé.

Tu peux améliorer un peu avec une macro automatique sur changement de sélection
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Me.Calculate
End Sub
mais si tu ne fais que changer de couleur une ou plusieurs cellules sans changer de sélection, ton résultat sera encore faux

Si quelqu'un a une astuce pour lancer un macro sur changement de format d'une cellule, je suis preneur ;)
A+
 

MichelXld

XLDnaute Barbatruc
Re : Détection de couleur

bonjour


C'est possible par formule, en utilisant les anciennes fonctions Excel4.


Par exemple, additionner les cellules dont la couleur de fond et jaune, dans la plage A1:A10:

Menu Insertion / Nom / Définir
Dans le champ "Nom dans le classeur", indique le mot "Test".
Dans le champ "Fait référence à" saisit la formule:
=LIRE.CELLULE(63; Feuil1!A1)
Clique sur le bouton Ajouter , puis sur le bouton OK

Il s'agit d'une utilisation détournée des anciennes fonctions XL4:
63 Renvoie le couleur de l'arrière-plan de la cellule.


Ensuite, sélectionne la cellule B1.
Saisit la formule:
=Test
Valide la formule.

Utilise les poignées de recopie pour étirer la formule vers le bas.
Ensuite dans la cellule C1, tu peux utiliser une formule qui compte le nombre de fois qu'apparaît un code couleur:
(6= couleur jaune)

Par exemple
=NB.SI(B1:B10;6)

Le seul inconvénient, il faut revalider la formule =Test lorsque tu modifies la couleur d'une cellule car le recalcul automatique le lancement du recalcul (F9) ne fonctionneront pas.

Pour effectuer la mise à jour du résultat, le plus rapide consiste à ressaisir la formule =Test en B1, et utiliser les poignées de recopie vers le bas.



Bonne soirée
MichelXld
 

braise1508

XLDnaute Nouveau
Re : Détection de couleur

Je viens de faire des essais avec les formules que vous m’avez donnés.
Je suis nul sur Excel et je ne sais comment on les applique.
Le fichier essais ne me convient pas, dés que les cases non plus de chiffre rien n’est compté.
La technique de MichelXld fonctionne, mais je suis obligé de revalider toutes les cases à chaque changement de couleur. Cela n’est pas pratique j’irai plus vite en comptant les couleurs.
Pour la fonction de Gorfael je ne sais pas comment on fait pour la mettre en place.
Es ce possible une petite explication.
Merci pour votre aide
 

porcinet82

XLDnaute Barbatruc
Re : Détection de couleur

Salut,

Un petit fichiet exemple avec la fonction de mon ami Gorfael. En fait, il faut que la cellule dans laquelle tu mets la fonction est la meme couleur que les cellules de la plage que tu veux compter (c'est francais ca ????).

@+
 

Pièces jointes

  • test.xls
    23.5 KB · Affichages: 173
  • test.xls
    23.5 KB · Affichages: 185
  • test.xls
    23.5 KB · Affichages: 194

Gorfael

XLDnaute Barbatruc
Re : Détection de couleur

le fichier fonctionne bien mais je ne sais pas comment on fait pour mettre une macro
désolé je suis nul
Salut à tous
Merci à porcinet82 d'avoir pris la relève

Pas la peine d'être désolé braise1508, qu'on l'avoue ou non, on est tous passé par là : ça a l'air si simple, pourquoi moi je peux pas y arriver.

Effectivement, quand on sait, c'est toujours simple :p

Une Function est une macro particulière => donc on va faire une macro

Menu Outils>>Macro>>nouvelle macro
Une boîte de dialogue apparaît avec une proposition de nom de macro (Macro1 en général) Tu le retiens et tu valides par OK

Une nouvelle barre apparaît avec l'icône "arrêter l'enregistrement" => tu cliques pour arrêter
=> Ce qu'Excel à fait :
- Création d'un module général (Module1)
- Création d'une macro (Macro1)

Menu Outils>>Macro>>Macros
Dans la fenêtre tu sélectionnes la macro que tu viens de créer => Modifier

Excel t'envoie dans VBE (Visual Basic Editor) sur le module1

Tu peux supprimer la macro, elle n'a été créée que pour créer un module


Tu fais un copier/coller du code du poste précédent (Function...End Fubction)
S'il n'y a pas de lignes en rouge, c'est que c'est bon, et tu peux retourner sur Excel


Dans Excel, tu choisis la cellule où doit se retrouver le compte des cellules de mêrme couleur que celle-ci
Menu Insertion>>Fonction
Dans la case "ou sélectionnez une catégorie" tu mets personnalisé

Et tu choisis Comp_Coul
tu sélectionnes la plage de cellules à compter
et tu valides
La cellule affichera le nombre de cellules de la plage qui ont le même fond que celle contenant la formule

Si tu changes la couleur de cette cellule, il ne se passera rien.
Il te faudra appuyer sur la touche F9 de ton clavier, ce qui relance le calcul de toutes les formules de la feuille, et te fera afficher le bon résultat
A+
 
Dernière édition:

braise1508

XLDnaute Nouveau
Re : Détection de couleur

merci a tous pour ces explications
la macro fonctionne bien mais quand je modifie les autres feuilles de mon fichier le resultat de ma case de comptage passe a 20 puis 30.
si vous voulez je peux envoyer mon fichier par mail vous comprendrez mieux
 

JCGL

XLDnaute Barbatruc
Re : Détection de couleur

Bonjour à tous,

Si tu changes la couleur de cette cellule, il ne se passera rien.
Il te faudra appuyer sur la touche F9 de ton clavier, ce qui relance le calcul de toutes les formules de la feuille, et te fera afficher le bon résultat

Si tu mets ce code dans le module de la feuille :

Code:
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Le calcul se fera automatiquement

A+

Edition : Désolé après relecture du fil, je viens de m'apercevoir que cela avait déjà été suggéré
 
Dernière édition:

benalex241286

XLDnaute Nouveau
Re : Détection de couleur

Bonjour,

ce sujet et surtout la partie qui sert à automatiser la mise à jour m'intèrresse.
Serait-il possible de dire plus précisément où l'on doit integrer le code suivant :
Option Explicit

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Calculate
End Sub

Merci et bonne journée
 

porcinet82

XLDnaute Barbatruc
Re : Détection de couleur

Salut,

Ce genre de code appelé code évenementielle est déclenché suite à une action sur le classeur, une feuille, ou à un objet. Dans tous les cas, tu dois le copier dans le module de la feuille dans laquelle tu veux réaliser l'action. Pour voir ces modules, soit Alt+F11 et choisir le module de la feuille concernée à gauche dans le menu Microsoft Excel Object, ou alors click droit sur l'onglet de la feuille et Visualiser la code.

@+
 

benalex241286

XLDnaute Nouveau
Re : Détection de couleur

Ok un grand merci à toi (et aussi aux autres ;-) ). J'avais déjà vu ce code mais je ne trouvais pas où le mettre ce qui est genant pour le tester.

Encore merci à vous.

Edit : petite question : ce code va astualiser toutes les cellules, seulement une partie??? Sous quelles conditions est-il executé??
 

Statistiques des forums

Discussions
312 836
Messages
2 092 656
Membres
105 480
dernier inscrit
Galbius