Filtrer Listview (Urgent !)

Résolu
coraliie.c Messages postés 22 Statut Membre -  
coraliie.c Messages postés 22 Statut Membre -
Bonjour,

J'essaye désespérement de filtrer une listview dans un userform.

Voici mon fichier :

https://www.cjoint.com/?DLjkU3ge4XH

J'aimerais pouvoir filtrer avec la combobox1 la colonne "Prochain Recyclage" de la listview1.

Petite difficulté en plus : il faudrait que j'ai juste l'année à taper pour que ça me sorte toutes les dates de l'année en question.

Est-ce que quelqu'un peut m'aider svp ?

2 réponses

  1. Maurice
     
    Bonjour

    avec une combobox
    Private Sub UserForm_Initialize()
       Me.Caption = "Test ListVien"
    ComboBox1.Clear
    For An = 2012 To 2030
       ComboBox1.AddItem An
    Next
    End Sub
    
    Private Sub UserForm_Activate()
       With ListView1
          .View = 3                   ' type Report
          .Gridlines = True           ' affichage de lignes
          .FullRowSelect = True       ' sélection complète de la ligne
          .HideColumnHeaders = False  ' afficher les en-têtes de colonnes
          .LabelEdit = 1              ' ne pas autoriser la saisie
          .ColumnHeaders.Clear  ' Vider le listview
          .ColumnHeaders.Add , , "Num", 0
          .ColumnHeaders.Add , , "Nom", 80
          .ColumnHeaders.Add , , "Prénom", 80
          .ColumnHeaders.Add , , "Habilitation", 80, lvwColumnCenter
          .ColumnHeaders.Add , , "Prochain Recyclage", 80
       End With
       
    InitList "", 1
    End Sub
    
    Private Sub InitList(V As String, Col As Long)
      N = 1
       With Feuil2 ' = aux CodeName
             ListView1.ListItems.Clear
          For L = 2 To .Range("A" & Rows.Count).End(xlUp).Row
             If Format(.Cells(L, Col), "yyyy") Like LCase(V) & "*" Then
                ListView1.ListItems.Add , , L
                ListView1.ListItems(N).ListSubItems.Add , , .Cells(L, 1)
                ListView1.ListItems(N).ListSubItems.Add , , .Cells(L, 2)
                ListView1.ListItems(N).ListSubItems.Add , , .Cells(L, 3)
                ListView1.ListItems(N).ListSubItems.Add , , Format(.Cells(L, 4), "yyyy")
                 N = N + 1
             End If
          Next
      End With
    End Sub
    ' ------ Tri lors de la sélection d'une colonne ----------
    Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
        ListView1.Sorted = False
        ListView1.SortKey = ColumnHeader.Index - 1
          If ListView1.SortOrder = lvwAscending Then
              ListView1.SortOrder = lvwDescending
             Else
              ListView1.SortOrder = lvwAscending
          End If
        ListView1.Sorted = True
        ListView1.ListItems(1).Selected = False
    End Sub
    
    Private Sub ListView1_Click()
          ChoixLig = ListView1.SelectedItem.Index
    '      TextBox1 = ChoixLig
    End Sub
    
    Private Sub ComboBox1_Change()
    InitList ComboBox1.Value, 4
    End Sub
    
    


    A+
    Maurice
    2
    1. coraliie.c Messages postés 22 Statut Membre
       
      C'est exactement ce qu'il me fallait !

      Merci beaucoup beaucoup Maurice
      0
  2. Maurice
     
    Re
    Pour choisir la bonne ligne de la feuille

    Private Sub ListView1_Click()
    '      ChoixLig = ListView1.SelectedItem.Index
    ChoixLig = Val(ListView1.SelectedItem)
          TextBox1 = ChoixLig
    End Sub
    


    A+
    Maurice
    0
    1. coraliie.c Messages postés 22 Statut Membre
       
      OK Merci
      0