Private Sub CommandButton3_Click()
Dim F As Worksheet
Dim Plage As Range, C As Range
Dim T As String, Firstaddress As String
Dim x As Integer, k As Long, m As Long, n As Long, j As Byte, q As Variant
Dim lig As Integer
Dim Tablo()
ListView1.ListItems.Clear
T = Me.TextBox1
If T = "" Then Exit Sub
n = 1
For Each F In Worksheets
With F
Set Plage = Application.Intersect(.UsedRange.Cells, .Range(.Cells(8, 1), .Cells(.Rows.Count, .Columns.Count)))
End With
Set C = Plage.Find(T, LookIn:=xlValues, LookAt:=xlPart)
If Not C Is Nothing Then
Firstaddress = C.Address
Do
If C.Row = lig Then GoTo boucle
ReDim Preserve Tablo(0 To 12, 0 To k)
Tablo(0, k) = F.Name
For x = 1 To 11
Tablo(x, k) = F.Cells(C.Row, x).Text
Next
Tablo(12, k) = C.Address(False, False)
lig = C.Row
k = k + 1
boucle:
Set C = Plage.FindNext(C)
Loop While Not C Is Nothing And C.Address <> Firstaddress
End If
Next F
On Error Resume Next
q = UBound(Tablo, 2)
On Error GoTo 0
If IsEmpty(q) Then
MsgBox "Le Texte " & T & " n'a pas été trouvé" & vbLf & "Faites un essai sur une partie du nom", vbCritical, Sign
Exit Sub
End If
For m = 0 To UBound(Tablo, 2)
ListView1.ListItems.Add , , Tablo(0, m)
For j = 1 To 12
ListView1.ListItems(n).ListSubItems.Add Text:=Tablo(j, m)
Next
n = n + 1
Next
End Sub