Si la cellule est bleue...

  • Initiateur de la discussion Delf
  • Date de début
D

Delf

Guest
J'ai déjà vu plusieurs posts sur cette question... mais je trouve toujours pas comment faire... :whistle:

Si vous avez une solution géniale...

Je cherche à savoir combien de cellules d'une plage sont bleue (ou verte ou orange...)... bref d'un format spécifique...

Des idées ??? :woohoo:

Merci !!!
 

Qrieux

XLDnaute Nouveau
Bonjour

en Effet il y a deja eu ce type de question et la réponse proposait une macro pour faire ce comptage.

Je rappelle mon avis sur cette question.

La premiere question a se poser est pourquoi la cellule est bleue?
Plutot que de compter le nombre de cellules bleues, je prefere compter le nombre de cellules dont la valeur entraine le format couleur=bleu
Compter les causes plutot que les consequences !

je laisse les specialiste VBA repondre pour ceux qui tiennent absolument a compter les cellules bleues.
A+

Message édité par: Qrieux, à: 07/04/2006 10:39
 

vekmort

XLDnaute Occasionnel
Saluts,

Deux macros à mettre dans un module.
La première indique le numéro d'index du bleu recherché (en ce moment, ils sont aux manifs !)

Sub QuelBleu()
MsgBox (Selection.Interior.ColorIndex)
End Sub

La seconde comptera les cellules bleues si le résultat de la première Macro est 5, sinon, il faut changer le 5 :

Sub Compter_les_bleus()
'Surtout s'ils sont onze ! Allez les bleus !
For Each c In ActiveSheet.UsedRange
If c.Interior.ColorIndex = 5 Then 'Où 5 est le résultat de QuelBleu
a = a + 1
End If
Next c
MsgBox ('Il y a : ' & a & ' cellules bleues')
End Sub

Voilà, et bon courage...

vekmort qui le vendredi a droit à l'apéro...
 
S

slimsamfr

Guest
bonjour voila un exemple qui peux t'aider.
pour remplir les cellules tu n'a ka cliquer sur la barre d'outil et ensuite clique sur synthése et tu vera le resultat.

Pour voir le code fais alt+F11

a+
 

vekmort

XLDnaute Occasionnel
pascal76,

Le soleil brille ce matin sur Rouen, cela nous met d'humeur taquine...
Je ne connais pas les couleurs MFC ?
Pour la déclaration des variables, voici la ligne à recopier 100 fois :

Juste sous Sub, je mettrai toujours Dim c As Range, a As Long.
Juste sous Sub, je mettrai toujours Dim c As Range, a As Long.
Juste sous Sub, je mettrai toujours Dim c As Range, a As Long.
Juste sous Sub, je mettrai toujours Dim c As Range, a As Long....

Cordialement,

vekmort76
 

PascalXLD

XLDnaute Barbatruc
Modérateur
RE

Pour les variables j'avoue c'est 'taquin' (ça fait gamin ça non ???)

Sinon pour le reste si une couleur est sur ta feuille suite à une mise en forme conditionnelle et non directement par l'utilisateur la macro ne la comptera pas. Voilà pourquoi je posais la question. Car comme le dit Qrieux si il y a une MFC autant compter les causes que les conséquences.

Bonne journée
 
D

Delf

Guest
:eek: euh... merci pour vos explications mais c'est un peu du chinois, pour moi.

Alors pour explication : la couleur (peu importe laquelle) n'est pas le résultante d'un format conditionnel.

J'ai essayé diverses fonctions trouvées sur le net :

Les 2 dernières testées :

Function SomCool(Zne As Range, Couleur As String)
Application.Volatile True
Select Case Couleur
Case 'rouge'
Couleur = 3
Case 'noir'
Couleur = 1
End Select
For Each cell In Zne
If cell.Interior.ColorIndex = Couleur Then cvSomme = _
cvSomme + 1
Next
SomCool = cvSomme
End Function



Function NbCouleurFond(Plage As Range, NumeroDeCouleur%) As Long
Application.Volatile True
Dim wcell As Range
For Each wcell In Plage
If wcell.Interior.ColorIndex = NumeroDeCouleur% Then
NbCouleurFond = NbCouleurFond + 1
End If
Next
End Function


Mais ça marche pô...

J'ai mis les fonctions ci dessus dans le VB.
Je les ai bien retrouvé quand je fais insère/fonctions sous Excel. Juste qu'à là tout va bien.

Dans la fonction NbCouleurFond par exemple, Excel me demande la plage et le numéro de couleur. J'ai testé tous les numéros de couleur (de 1 à 56) mais mon résultat est toujours égal à 0... ???

:unsure:


Bon, sinon, je pourrais faire autre chose... mais je ne sais pas comment m'y prendre non plus... :(

dans la colonne A, j'ai les jours de semaine L, M, X, J, V, S, D, L, M etc... du 1 au 31 du mois.
Dans la colonne B, j'ai le nombre d'heures effectué par le salarié.
Dans cette colonne B, je voudrais mettre 'REC' pour récupération.

Je voudrais savoir combien de Jeudi sont récupérés, par ex.
un truc comme : nb.si(colonne A = J; colonne B = REC):ermm:

???
Merci !!!
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Voici un exemple [file name=CouleurCountif_20060407112922.zip size=7937]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/CouleurCountif_20060407112922.zip[/file]
 

Pièces jointes

  • CouleurCountif_20060407112922.zip
    7.8 KB · Affichages: 85

Discussions similaires

Statistiques des forums

Discussions
312 737
Messages
2 091 500
Membres
104 961
dernier inscrit
LE GÉNIE ABDOU MAIGA