bonjour zinelamri,
une proposition,
Sub Filtre2()
Sheets("Cor").Range("A20:F100").ClearContents 'RAZ
With Sheets("Base").Range("B1:B100") 'La colonne B
i = .SpecialCells(xlVisible).Count 'nombre de cellules visible (avec entête)
If i <= 1 Then
MsgBox "aucun cellule visible)"
Else
Set c = .Offset(10 + .Rows.Count).Resize(i) 'destination temporaire
.Copy c 'copier cellules visibles et coller dans c
With c.Offset(1, -1).Resize(i - 1) 'colonne à gauche = index
.FormulaR1C1 = "=row()-" & c.Row
.Value = .Value
End With
i1 = i \ 2 'la moitié
c.Cells(2, 0).Resize(i1, 2).Copy Sheets("Cor").Range("A20") 'copier et coller premier moitié
c.Cells(2 + i1, 0).Resize(i - i1, 2).Copy Sheets("Cor").Range("E20") 'copier et coller duexième moitié
c.Offset(, -1).Resize(, 2).ClearContents 'RAZ c
c.Borders.LineStyle = xlNone 'effacer bordures
End If
End With
End Sub