macro pour compter des colonnes selon filtre nombre et/ou couleur de cellules

pouloucarine

XLDnaute Nouveau
Bonjour,

j'ai un fichier (en exemple), sur lequel j'ai besoin de comptabiliser des éléments selon des filtres, et de remplir mon tableau en feuille 3.
Le nombre de lignes est variable et dépasse les 70 000 lignes, par contre le fichier ne varie pas en colonne et format

Donc,

j'ai besoin de dénombre le nombre de lignes en colonne J pour l'activité 12+13+14 (ELDPH), l'activité 1+2+3+4+5+8 (FRAIS), activité 6 (TEXTILE) et activité 7 et 10 (BAZAR). J'arrive bêtemement à faire celà en faisant nb.si.
Là ou celà se complique c'est que j'ai besoin de comptabiliser ensuite toutes les lignes ELDPH dont la colonne AC est sans couleur, idem pour l'activité FRAiS, par contre pour le Textile je dois comptabiliser celle en vert (idem pour le bazar), puis retranscrire ces chiffres dans le tableau feuille 3, ligne publiable
Et ensuite je continue en filtrant ce résultat selon d'autres colonnes, etc.

Est-ce possible ?

Merci de votre aide

Jean-Sébastien
 

Pièces jointes

  • pour exemple.xlsx
    93.4 KB · Affichages: 73
  • pour exemple.xlsx
    93.4 KB · Affichages: 35

Paf

XLDnaute Barbatruc
Re : macro pour compter des colonnes selon filtre nombre et/ou couleur de cellules

Bonjour

à tester :

pour dénombrer le FRAIS (code 1,2,3,4,5 et 8) sans couleur en colonne AC:
=SOMMEPROD((($J$2:$J$460=1)+($J$2:$J$460=2)+($J$2:$J$460=3)+($J$2:$J$460=4)+($J$2:$J$460=5)+($J$2:$J$460=8))*(CouleurCell($AC$2:$AC$460;0)))

pour dénombrer le TEXTILE (code 6) avec couleur verte en colonne AC:
=SOMMEPROD((($J$2:$J$460=6))*(CouleurCell($AC$2:$AC$460;43)))

CouleurCell(Plage;Couleur) est une fonction personnalisée, à copier dans un module standard.

Code:
Function CouleurCell(Plage As Range, Couleur) As Variant
 Dim c As Range, reponse(), i As Long
 Application.Volatile
 If Couleur = 0 Then Couleur = -4142
 ReDim reponse(Plage.Cells.Count - 1)
 For Each c In Plage
    reponse(i) = c.Interior.ColorIndex = Couleur
    i = i + 1
 Next c
 CouleurCell = Application.Transpose(reponse)
End Function

pour tester la couleur 'vide' saisir 0
pour le vert : 43 et pour orange : 44 ( vérifier si les index pour le vert et orange sont les mêmes sur votre machine)

A+
 

Discussions similaires

Statistiques des forums

Discussions
315 127
Messages
2 116 543
Membres
112 776
dernier inscrit
MIZOULE