Filtre elaboree

Hellom
Désolé pas dispo de la jné, merci Kiss a et mdo
Pour le critère essai =$C2>=GRANDE.VALEUR($C$2:$C$11;5)
Chose importante : La colonne de critère NE DOIT PAS porter le meme nom que la colonne de la base (encore une bizzarerie de microsoft).

Fichier exemple : Filtre élaborée.xlsx (9,4 Ko)

1 « J'aime »

Bonjour
WildDigiSoft,
Votre réponse a résolu le problème. Donc si on a besoin des x petites valeurs, on utilise simplement la formule PETITE VALEUR?
Merci beaucoup à vous tous.
Cordialement

De rien, content d’avoir pu aider. Oui c’est ça bien ca PETITE.VALEUR.

Re WildDigiSoft,
Je reviens encore, désolé! ce matin nous arrivons à faire sortir les 5 plus grandes valeurs, et si il y a des doublons (exemple on a 10 chiffres: 1,2,3,4,5,6,7,8,8,9= les 5 plus grandes valeurs est de 9,8,8,7,6 mais si on veut avoir du résultat sans doublons càd 9,8,7,6,5, comment on fait?
Mercii !

Hello ,
Il y’a une option d’exclusion des doublons dans le filre élaboré as-tu essayé ?
soluce1

1 « J'aime »

Bonjour WildDigiSoft,
Ah oui, c’est vrai. On a réussi.
Merci à vous!
Bonne journée!

Super, Bon wk ^^ a vous :slight_smile:

Bonjour à tous,
WildDigisoft, on a un petit problème. La dernière fois nous avons travaillé avec filtre élaborée sans doublon et on a réussi à sortir les 5 plus grandes valeurs sans tenir compte de la première colonne(“Colonne B pour notre cas”). Pour cette fois-ci, on me demande de faire sortir les 5 plus grandes valeur en tenant compte l’inexistence de doublon dans la colonne B c’est à dire que les valeurs des doublons sont sommés pour une ligne.
Ci-joint un fichier expliquant l’ancien résultat et celui souhaité actuellement.
Merci à vous!
=> Filtre élaborée (2).xlsx (9,5 Ko)

Bonjour,

Dans ce cas, il est plus rapide de faire un tableau croisé dynamique de l’ensemble des données et de prendre que les 5 plus grande qui sont déjà classées

Filtre élaborée (2).xlsx (12,9 Ko)

Re,

Avec une macro établissant le TCD (effectue par l’enregistreur et améliorée)

Macro :

Option Explicit

Sub CreationTCD()
  Dim Dl%, i% 'Déclaration des variables
  'Suppression du TCD s'il existe
  Range("O1").Select
    If Range("O1").Value <> "" Then
      Feuil1.PivotTables("Tableau croisé dynamique3").PivotSelect "", _
        xlDataAndLabel, True
      Selection.Delete Shift:=xlToLeft
    End If
    
  Dl = Range("B" & Rows.Count).End(xlUp).Row 'Dernière ligne colonne B
  Range("A2").Select
  'Numérote les clients sans les doublons
  ActiveCell.FormulaR1C1 = "=IF(COUNTIF(R1C[1]:R[-1]C[1],RC[1])>0,"""",MAX(R1C:R[-1]C)+1)"
  Range("A2").Select
  Selection.AutoFill Destination:=Range("A2:A" & Dl)
  'Boucle pour trouver la ligne portant le 5ème client
    For i = 1 To Dl
      If Cells(i, 1).Value = 5 Then
        Range(Cells(1, 2), Cells(i, 3)).Select 'Sélection de la plage à prendre en compte
        Exit For
      End If
    Next i
  'Création du TCD
  ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
    Range(Cells(1, 2), Cells(i, 3)), Version:=xlPivotTableVersion15).CreatePivotTable _
    TableDestination:=Cells(1, 15), TableName:="Tableau croisé dynamique3", _
    DefaultVersion:=xlPivotTableVersion15
    With Feuil1.PivotTables("Tableau croisé dynamique3").PivotFields("Client")
      .Orientation = xlRowField
      .Position = 1
    End With
  Feuil1.PivotTables("Tableau croisé dynamique3").AddDataField ActiveSheet. _
    PivotTables("Tableau croisé dynamique3").PivotFields("Montant"), "Somme de Montant", xlSum
  'Renomme l'entête CLIENT
  Range("O1").Select
  ActiveSheet.PivotTables("Tableau croisé dynamique3").CompactLayoutRowHeader = "Client"
  'Renomme l'entête MONTANT
  Range("P1").Select
  ActiveSheet.PivotTables("Tableau croisé dynamique3").DataPivotField.PivotItems( _
    "Somme de Montant").Caption = "Montant "
  Range("P2").Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique3")
      .ColumnGrand = False
      .RowGrand = False
    End With
  'Tri des MONTANTS du + grand au + petit
  Range("O1").Select
  ActiveSheet.PivotTables("Tableau croisé dynamique3").PivotFields("Client").AutoSort xlDescending, "Montant "
  Columns("O:P").EntireColumn.AutoFit 'Formatage des colonnes
  Columns("A:A").Clear 'Efface les données de recherche de ligne en colonne A
  Range("A1").Select
End Sub

Filtre élaborée (2).xlsm (20,7 Ko)

Re,
D’accord, je vais essayer.
Merci beaucoup!