salut
voila j'ai un tableau excel avec 50 colonne et 23232 ligne je souhaite préciser la recherche avec usf dans 3 colonne seulement mais les resulta ce fera dans une listbox avec la ligne entière . ce que j'ai réussi a faire jusqu’à présent c étendre la recherche sur toute les colonne ce qui donne un resulta tres .
Dim S As String, i As Long, Lmax As Long, Nbr As Long, k As Long, NbreCol As Long
Dim L, V, LigneOK, m As Long
NbreCol = 50 '<---- Nombre de colonnes à prendre en compte
With Sheets("ANOMAL").Activate
Dim Sht As Worksheet
Set Sht = Worksheets(ANOMAL)
If TextBox1 = "" Then
ListBox1.Clear
Else
ListBox1.Clear
Lmax = Sht.Range("A" & Sht.Rows.Count).End(xlUp).Row
V = Range(Sht.Range("A2"), Sht.Cells(Lmax, NbreCol)).Value
ReDim LigneOK(1 To Lmax - 1)
S = "*" & LCase(TextBox1) & "*"
For i = 1 To Lmax - 1
For m = 1 To NbreCol
LigneOK(i) = False
If LCase(V(i, m)) Like S Then
LigneOK(i) = True
Nbr = Nbr + 1
Exit For
End If
Next m
Next i
If Nbr = 0 Then Exit Sub
ReDim L(0 To Nbr - 1, 0 To NbreCol - 1)
Nbr = -1
For i = 1 To Lmax - 1
If LigneOK(i) Then
Nbr = Nbr + 1
For k = 0 To NbreCol - 1
L(Nbr, k) = V(i, k + 1)
Next k
End If
Next i
ListBox1.List = L
End If
ListBox1.ListIndex = -1
End With
voila j'ai un tableau excel avec 50 colonne et 23232 ligne je souhaite préciser la recherche avec usf dans 3 colonne seulement mais les resulta ce fera dans une listbox avec la ligne entière . ce que j'ai réussi a faire jusqu’à présent c étendre la recherche sur toute les colonne ce qui donne un resulta tres .
Dim S As String, i As Long, Lmax As Long, Nbr As Long, k As Long, NbreCol As Long
Dim L, V, LigneOK, m As Long
NbreCol = 50 '<---- Nombre de colonnes à prendre en compte
With Sheets("ANOMAL").Activate
Dim Sht As Worksheet
Set Sht = Worksheets(ANOMAL)
If TextBox1 = "" Then
ListBox1.Clear
Else
ListBox1.Clear
Lmax = Sht.Range("A" & Sht.Rows.Count).End(xlUp).Row
V = Range(Sht.Range("A2"), Sht.Cells(Lmax, NbreCol)).Value
ReDim LigneOK(1 To Lmax - 1)
S = "*" & LCase(TextBox1) & "*"
For i = 1 To Lmax - 1
For m = 1 To NbreCol
LigneOK(i) = False
If LCase(V(i, m)) Like S Then
LigneOK(i) = True
Nbr = Nbr + 1
Exit For
End If
Next m
Next i
If Nbr = 0 Then Exit Sub
ReDim L(0 To Nbr - 1, 0 To NbreCol - 1)
Nbr = -1
For i = 1 To Lmax - 1
If LigneOK(i) Then
Nbr = Nbr + 1
For k = 0 To NbreCol - 1
L(Nbr, k) = V(i, k + 1)
Next k
End If
Next i
ListBox1.List = L
End If
ListBox1.ListIndex = -1
End With