Sub toto()
'
Dim i%, j%, k%, l%, m%, n%, T As Sort
l = 2
m = 22
n = 70
ReDim oLg%(n), oPl%(m, l)
'
'Création de la liste oLg des entiers de 0 à n (ici n=70)
For i = 0 To n: oLg(i) = i: Next
'
'Mélange des éléments de oLg
Randomize
For i = n To 0 Step -1
j = Int(n * Rnd)
k = oLg(i): oLg(i) = oLg(j): oLg(j) = k
Next
'
'Extraction (indexée par les éléments de oLg) de m + 1 (ici 23) lignes
'de la plage de données Feuil1.[A2:E72]
With Feuil1.[A2]
For i = 0 To m
For j = 0 To l
oPl(i, j) = .Offset(oLg(i), 2 * j).Value '2 * j pour ignorer les colonnes vides
Next
Next
End With
'
'Sortie des données sélectionnées vers la feuille Feuil2
With Feuil2.[C9].Resize(m + 1, l + 1)
.Value = oPl
'
'Remise en ordre
Set T = .Parent.Sort
T.SortFields.Clear
T.SortFields.Add Key:=.Columns(1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
T.SortFields.Add Key:=.Columns(2), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
T.SetRange .Cells
T.Header = xlNo
T.MatchCase = False
T.Orientation = xlTopToBottom
T.Apply
End With
'
End Sub