Bonjour, Salut Isabelle !
Une autre méthode :
Sub Tirage42()
Dim Tbl, k, i%, x%
Tbl = ActiveSheet.Range("A2").Resize(42).Value
Randomize
For i = 1 To 42
k = Tbl(i, 1)
x = Int(Rnd * 42 + 1)
Tbl(i, 1) = Tbl(x, 1)
Tbl(x, 1) = k
Next i
ActiveSheet.Range("D2").Resize(42).Value = Tbl
End Sub
En fait ça consiste à mélanger pour mettre tes noms dans un ordre aléatoire...
Tu n'as pas fourni de fichier, donc à toi de l'établir !
Ta liste de noms doit être en A2:A43, la liste réordonnée aléatoirement sera placée en D2:D43, tu places un bouton auquel affecter la macro (à placer préalablement dans un module standard), et si tu n'en mets pas veille que la feuille soit active au lancement de la macro...
La macro est écrite pour que tu puisses facilement modifier le code comme tu l'entends !
Tu places ta liste ailleurs : tu remplaces A2 par la référence de la première cellule de la liste.
Tu veux le résultat ailleurs également : tu remplaces D2 par la référence de la première cellule de la liste tirée.
Tu veux faire l'opération pour moins ou plus de 42 noms : tu remplaces tous les 42 par le nouveau nombre de membres de ta liste ! Attention, il y en a 4.
Cordialement.