Sub LignesMotRecherche()
'
' LignesMotRecheche Macro
' Macro enregistrée le 22/07/2011 par val
'
'
Dim S As Worksheet
Dim rep
Dim R As Range
Dim var
Dim dep&
Dim i&
Dim j&
Dim k&
Dim cpt&
Dim T()
Dim A$
Dim B$
rep = Application.InputBox("Rechercher pièces en magasin", "Lignes contenant le mot recherché")
If rep = False Or rep = "" Then Exit Sub
B$ = LCase(rep)
'Set R = ActiveSheet.UsedRange
Set R = ThisWorkbook.Sheets("base").Columns("H:N")
dep& = R.Row
var = R
For i& = 1 To UBound(var, 1)
For j& = 1 To UBound(var, 2)
A$ = LCase(Trim(var(i&, j&))) 'commodité d'écriture
If InStr(1, A$, B$) > 0 Then
cpt& = cpt& + 1
ReDim Preserve T(1 To UBound(var, 2) + 1, 1 To cpt&)
T(1, cpt&) = i& + dep& - 1
For k& = 1 To UBound(var, 2)
T(k& + 1, cpt&) = var(i&, k&)
Next k&
Exit For
End If
Next j&
Next i&
If cpt& = 0 Then
MsgBox "Aucune occurence de ''" & rep & "'' n'a été trouvée."
Exit Sub
Else
Set S = Sheets.Add(before:=ActiveSheet)
Set R = S.Range(S.Cells(1, 1), S.Cells(UBound(T, 2), UBound(T, 1)))
R = Application.WorksheetFunction.Transpose(T)
End If
ActiveWorkbook.Save
ActiveWindow.Close
ActiveCell.Offset(6, 0).Range("A1").Select
Application.CommandBars("Stop Recording").Visible = False
ActiveSheet.Shapes("CommandButton1").Select
ActiveWorkbook.Save
ActiveWorkbook.Save
ActiveCell.Offset(1, 1).Range("A1").Select
ActiveWorkbook.Save
Sheets("BASE").Select
Application.Goto Reference:="LignesMotRecherche"
ActiveSheet.Shapes("CommandButton1").Select
Selection.Cut
Sheets("BASE").Select
ActiveSheet.Paste
ActiveCell.Offset(1, 4).Range("A1").Select
Application.Run _
"'BASE A IMPORTER DANS AURORE AU 21 7 2011.xlsx'!LignesMotRecherche"
ActiveWorkbook.Save
ActiveWorkbook.Save
End Sub