Compter des cellules dans Excel

Résolu/Fermé
crimoilefort - 30 oct. 2010 à 18:33
 crimoilefort - 30 oct. 2010 à 22:46
Bonjour à vous tous,

Je suis nouveau sur le site et j'aurai besoin de vos talents. J'aimerai créer dans un tableur, un comptage de cellules spécifiques.
En effet, je voudrais compter le nombre ce cellules qui aurait comme condition d'avoir une couleur spécifique (j'ai déjà la macro couleur) et un contenu unique (par exemple "CB". Le retour de cette somme doit me retourner la somme des cellules qui ne contient que "CB" dans les cellules roses, par exemple.

Merci pour vos réponses


5 réponses

Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 30/10/2010 à 19:02
Salut,

La couleur rose est elle le résultat d'une mise en forme conditionnelle dans ce cas quel est la condition

ou est elle saisie manuellenement

peut on également rencontrer CB dans des cellules de couleur différente

Tu pourrais également coller ton code voir s'il est possible de le modifier


A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Salut Mike 31,

Pour le code couleur (comptage des cellules couleurs):
Function SOMME_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
Dim Cel As Range
Dim I As Double

For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex And WorksheetFunction.NB.SI(PlageCouleur, "CB") Then I = I + 1
Next
SOMME_COULEUR = I
End Function

Effectivement, nous pouvons rencontrer d'autres "CB" dans des cellules d'une couleur différente sur la même plage (couleur de la palette excel)

@+
Crimoilefort
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 30/10/2010 à 19:51
Re,

Tu n'as pas répondu à la première question qui est la plus importante, comment colorises tu les cellules exemple en rose (manuellement ou avec une mise en forme conditionnelle, ou encore avec un code VBA) !!!

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
Salut Mike31,

Je les colorise manuellement d'aprés la palette couleur d'excel (couleur de remplissage)

Le code couleur ci-dessus était un essai, celui qui fonctionne pour le comptage des cellules d'une certaine couleur est le suivant (mille excuses):

Function SOMME_COULEUR(PlageSomme As Range, PlageCouleur As Range) As Variant
Dim Cel As Range
Dim I As Double

For Each Cel In PlageSomme
If Cel.Interior.ColorIndex = PlageCouleur.Interior.ColorIndex Then I = I + 1
Next
SOMME_COULEUR = I
End Function
@+
crimoilefort
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
30 oct. 2010 à 21:22
Re,

Je ne t'ai pas demandé, mais avec XP tu dois certainement travailler sous Excel 2003.

Il vaut mieux passer par une macro plutôt qu'une fonction personnalisée
commence par nommer la plage que tu dois soumettre au comptage.
(ex. A2 à C50) que tu mets en surbrillance et Insertion/Nom/Définir nomme la "Tablo" ou change le nom dans le code

Ensuite clic droit sur l'onglet de feuille concerné et colles le code ci dessous
qui prendra référence sur la cellule D1, il suffira de coloriser cette cellule de la couleur à compter avec à l'intérieur le texte (ex. en D1 saisis CB et colorise D1 en rose), en E1 le nombre s'actualisera automatiquement

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim c As Range
Dim montotal As Double
Application.Volatile True
For Each c In [Tablo]
If c = [D1] And c.Interior.ColorIndex = [D1].Interior.ColorIndex Then
montotal = montotal + 1
End If
Next
[E1] = montotal
End Sub
0
Merci Mike 31,

Je viens d'essayer mais je n'arrive pas à le faire fonctionner (la première ligne de code "Private Sub Worksheet_Selectijava-script(ByVal Target As Range)" est en rouge !
La problématique est la suivante :
je dois comptabiliser 8 personnes sous deux couleurs(une pour dire le matin et l'autre pour l'aprés-midi), cela me permet d'obtenir la charge de chacun dans le jour même. Serait-il possible d'avoir un code qui permet de comptabiliser directement et de reporter ce code sous différents onglets (les mois de l'année).

J'ai changé ta première ligne de code par Private Sub Worksheet_Selectijava_script(ByVal Target As Range)", mais ça ne marche pas. Pourrais-tu m'aider pou solutionner mon problème ?

@=
chrimoilefort
0
Mike-31 Messages postés 18354 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 1 janvier 2025 5 110
Modifié par Mike-31 le 30/10/2010 à 22:23
Re,

Récupère avec ce lien un petit montage de 4 feuilles, sur les feuilles de 1 à 3, le total de chaque feuille avec trois possibilités et en feuille 4 les totaux des trois feuilles

https://www.cjoint.com/?0kEwtRdT5MI

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crimoilefort
30 oct. 2010 à 22:46
Merci Mike 31. Génial ça fonctionne ! Merci beaucoup
0