[VBA excel] Récupérer dans une liste box les choix d'un AutoFilter [Résolu]

titibobo2 46 Messages postés dimanche 27 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 10 oct. 2006 à 15:37 - Dernière réponse : titibobo2 46 Messages postés dimanche 27 février 2005Date d'inscription 28 novembre 2007 Dernière intervention
- 11 oct. 2006 à 10:10
bonjour
 
Est-il possible, dans un userform, de récupérer et d'afficher dans une listbox le résultat (sans doublon) d'un filtre automatique ?
 
J'ai un bouton das le userform qui execute les filtres :

<ol><li class="li1">
Selection.AutoFilter Field:=1
</li><li class="li1">
Selection.AutoFilter Field:=8, Criteria1:="="
</li></ol>et donc j'aimerais affichier dans le listbox les choix possible du Field 1
 
 
vous avez une petite idée ?
Merci beaucoup !!
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
titibobo2 46 Messages postés dimanche 27 février 2005Date d'inscription 28 novembre 2007 Dernière intervention - 11 oct. 2006 à 10:10
3
Merci
Merci.
Ça foncitonne avec le code suivant :

    Dim Cell As Range
    Dim Unique As New Collection
    Dim Valeur As Range
    Dim i As Integer
   
    'Récupère la derniere ligne non vide dans la colonne A
    i = Range("A65536").End(xlUp).Row
   
    On Error Resume Next
    'boucle sur les cellules de la colonne A
    For Each Cell In Range("A8:A" & i)
    If Not Cell.EntireRow.Hidden Then Unique.Add Cell, CStr(Cell)
        'Stocke les données dans une collection
        '(La collection n'accepte que des données uniques et permet donc
        ' de filtrer facilement les doublons).
        'Unique.Add Cell, CStr(Cell)
    Next Cell
    On Error GoTo 0
   
    'Boucle sur le contenu de la collection pour alimenter la ListBox
    For Each Valeur In Unique
        Me.ListBox1.AddItem Valeur
    Next Valeur

Merci titibobo2 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 74 internautes ce mois-ci

Commenter la réponse de titibobo2
cs_MPi 3872 Messages postés mardi 19 mars 2002Date d'inscription 13 juillet 2018 Dernière intervention - 10 oct. 2006 à 23:40
0
Merci
Salut,


Je ne sais pas si c'est le genre de chose que tu recherches, mais bon,
je te le mets quand même. Il y a peut-être d'autres façons de procéder,
mais c'est celle que j'utiliserais en attendant d'en trouver une
meilleure...


Private Sub CommandButton1_Click()

    Dim Cellule As Range

    Dim nbLignes As Long

   

    'Nombre de lignes à lire

    nbLignes = Cells.Find("*", Range("A1"), , , xlByRows, xlPrevious).Row

   

    'Parcourir toutes les cellules laissées visibles par le filtre (ici colonne C)

    For Each Cellule In Range("C1:C" & nbLignes).SpecialCells(xlCellTypeVisible)

        If Not IsInList(Cellule) Then

            ListBox1.AddItem Cellule

        End If

    Next

   

End Sub


'Fonction qui vérifie si la valeur est déjà dans la liste

Function IsInList(Valeur) As Boolean

    Dim I As Integer

   

    For I = 0 To ListBox1.ListCount - 1

        If CStr(Valeur) = ListBox1.List(I) Then

            IsInList = True

            Exit For

        End If

    Next

End Function

MPi
Commenter la réponse de cs_MPi

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.