J'aimerais obtenir les résultats suivants: Dans ma feuille Excel, j'ai un ensemble de données auxquelles j'ai appliqué le filtrage dynamique en créant une «zone de recherche». Le filtrage lui-même fonctionne bien, pas de problèmes là-bas, cependant, je voudrais encore l'améliorer, en mettant en évidence le texte (qui est entré dans la boîte de recherche) dans les lignes filtrées en rouge. Je joins une capture d'écran de ce que j'aimerais voir dans la version finale.Recherche dynamique avec surbrillance - Excel VBA
Toute idée de comment cela peut être entré dans mon code actuel?
Comme toujours, toute aide est grandement appréciée! Merci!
est en dessous du code que j'utilise pour le filtrage dynamique:
Private Sub TextBox1_Change()
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
If Len(TextBox1.Value) = 0 Then
Sheet1.AutoFilterMode = False
Else
If Sheet1.AutoFilterMode = True Then
Sheet1.AutoFilterMode = False
End If
Sheet1.Range("B4:C" & Rows.Count).AutoFilter field:=1, Criteria1:="*" & TextBox1.Value & "*"
End If
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
Merci pour le code! Cela semble fonctionner avec mon code, cependant, il y a un léger problème. Pour moi, les personnages ne deviennent rouges que SI je double clique sur la cellule (A1). Je veux voir cela en action en temps réel. En outre, pour une raison quelconque, si je supprime le texte, les caractères restent rouges. Toute solution pour ceux-ci? :) Sinon, vraiment sympa! – llorcs
@llorcs - pour voir l'action en "temps réel", supprimez cette ligne du code: 'If Target <> Range (" a1 ") Puis Exit Sub' – Vityata
En ce qui concerne la cellule vide, qui fait toutes les valeurs en rouge, sont d'environ 10 façons de résoudre ce problème. L'un d'entre eux consiste à ajouter 'If strValue = vbNullString Then Exit Sub' dans le code. Je l'ai ajouté. @llorcs – Vityata