Private Sub T1_Change()
Dim S As Worksheet
Dim var
Dim i&
Dim j&
Dim k&
Dim cpt&
Dim Tbl()
Dim bool As Boolean
If T1 = "" Then
L1.ListItems.Clear
Exit Sub
End If
For Each S In ThisWorkbook.Worksheets
If Left(S.Name, 3) = "BDD" Then '/// on ne fait la recherche que sur les feuilles dont le nom commence poar BDD
var = S.Range("A2:H" & S.[a65536].End(xlUp).Row)
For i& = 1 To UBound(var, 1)
For j& = 1 To UBound(var, 2)
bool = False
If CheckBox1 Then
If CheckBox2 Then
If var(i&, j&) = T1 Then bool = True
Else
If var(i&, j&) Like "*" & T1 & "*" Then bool = True
End If
Else
If CheckBox2 Then
If UCase(var(i&, j&)) = UCase(T1) Then bool = True
Else
If UCase(var(i&, j&)) Like UCase("*") & UCase(T1) & UCase("*") Then bool = True
End If
End If
If bool Then
cpt& = cpt& + 1
ReDim Preserve Tbl(1 To 9, 1 To cpt&)
Tbl(1, cpt&) = S.Name & " L" & i& + 1 & " C" & j& 'nom de la feuille, n° ligne, n° colonne
For k& = 1 To UBound(var, 2)
Tbl(k& + 1, cpt&) = var(i&, k&)
Next k&
Exit For
End If
Next j&
Next i&
End If '///
Next S
If cpt& = 0 Then
L1.ListItems.Clear
Exit Sub
End If
With L1
.ListItems.Clear
.View = lvwReport
.FullRowSelect = True
.Gridlines = True
For i& = 1 To UBound(Tbl, 2)
.ListItems.Add , , Tbl(1, i&)
For j& = 2 To UBound(Tbl, 1)
.ListItems(.ListItems.Count).ListSubItems.Add , , Tbl(j&, i&)
Next j&
Next i&
End With
End Sub
Private Sub UserForm_Initialize()
With L1
With .ColumnHeaders
.Clear
.Add , , " Source", 0, lvwColumnLeft '/// on met la largeur de colonne à 0 pour qu'elle ne soit pas visible
.Add , , "LIGNE° PI", 60, 2
.Add , , "ZONE", 60, 2
.Add , , "ADRESSE", 60, 2
.Add , , "CANTON", 100, 2
.Add , , "TYPE", 50, 2
.Add , , "COORDONNEES", 80, 2
.Add , , "Localisation", 90, 2
.Add , , "Détecteur", 60, 2
End With
.View = lvwReport
.FullRowSelect = False
End With
End Sub