Bonjour Lassaad, le Forum
Voici une procédure, qui une fois lancée, recherchera la String qui se trouve dans la Cellule "B6" de la Feuille "Stock PRR" et qui reportera les résultats escomptés dans les Cellules "B9:E9"... Ce code retournera autant de lignes à la suite (B10:E10, B11:E11 etc) que de fois où l'occurrence aura pu être trouvée dans la Base de Données.
Par ailleurs la ligne ".Range("B9:E18").ClearContents" vide les donnée précédemment retournée à chaque lancement (à supprimer si non désiré)
Option Explicit
Sub RotorSearching()
Dim TabData As Variant
Dim OrigineRef As String
Dim i As Long
Dim L As Byte
With Sheets("Stock PRR")
.Range("B9:E18").ClearContents
TabData = .Range("B21:L" & .Range("B65536").End(xlUp).Row)
OrigineRef = .Range("B6")
For i = 1 To UBound(TabData)
If TabData(i, 8) = OrigineRef Then
L = .Range("B19").End(xlUp).Row + 1
.Range("B" & L) = TabData(i, 1)
.Range("C" & L) = TabData(i, 2)
.Range("D" & L) = TabData(i, 3)
.Range("E" & L) = TabData(i, 4)
End If
Next
End With
End Sub
Remarque il serait souhaitable de travailler sur une feuille "Database" séparrée et ne contenant que les données, et une autre feuille pour ce genre d'extractions...
Bon Week End
@+Thierry