Bonjour,
Une méthode un peu différente finalement :
Sub Transférer()
Dim Tft(), cc, lgS, nT&, i&, ii&, n&
With Worksheets("Base").Range("A5").CurrentRegion
n = .Row - 1
cc = .Value
End With
For i = 6 - n To UBound(cc)
If IsDate(cc(i, 11)) Then
ReDim Preserve Tft(ii)
Tft(ii) = WorksheetFunction.Index(cc, i, 0)
ii = ii + 1: lgS = lgS & ";" & i + n
End If
Next i
With Worksheets("Temp")
nT = .Range("A" & .Rows.Count).End(xlUp).Row + 1
.Range("A" & nT).Resize(ii, UBound(cc, 2)).Value = WorksheetFunction.Transpose( _
WorksheetFunction.Transpose(Tft))
.Activate
End With
lgS = Split(lgS, ";")
With Worksheets("Base")
For i = UBound(lgS) To 1 Step -1
.Rows(lgS(i)).Delete
Next i
End With
End Sub
Ne pas laisser la Change antérieure active en même temps (ou alors interrompre les évènements dans la proc. ci-dessus).
Tu pourras la raccorder à un bouton, ou la lancer directement ou avec un raccourci clavier...
Cordialement.