Sub Extraction()
Dim Pl As Range, i&, j&, TLigDat(), TLigId(), Tablo()
On Error GoTo err
With Sheets("Stocks Evolution des coûts")
Set Pl = .Range("A1:A" & .Range("A" & .Rows.Count).End(xlUp).Row)
For i = 1 To Pl.Rows.Count
If IsDate(.Cells(i, 1)) Then
ReDim Preserve TLigDat(0 To j): TLigDat(j) = i: j = j + 1
End If
Next i
j = 0
For i = 1 To Pl.Rows.Count
If .Cells(i, 1) Like "###*" Then
ReDim Preserve TLigId(LBound(TLigDat) To UBound(TLigDat) + 1): TLigId(j) = i: j = j + 1
End If
Next i
ReDim Preserve TLigId(0 To j)
TLigId(UBound(TLigId)) = Pl.Rows.Count
j = 0
ReDim Preserve Tablo(LBound(TLigDat) To UBound(TLigDat), 1 To 8)
For i = LBound(TLigDat) To UBound(TLigDat)
While TLigDat(j) < TLigId(i + 1)
Tablo(j, 1) = .Cells(TLigId(i), 1)
Tablo(j, 2) = .Cells(TLigId(i), 3)
Tablo(j, 3) = .Cells(TLigDat(j), 1)
Tablo(j, 4) = .Cells(TLigDat(j), 3)
Tablo(j, 5) = .Cells(TLigDat(j), 6)
Tablo(j, 6) = .Cells(TLigDat(j), 8)
Tablo(j, 7) = .Cells(TLigDat(j), 10)
Tablo(j, 8) = .Cells(TLigDat(j), 12)
j = j + 1
Wend
Next i
End With
copie:
With Sheets("Feuil2")
.[A2].Resize([A2].CurrentRegion.Rows.Count - 1, [A2].CurrentRegion.Columns.Count).ClearContents
.[A2].Resize(UBound(Tablo) + 1, UBound(Tablo, 2)) = Tablo
End With
Exit Sub
err: GoTo copie
End Sub