JONEY76
XLDnaute Occasionnel
Bonsoir à tous !
J'ai un userform, une listbox et une fonction de recherche
La recherche fonctionne
J'ai insérer du code pour trier une fois la recherche faite et les résultats affichés
Rien ne se passe en cliquant sur les en-tetes
Merci d'avance
J'ai un userform, une listbox et une fonction de recherche
La recherche fonctionne
J'ai insérer du code pour trier une fois la recherche faite et les résultats affichés
Code:
Dim Ligne As Long, Idx As Long
Private Sub CommandButton1_Click()
'vider la listview
ListView1.ListItems.Clear
'si texte de recherche ="" alors on sort
If TextBox1 = "" Then Exit Sub
'recherche
With Sheets("BD")
I = 1
Do
Set C = .Range(.Cells(I, 1), .Cells(I, 10)).Find(TextBox1, LookIn:=xlValues)
If Not C Is Nothing Then
flag = True
IniLvw C.Row
End If
I = I + 1
Loop While .Cells(I, 1) <> ""
End With
'si recherche non concluante
If Not flag Then MsgBox "Rien trouvé !"
txtTotal = ListView1.ListItems.Count
flag = False
End Sub
Sub IniLvw(a As Long)
With ListView1
.ListItems.Add , , Sheets("BD").Cells(a, 1)
x = .ListItems.Count
For I = 1 To 9
.ListItems(x).ListSubItems.Add , , Sheets("BD").Cells(a, I + 1)
Next
.ListItems(x).ListSubItems.Add , , a
For I = 1 To .ListItems.Count
If .ListItems(I) = TextBox1 Then .ListItems(I).Bold = True
For j = 1 To .ColumnHeaders.Count - 1
If .ListItems(I).ListSubItems(j).Text = TextBox1 Then
.ListItems(I).ListSubItems(j).Bold = True
End If
Next j
Next I
End With
End Sub
Private Sub CommandButton3_Click()
With Sheets("BD")
For I = 1 To 10
.Cells(Ligne, I) = Controls("TextBox" & I + 1)
Next
End With
With ListView1
.ListItems.Item(Idx) = TextBox2
For I = 1 To 9
.ListItems(Idx).SubItems(I) = Controls("TextBox" & I + 2)
Next
End With
For j = 2 To 11
Controls("TextBox" & j) = ""
Next
End Sub
Private Sub CommandButton4_Click()
Frame1.Visible = True
End Sub
Private Sub CommandButton5_Click()
Frame1.Visible = False
End Sub
Private Sub ListView1_Click()
With ListView1
If .ListItems.Count = 0 Then Exit Sub
Idx = .SelectedItem.Index
Ligne = CInt(.ListItems(.SelectedItem.Index).ListSubItems(10).Text)
TextBox2 = .SelectedItem
For j = 1 To .ColumnHeaders.Count - 2
Controls("TextBox" & j + 2) = .ListItems(.SelectedItem.Index).ListSubItems(j).Text
Next
End With
End Sub
Private Sub UserForm_Initialize()
Frame1.Visible = False
With ListView1.ColumnHeaders
.Add , , "Date", 70
.Add , , "Liasse", 70
.Add , , "N°Ensemble", 50
.Add , , "Designation ensemble", 150
.Add , , "N°plan", 50
.Add , , "Designation plan", 70
.Add , , "date", 95
.Add , , "Format", 50
.Add , , "Dessiné par", 50
.Add , , "Commentaire", 50
.Add , , , 0
End With
End Sub
Private Sub listview_columnclick(ByVal columnheader As mscomctllib.columnheader)
'trier ordre croissantou decroissant en cliquant dans l'entete
ListView1.Sorted = False
ListView1.SortKey = columnheader.Index - 1
If ListView1.SortOrder = lvwAscending Then
ListView1.SortOrder = lvwDescending
Else
ListView1.SortOrder = lvwAscending
End If
ListView1.Sorted = False
End Sub
Rien ne se passe en cliquant sur les en-tetes
Merci d'avance