Sub test()
Dim t(), i&, a&, c&, cel As Range
'on rapatri toutes les cellules jaune de la feuil1 dans un array
With Feuil1
For i = 3 To 12
For c = 1 To 4
If .Cells(i, c) <> "" Then a = a + 1: ReDim Preserve t(1 To a): t(a) = .Cells(i, c)
Next
Next
End With
'on mélange cet array
For i = 1 To UBound(t): x = 1 + (Int(Rnd * (UBound(t) - 1))): tp = t(i): t(i) = t(x): t(x) = tp: Next
a = 0
'on repose les valeur de l'array dans la plage de la feuil2
With Feuil2
For Each cel In .[A2:D5].Cells: a = a + 1: cel.Value = t(a): Next
End With
End Sub