[COLOR="DarkSlateGray"][B]Sub Tirage()
Dim i&, [COLOR="Red"]j$,[/COLOR] Table(), sDat(), oColl As New Collection, plg As Object
With Sheets("Inscriptions") 'Feuille d'origine.
.Unprotect '*si besoin est.
Table = .[B6:B37].Value 'Données.
[COLOR="Red"]j = Range("M2").Value[/COLOR]
.Protect '*si besoin est.
End With
On Error Resume Next
For i = 1 To UBound(Table, 1)
If Not IsEmpty(Table(i, 1)) And Table(i, 1) <> "" Then oColl.Add Table(i, 1), CStr(Table(i, 1))
Next i
ReDim sDat(1 To oColl.Count, 1 To 1)
i = 0
On Error GoTo 0
Randomize
Do While oColl.Count > 0
i = i + 1
sDat(i, 1) = oColl(1 + Int(oColl.Count * Rnd))
oColl.Remove 1 + Int(oColl.Count * Rnd(0))
Loop
Set plg = Sheets(j) 'Feuille de destination
[COLOR="Red"]plg[/COLOR].Unprotect '*si besoin est.
[COLOR="Red"]plg.[/COLOR]Rows("100:140").EntireRow.Hidden = False
With plg.[B101] 'Cellule de destination
.Value = " "
.Resize(plg.Cells(plg.Rows.Count, .Column).End(xlUp).Row - .Row + 1, 1).ClearContents
.Resize(UBound(sDat, 1), 1).Value = sDat
End With
[COLOR="Red"]plg.[/COLOR]Rows("100:140").EntireRow.Hidden = True
[COLOR="Red"]plg[/COLOR].Protect '*si besoin est.
MsgBox " Tirage effectué avec succès ! "
End Sub[/B][/COLOR]