ListView: Bogue sur Réglage (BIS)
Salut Tous,
Dans ma ListView, j'ai rajouté des colonnes.
J'ai besoin de votre aide sur trois points.
1- PEUT-ON METTRE EN SURBRILLANCE LE MOT RECHERCHÉ DANS LA LISTVIEW.
2- PEUT-ON CHANGÉ LA COULEUR DES ENTÊTES DE LA LISTVIEW.
3- ENLEVER LA RECHERCHE ADAPTATIVE: I.E.: ÉCRIRE DS BTE RECHERCHE ET FAIRE ENTER.
Ce fichier aura environ 16,000 lignes. J'aimerais que la recherche se fasse plus vite qu'avec la recherche adaptative.
Je joins mon fichier.
Merci beaucoup.
Bonjour Moé Kolisse, Forum
a voir si cela convient
1- PEUT-ON METTRE EN SURBRILLANCE LE MOT RECHERCHÉ DANS LA LISTVIEW.
remplacer la macro Alimente listview par celle-ci
Ecriture en rouge gras
Sub Alimente_ListView()
Dim i, L, x
Dim TabDataSheet As Variant
Dim TabDataArray() As Variant
'Vide le contenu de la listview
UserForm_Liste.ListView_Annuaire.ListItems.Clear
TabDataSheet = ws.Range("B3:K" & ws.Range("B" & Rows.Count).End(xlUp).Row)
For L = 1 To UBound(TabDataSheet, 1)
If TabDataSheet(L, 1) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 2) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 3) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" _
Or TabDataSheet(L, 4) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 5) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 6) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 7) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" _
Or TabDataSheet(L, 8) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 9) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Or TabDataSheet(L, 10) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Then
ReDim Preserve TabDataArray(10, i)
For x = 1 To 10
TabDataArray(x, i) = TabDataSheet(L, x)
Next
i = i + 1
End If
Next L
On Error Resume Next
For i = 0 To UBound(TabDataArray, 2)
UserForm_Liste.ListView_Annuaire.ListItems.Add , , (TabDataArray(1, i))
If UserForm_Liste.TextBox_Recherche <> "" And TabDataArray(1, i) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Then
UserForm_Liste.ListView_Annuaire.ListItems(UserForm_Liste.ListView_Annuaire.ListItems.Count).Bold = True
UserForm_Liste.ListView_Annuaire.ListItems(UserForm_Liste.ListView_Annuaire.ListItems.Count).ForeColor = vbRed
End If
For x = 2 To UBound(TabDataArray, 1)
UserForm_Liste.ListView_Annuaire.ListItems(i + 1).ListSubItems.Add , , (TabDataArray(x, i))
If UserForm_Liste.TextBox_Recherche <> "" And TabDataArray(x, i) Like "*" & UserForm_Liste.TextBox_Recherche.Text & "*" Then
UserForm_Liste.ListView_Annuaire.ListItems(UserForm_Liste.ListView_Annuaire.ListItems.Count).ListSubItems(x - 1).Bold = True
UserForm_Liste.ListView_Annuaire.ListItems(UserForm_Liste.ListView_Annuaire.ListItems.Count).ListSubItems(x - 1).ForeColor = vbRed
End If
Next x
Next i
End Sub2- PEUT-ON CHANGÉ LA COULEUR DES ENTÊTES DE LA LISTVIEW.
Je ne crois pas que l'on puisse changé la couleur des entêtes si facilement
3- ENLEVER LA RECHERCHE ADAPTATIVE: I.E.: ÉCRIRE DS BTE RECHERCHE ET FAIRE ENTER.
Supprimer la macro
Private Sub TextBox_Recherche_Change()
Alimente_ListView
'Force la Majuscule'
TextBox_Recherche = UCase(TextBox_Recherche)
End Subremplacer par
Private Sub Label_ENTER_Click()
Alimente_ListView
'Force la Majuscule'
TextBox_Recherche = UCase(TextBox_Recherche)
End SubBonjour BOB71AU,
Vous avez résolu mes 2 problèmes principaux.
La recherche avec le bouton ENTER est maintenant instantanée avec mes 18,857 lignes de données.
Pour la surbrillance, c'est impressionnant. Je ne croyais pas que ça prenait une syntaxe si compliquée.
MERCI BEAUCOUP d'avoir pris temps de m'aider.