Bonjour,
Voici une fonction perso :
Function CompterMFC(Plage As Range, Titre_a_Eviter As String, Max As Integer, NumLigne As Integer) As Integer
Dim I As Integer
Dim J As Integer
Dim Total As Long
For I = Plage(1).Column To Plage(1, Plage.Columns.Count).Column
If Cells(5, I).Value <> Titre_a_Eviter Then
For J = 1 To Max
On Error Resume Next
If Cells(NumLigne, I).Value = Application.Large(Range(Columns(I).Address), J) Then
If Err.Number = 0 Then Total = Total + 1: Exit For
End If
Next J
End If
Next I
CompterMFC = Total
End Function
Que tu utilise de la façon suivante en AE6 et à tirer vers le bas :
=CompterMFC($I$6:$AD$25;"N°";4;LIGNE())
"Plage" représente la plage où chercher les x plus grandes valeurs
"Titre_a_Eviter" est le titre de la colonne à ne pas prendre en compte
"Max" est le nombre de plus grandes valeurs
"NumLigne" est le numéro de la ligne courante
La fonction utilise la fonction VBA "Large()" (Grande.Valeur dans une feuille de calcul) donc pour avoir les totaux par ligne, la fonction compare la cellule en cours avec ce que retourne la fonction Large() et si égal, fin de boucle (J) une fois toutes les colonnes parcourues, retour du total.
Bonjour i20100,
Désolé mais je ne vois pas ce que tu veux dire avec tes cellules jaunes, la MFC est pourtant claire, elle recherche les 4 plus grandes valeurs et colore celles-ci ! quand dans la colonne J il y a 67, 70, 50, 50 reconnues comme être les 4 plus grandes valeurs, je ne vois pas ce que vient faire 45 qui est en cinquième position ?