Voilà ce que j'ai
Worksheets('données04').Select 'Je me place dans la feuille où tu dois chercher la donnée à copier
ActiveSheet.Range('A1').Select
Selection.CurrentRegion.Select 'J'établis la plage complète des données dans ta feuille 'données04'
Set tbl = ActiveCell.CurrentRegion 'Plage de tes données
DernièreLigne = tbl.Rows.Count 'Dernière ligne de recherche
DernièreColonne = tbl.Columns.Count 'Dernière colonne de données (ne sert pas ici mais si tu en as besoin...)
NoColonneChercher = 'B' 'ta recherche s'effectue dans la colonne A et ...
NoLigneTrouvée = 1 '... sur la 1ère ligne... au début
'La plage de ta recherche couvre de la ligne NoLigneTrouvée à DernièreLigne
PlageRecherche = NoColonneChercher + CStr(NoLigneTrouvée) + ':' + NoColonneChercher + CStr(DernièreLigne) '... la plage de recherche s'étend de la ligne de la dernière occurrence trouvée à la dernière ligne renseignée de la colonne
With Worksheets('données04').Range(PlageRecherche)
'Je cherche la première occurence AVANT de rentrer dans la boucle de recherche des données suivantes
Set c = .Find(MotRecherché, LookIn:=xlFormulas)
If Not c Is Nothing Then 'si je trouve, je note les coordonnées de la 1ère occurence (c.adress) (il existe sans doute une autre syntaxe mais celle-ci me convient...)
Adresse = c.Address
Do 'J'ai trouvé une donnée, j'entre dans la boucle et commence par traiter la donnée avant de chercher l'occurence suivante
NoLigneCollage = NoLigneCollage + 1 'No de ligne dans la feuille où tu colles
NoLigneTrouvée = c.Row 'Nouveau No de ligne de la donnée trouvée
plage = 'C' + CStr(NoLigneTrouvée) + '
' + CStr(NoLigneTrouvée)
Worksheets('données04').Range(plage).Copy _
Destination:=feuille.Cells(NoLigneCollage, 1)
Set c = .FindNext(c) 'cherche l'occurrence suivante
Loop While Not c Is Nothing And c.Address <> Adresse
'je sors de la boucle si je ne trouve plus rien ou si l'occurence trouvée est sur la dernière ligne de la plage (la plage ne couvrant alors qu'une ligne)
End If
Set c = Nothing 'réinitialise c
End With
D'avance merci,