Salut Joco,
Salut Baboutz,
je suppose, mais je n'en ai coupablement pas tenu compte, que les Range jaunes délimitaient les affichages aléatoires.
À revoir, donc...
Bien vu, Baboutz, le RandBetween : pas du tout pensé à ça, aujourd'hui...
Un double-clic sur la feuille démarre la macro.
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
'
Dim tTab(), iRowT%, iNum%, iOK%
'
Cancel = True
iNb = Range("B" & Rows.Count).End(xlUp).Row - 14
For x = 1 To 4
iOK = 0
Randomize
ReDim tTab(1 To iNb)
Range(Choose(x, "D", "E", "G", "H") & IIf(x Mod 2 = 1, 10, 5)).Resize(Range(Choose(x, "D", "E", "G", "H") & Rows.Count).End(xlUp).Row, 1).Value = ""
Do
iNum = Int(Rnd * iNb) + 1
If tTab(iNum) = 0 Then _
iOK = iOK + 1: _
tTab(iNum) = 1: _
iRowT = IIf(Range(Choose(x, "D", "E", "G", "H") & IIf(x Mod 2 = 1, 10, 5)).Value = "", _
IIf(x Mod 2 = 1, 10, 5), _
Range(Choose(x, "D", "E", "G", "H") & Rows.Count).End(xlUp).Row + 1): _
Range(Choose(x, "D", "E", "G", "H") & iRowT).Value = Range("B" & 14 + iNum).Value
Loop Until iOK = iNb
Next
'
End Sub
A+