[FONT=Courier New][SIZE=1][COLOR=blue]Private Sub[/COLOR] CommandButton1_Click()
[COLOR=green]'
' Déclaration des variables
'------------------------------[/COLOR]
[COLOR=blue]Dim[/COLOR] Sheet4 [COLOR=blue]As[/COLOR] Worksheet
[COLOR=blue]Dim[/COLOR] Sheet5 [COLOR=blue]As[/COLOR] Worksheet
[COLOR=green]'------------------------------[/COLOR]
[COLOR=blue]Dim[/COLOR] Ligne [COLOR=blue]As Long[/COLOR]
[COLOR=green]'------------------------------[/COLOR]
[COLOR=blue]Dim[/COLOR] MotCherche [COLOR=blue]As String[/COLOR]
[COLOR=blue]Dim[/COLOR] NumeroCar [COLOR=blue]As Integer[/COLOR]
[COLOR=green]'------------------------------[/COLOR]
[COLOR=blue]Dim[/COLOR] PlageRecherche [COLOR=blue]As[/COLOR] Range
[COLOR=blue]Dim[/COLOR] CelContenu [COLOR=blue]As[/COLOR] Range
[COLOR=green]'------------------------------[/COLOR]
'
[COLOR=green]' Initialisées pour l'exemple[/COLOR]
[COLOR=blue]Set[/COLOR] Sheet4 = Sheets("Feuil1")
[COLOR=blue]Set[/COLOR] Sheet5 = Sheets("Feuil2")
Sheet4.Activate
[COLOR=blue]If[/COLOR] txtdesignation2.Text = "" [COLOR=blue]Then[/COLOR]
[COLOR=green]' pour l'exemple, la source est en "Sheet5"[/COLOR]
Me.ListBox1.RowSource = "'" & Sheet5.CodeName & "'!A2:G" & (Range("Z1") + 1)
[COLOR=blue]Else[/COLOR]
Sheet5.Rows("2:63000").ClearContents
[COLOR=blue]Set[/COLOR] PlageRecherche = Range("B2:B" & Range("Z1").Value + 1)
[COLOR=green]' On place les caractère générique "[/COLOR][COLOR=red][B]*[/B][/COLOR][COLOR=green]"[/COLOR]
MotCherche = "*" & txtdesignation2.Text & "*"
Ligne = 1
[COLOR=green]' et pour chaque cellule de la colonne B, on utilise la fonction de[/COLOR]
[COLOR=green]' feuille de calcul : CHERCHE[/COLOR]
[COLOR=blue]On Error Resume Next[/COLOR]
[COLOR=blue]For Each[/COLOR] CelContenu [COLOR=blue]In[/COLOR] PlageRecherche
NumeroCar = WorksheetFunction.Search(MotCherche, CelContenu, 1)
[COLOR=green]' ... qui retourne une erreur si la chaîne n'est pas trouvée (non sensible à la casse)[/COLOR]
[COLOR=blue]If[/COLOR] Err <> 0 [COLOR=blue]Then[/COLOR]
Err.Clear
[COLOR=blue]Else[/COLOR]
Ligne = Ligne + 1
CelContenu.EntireRow.Copy Destination:=Sheet5.Rows(Ligne)
[COLOR=blue]End If[/COLOR]
[COLOR=blue]Next[/COLOR] CelContenu
[COLOR=blue]On Error GoTo 0[/COLOR]
[COLOR=green]' pour l'exemple, la source est en "Sheet5"[/COLOR]
Me.ListBox1.RowSource = "'" & Sheet5.CodeName & "'!A2:" & "G" & Ligne
[COLOR=blue]End If[/COLOR]
[COLOR=blue]End Sub[/COLOR][/SIZE][/FONT]