Sub Macro1()
Dim be As Variant 'déclare la variable be (Boîte d'Entrée)
Dim t As Variant 'déclare la variable t (Tableau)
Dim i As Integer 'déclare la variable i (Incrément)
Dim tl() As Variant 'déclare le tableau de variables indexée tl (Tableau de Lignes)
Dim j As Integer 'déclare la variable j (incrément)
Dim z As Integer 'déclare la variable z (incrément)
be = Application.InputBox("Tapez le texte servant de critère.", "CRITÈRE", Type:=2) 'définit la boîte d'entrée be
If be = False Then Exit Sub 'si bouton "Annuler", sort de la procédure
t = Sheets("Feuil1").Range("A2").CurrentRegion 'définit le tableau t (l'ensemble des données de l'onglet "Feuil1")
For i = 1 To UBound(t, 1) 'boucle 1 : sur toutes les lignes du tableau t
If t(i, 3) Like "*" & be & "*" Then 'condition : si la valeur en colonne C du tableu t contient le texte de la boîte d'entrée
ReDim Preserve tl(2, j) 'redimensionne le tableau de variables indexées tl
For z = 1 To 3 'boucle 2 : sur trois colonnes
tl(z - 1, j) = t(i, z) 'récupère la valeur de la ligne en colonne z
Next z 'prochaine colonne de la boucle 2
j = j + 1 'incrémente j
End If 'fin de la condition
Next i 'prochaine ligne de la boucle 1
If j = 0 Then 'si le tableau de variables indexées est vide
MsgBox "Aucune ligne ne contient " & be & " !" 'message
Exit Sub 'si le tableau est vide, sort de la procédure
End If
With Sheets("Feuil2") 'prend en compte l'onglet "Feuil2"
.Range("A1").CurrentRegion.Clear 'efface les anciennes données de l'onglet "Feuil2"
'place en A1 de l'onglet "Feuil2" le tableau de variables indexées transposé
.Range("A1").Resize(UBound(tl, 2) + 1, 3) = Application.Transpose(tl)
.Select 'sélectionne l'onglet
End With 'fin de la prise en compte de l'onglet "Feuil2"
End Sub