comptage cellules MFC

rafi93

XLDnaute Occasionnel
bonjour à tous

dans le post

Lien supprimé

on compte le nbre de cellules avec MFC.
mais on doit préciser une couleur

je cherche une solution qui donne le nbre de cellules avec MFC, mais sans préciser la couleur

y aurait - il une solution (sauf à boucler sur le code couleur...)?

c'est pour une assez grosse feuille (5000 lignes/30 colonnes, et bcp d'autres controles)


merci !
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : comptage cellules MFC

Bonjour
Bon j'ai tenté de faire un bout de Pg mais je suis confronté à un Hic !!
1) Ma fonction était faite pour palier à ColorIndex qui ne fonctionne pas si les cel. ont des MFC
Au passage : MeFC c'est kif-kif sauf que l'on applique pas de formules mais des valeurs pour mettre un format à la cellule ( Jean Claude , tu confirmes ? sinon peux tu expliquer)
2) Là j'ai remarqué les données en TABLEAU !! puis les MFC > Formule SI.... , d'ailleurs je pige pas car si Vrai= 1 , Faux=0 et là ca marque 5 ?

Donc avec ce type de structure la fonction ne fonctionne pas ; Il faudrait voir à refondre les data ( plus de forme tableau) ; après je me rappelle que pour contourner " Formule", j'avais dû mettre ma formule dans une cellule ailleurs , récupérer le résultat et juste faire du = ; < ; > ...etc et là ça fonctionne
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules MFC

merci pour toutes ces investigations !
si je comprends bien, cela semble compliqué
sauf autre piste à venir, je laisserai donc tomber (et retournerai à mes colonnes de contrôle additionnelles)
a++ ?
 

herve62

XLDnaute Barbatruc
Supporter XLD
Re : comptage cellules MFC

Bonsoir
J'ai encore regardé , c'est bien FORMULE dans les MFC qui gêne !
Mais tu avais un bon début ... à arranger et j'ai pas pigé pourquoi le lien que t'a mis au début de ton post est classé "Introuvable" , c'est ça ?
https://www.excel-downloads.com/threads/ou-se-trouve-la-fonction-personnalisee.231483/

donc là j'ai fait un essai "Bidon" qui fonctionne , à moins que quelqu'un trouve l'astuce en laissant "Formule" ??
 

Pièces jointes

  • test nb mfc2.xlsm
    29.4 KB · Affichages: 26

herve62

XLDnaute Barbatruc
Supporter XLD
Re : comptage cellules MFC

Bin c'est les 2
la Sub du bouton dans la feuille ( c'est mieux)
ensuite c'est une FONCTION que tu appelles en passant un paramètre
colo = CouleurMFC(Ad) ; Ad c'est la cellule avec la MFC
ensuite tu récupères le code couleur par cette fonction et tu l'affectes à une variable (ici colo)

C'est comme l'appli que tu as récupéré mais elle ne fonctionne pas non plus dans ton cas , j'ai trituré , mais ça dépasse mes capacités
 

JCGL

XLDnaute Barbatruc
Re : comptage cellules MFC

Bonjour à tous,
Salut Hervé,

Il n'est pas nécessaire de lancer la macro.
Tout est en formules.

Tes MeFC sont superfétatoires :
=SI(ET($E15=3;$F15=2);1;0)
peut s'écrire
=ET($E15=3;$F15=2)
et renvoie le même résultat VRAI (ou 1) ou FAUX (ou 0)

Si tu lances le code, il est normal de trouver 6 car ce sont bien 6 cellules qui bénéficient de la MeFC (même si 3 sont impactées par cette MeFC)

A+ à tous
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules MFC

bonjour JCGL
merci de suivre ces posts

effectivement, ce qui m'interesse c'est bien le nbre de cellule pour laquelle la MFC est vraie

mais si il existe une solution sans macro à lancer (visualisation permanente, via formule dans une cellule), je suis preneur !!.
 

JCGL

XLDnaute Barbatruc
Re : comptage cellules MFC

Bonjour à tous,

Mais il me semble que c'est le résultat obtenu avec le SOMMEPROD() du #14.

Dépose un fichier sans formules ni code et mets simplement le résultat souhaité et les couleurs souhaitées.

A+ à tous
 

rafi93

XLDnaute Occasionnel
Re : comptage cellules MFC

effectivement
rappel : je cherche à connaitre le nombre de cellules avec une MFC avérée
JCBL, tu calcules le nombre de cellules pour lesquelles la règle que tu poses est vraie Tableau1[colA]=C$3) et (Tableau1[colB]=C$4
mais moi je ne sais pas dans mon tableau pourquoi une MFC se met à vrai ou faux (elles prennent en compte différentes valeurs ailleurs dans la feuille)
je ne sais pas si je suis clair
 

PMO2

XLDnaute Accro
Re : comptage cellules MFC

merci PMO2
mais on est d'accord que ça ne donne pas le nombre de cellules pour lesquelles la condition est avérée ? (6 dans ce fichier exemple)

Bonjour,

Essayez le code suivant
Code:
Sub MFCNombreCellulesAverees()
Dim CollFCS As Collection
Dim FC As Variant
Dim R As Range
Dim C As Range
Dim Plage As Range
Dim RPrecedent As Range
Dim i&
Dim maFormule$
Dim A$
'--- Collection des FormatConditions ---
Set CollFCS = New Collection
'---
On Error Resume Next
Set R = ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions)
If Err <> 0 Then
  MsgBox prompt:="Dans ''" & ActiveSheet.Name & "'' aucune MFC n'a été trouvée.", Title:="Erreur " & Err.Number & "  " & Err.Description
  Exit Sub
End If
On Error GoTo 0
For Each C In R
  For i& = 1 To C.FormatConditions.Count
    On Error Resume Next
    CollFCS.Add Item:=C.FormatConditions(i&), Key:=i& & "" & C.FormatConditions(i&).AppliesTo.Address
    On Error GoTo 0
  Next i&
Next C
'--- Les MFCs ---
For i& = 1 To CollFCS.Count
  Set FC = CollFCS(i&)
  '--- Plage où s'opère la MFC ---
  Set R = FC.AppliesTo
  '--- Formule ---
  maFormule$ = FC.Formula1
      '°°° Récupérer le format dela formule autrement qu'en FormatLocal °°°
      With ActiveSheet.Range("iv65536")
        .FormulaLocal = maFormule$
        maFormule$ = .Formula
        Set RPrecedent = .Precedents
        .ClearContents
      End With
      '°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  '--- Balayage de la plage Et récupération des cellules où s'opère la MFC ---
  For Each C In R
    A$ = Replace(maFormule$, RPrecedent.Address(False, False), C.Address(False, False))
    If Evaluate(A$) <> 0 Then
      If Plage Is Nothing Then
        Set Plage = C
      Else
        Set Plage = Application.Union(Plage, C)
      End If
    End If
  Next C
Next i&
'--- Affichage du résultat ---
If Not R Is Nothing Then
  Plage.Select
  MsgBox "Nombre de cellules avérées : " & Plage.Cells.Count
End If
End Sub
 

Pièces jointes

  • Compter le nombre de cellules avérées de toutes les MFCs.xlsm
    25.4 KB · Affichages: 21

herve62

XLDnaute Barbatruc
Supporter XLD
Re : comptage cellules MFC

Bonsoir à tous
Bon là PMO2 je suis d'accord , ca marche ! je garde cette Sub dans mon grenier et je retesterai dans une ancienne appli.
RAFI : son code est fait pour une page entière ("iv65536") donc si tu veux limiter à une 'Plage' plus limitée il faudra adapter
A+

PS : tu aurai pu mettre un bouton !! que d'aller executer dans Vba !
 

Discussions similaires

Statistiques des forums

Discussions
312 608
Messages
2 090 189
Membres
104 446
dernier inscrit
Phil A