bonsoir,
voici une macro qui me convient mais je voudrais qu'elle ne copie pas le format ni la mise en forme conditionnelle de la base de données.
et ne prendre que les 2 premières colonnes de la BD.
Comment puis la modifier?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche As Range, premAdresse As String
'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
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"
cellRecherche.EntireRow.Copy Range("A" & Rows.Count).End(xlUp).Offset(1)
'chercher la cellule suivante
Set cellRecherche = .Columns("A").FindNext(cellRecherche)
Loop Until cellRecherche.Address = premAdresse
End With
End Sub
Merci
Bpol
voici une macro qui me convient mais je voudrais qu'elle ne copie pas le format ni la mise en forme conditionnelle de la base de données.
et ne prendre que les 2 premières colonnes de la BD.
Comment puis la modifier?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim cellRecherche As Range, premAdresse As String
'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
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"
cellRecherche.EntireRow.Copy Range("A" & Rows.Count).End(xlUp).Offset(1)
'chercher la cellule suivante
Set cellRecherche = .Columns("A").FindNext(cellRecherche)
Loop Until cellRecherche.Address = premAdresse
End With
End Sub
Merci
Bpol