Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche As Range, premAdresse As String
[COLOR="red"]Dim cd As Worksheet[/COLOR]
'si ce n'est pas la cellule B1 qui vient du changer, quitter la macro
If Not Target(1, 1).Address = "$B$1" Then Exit Sub
'nettoyer la zone d'affichage de la racherche
Range(Range("A4"), Range("A4").End(xlDown)).Resize(, 4).ClearContents
'si la cellule est vide, quitter la macro
If Target.Text = vbNullString Then Exit Sub
[COLOR="Red"]Set cd = Worksheets("recherche cd")[/COLOR]
With ThisWorkbook.Sheets("vidéothèque")
'lancer la recherche
Set cellRecherche = .Columns("A").Find(Target.Text, , xlValues, xlWhole, , , False)
'si rien n'est trouvé, quitter la macro
If cellRecherche Is Nothing Then Exit Sub
premAdresse = cellRecherche.Address
Do
'copier la ligne dans "recherche CD"
.Range(cellRecherche, cellRecherche.Offset(, 1)).Copy
[COLOR="red"]cd.Range("A" & cd.Range("A65000").End(xlUp).Row + 1).PasteSpecial Paste:=xlPasteValues[/COLOR]
'chercher la cellule suivante
Set cellRecherche = .Columns("A").FindNext(cellRecherche)
Loop Until cellRecherche.Address = premAdresse
End With
End Sub