bonjour tous,
Une application sur laquelle j'ai planché dernièrement, pour faire une recherche dans une base de données.
En colonne A j'ai les fournisseurs, et en colonne B leurs produits.
Je fais ma recherche de produit via un userform comprenant 3 textbox, et je masque toutes les lignes qui ne correspondent pas.
Bon y'aurait certainement moyen d'optimiser, vu que j'y ai pas encore consacré trop de temps, mais ça remplit bien la fonction que je voulais, assez rapidement avec plus de 2000 lignes de produits.
Mon but maintenant était d'essayer de gérer la saisie des accents, mais là c'est un peu hard...
Mon code :
Sub RechercheCle()
Dim c As Range
Dim FirstAddress As String
Dim i As Byte
Dim Cle(3) As String
Dim DerLig As Integer, Lig As Integer
DerLig = Range("B65536").End(xlUp).Row
Application.ScreenUpdating = False
Cle(1) = UserForm1.TextBox1.Value
Cle(2) = UserForm1.TextBox2.Value
Cle(3) = UserForm1.TextBox3.Value
For i = 1 To 3
If Not Cle(i) = "" Then
With Worksheets(1).Range("B2:B" & DerLig)
Set c = .Find("*" & Cle(i) & "*", LookIn:=xlValues)
If Not c Is Nothing Then
FirstAddress = c.Address
Do
c.Interior.ColorIndex = 6
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> FirstAddress
End If
Lig = 2
While Not IsEmpty(Cells(Lig, 2))
If Not Cells(Lig, 2).Interior.ColorIndex = 6 Then
Rows(Lig).EntireRow.Hidden = True
End If
Lig = Lig + 1
Wend
Cells.Interior.ColorIndex = xlNone
End With
End If
Next i
End Sub