Récupérer les valeur uniques d'un filtre

Bonjour à tous.

Je souhaite récupérer les valeur uniques d'un filtre :

image

les valeurs sur la colonnes sont en doubles :

image

Merci d'avance pour votre aide.

Bonjour,

Onglet Données > filtres & tri > avancé (avec un engrenage) > cochez "unique" dans la fenêtre qui s'ouvre.


PS : mettez à jour votre profil SVP, ce n'est pas l'interface d'Excel 2010 sur votre screenshot

Salut,

merci je vais tester ça et te faire un retour.

en faisant ça tous mes filtres ont disparu.

J'ai toujours des doublons dans ma colonne et je ne vois toujours pas comment extraire ma liste

Vous devriez retirer immédiatement votre screenshot du site. Vous publiez des IP d'entreprise sur le Web c'est très grave.

Pour votre problème, il va falloir passer par une solution d'automatisation type VBA ou PowerQuery. Quel résultat souhaitez-vous exactement ? extraire les valeurs uniques de votre colonne dans une nouvelle feuille ?

Veuillez joindre un fichier d'exemple ANONYMISÉ. Merci.

merci effectivement habituellement je retire les ip.

Merci pour ta réactivité.

Cette fois ci j'ai un fichier exemple

image

je souhaite récupérer sur une feuille les valeur unique qui apparaissent dans le filtre de la colonne A :

image

soit une feuille qui contiendrait cette liste :

bleu

gris

vert

jaune

sans les doublons du coup.

J'ai joint mon fichier exemple :

5anonyme.xlsx (8.57 Ko)

Merci encore à toi

Voici ci-joint une solution via Macro VBA (Windows only).

Dans le code de la macro vous pouvez modifier les cellules de base/export selon votre besoin. Il y a egalement possibilité de trier le résultat si vous avez .NET 3.5 installé sur votre PC.

Ci-après le code et ci-joint votre fichier MAJ.

4anonyme.xlsm (19.15 Ko)
Option Explicit

Public Sub LancerExtraction()
  With Range("A2")  ' activesheet
    ExtractUnique baseRng:=Range(.Cells, .End(xlDown)), toRng:=Range("K2")
  End With
End Sub

Private Sub ExtractUnique(ByVal baseRng As Range, ByRef toRng As Range)
  ' redimensionner la range si colonne entiere
  With baseRng.Worksheet
    If baseRng.Rows.Count = .Rows.Count Then
      Set baseRng = Range(baseRng.Item(1), .Cells(.Rows.Count, baseRng.Column).End(xlUp))
    End If
  End With

  ' extraire array en memoire
  Dim baseArr As Variant
  baseArr = baseRng.Value

  ' extraire uniques (sur premiere colonne)
  Dim dict As Object: Set dict = CreateObject("scripting.dictionary")
  Dim i As Long
  For i = LBound(baseArr, 1) To UBound(baseArr, 1)
    Set dict(baseArr(i, 1)) = Nothing
  Next i

  Dim outArr As Variant
  outArr = dict.Keys()

'  ' decommenter pour trier le resultats dans l'ordre alphabetique
'  ' !!! BESOIN DE .NET 3.5 installé (arraylist)
'
'  Dim arrUnique As Object: Set arrUnique = CreateObject("System.Collections.ArrayList")
'  For i = 0 To dict.Count - 1
'    arrUnique.Add dict.Keys()(i)
'  Next i
'  arrUnique.Sort
'  outArr = arrUnique.ToArray

  ' cleanup export
  If toRng.Item(1).Value <> "" Then
    toRng.CurrentRegion.ClearContents
  End If
  ' export
  toRng.Resize(UBound(outArr) + 1, 1).Value = WorksheetFunction.Transpose(outArr)
End Sub

Bonjour,

Via VBA ça devrait fonctionner

P.

Rechercher des sujets similaires à "recuperer valeur uniques filtre"