Filtrer Listview (Urgent !)

Résolu/Fermé
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014 - 9 déc. 2014 à 10:40
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014 - 9 déc. 2014 à 13:52
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

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
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 11:20
C'est exactement ce qu'il me fallait !

Merci beaucoup beaucoup Maurice
0
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
coraliie.c Messages postés 22 Date d'inscription jeudi 27 novembre 2014 Statut Membre Dernière intervention 9 décembre 2014
9 déc. 2014 à 13:52
OK Merci
0