Re,re, re bonjour
Heu ! ... Es-tu certain de savoir ce que veux faire ?
Une question en appelle une autre ... J’ai l’impression de jouer aux poupées russes.
Ma période de doute étant passée, voici la benjamine
Sub Test()
Dim C As Range, D As Range, MaPlage As Range
Dim NbLigne As Long
With Worksheets("Feuil2")
'Dans ma "Feuil1", je cherche le mot "TOTO" quelque part en "Col 1".
Set C = Worksheets("Feuil1").Columns("A:A").Find("TOTO", LookIn:=xlValues, LookAt:=xlPart)
'Une fois trouvé ce mot
If Not C Is Nothing Then
'On définit la plage à copier
Set MaPlage = C.Offset(3, 2).Resize(20, 8)
'On recherche le mot "Tata" dans la colonne 1 de la plage
Set D = MaPlage.Columns(1).Find("TATA", LookIn:=xlValues, LookAt:=xlPart)
If Not D Is Nothing Then
'Calcul du nombre de lignes à copier
NbLigne = D.Row - C.Offset(3, 2).Row + 1
Else
NbLigne = 20
End If
'Effacer toutes les données ultérieures dans la Feuil2
.Cells(30, 2).Resize(20, 8).Clear
'Copier la plage et Coller en feuille 2, à partir de la ligne 30, Colonne 2
C.Offset(3, 2).Resize(NbLigne, 8).Copy .Cells(30, 2)
Application.CutCopyMode = False
End If
Set C = Nothing: Set D = Nothing: Set MaPlage = Nothing
End With
End Sub
A+