1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| Sub Meler(sC As String)
'--- sC = adresse de la cellule en coin supérieur gauche. Exemple: B3
Dim sNom As String, sPrn As String, sEcrou As String, sPresent As String
Dim kPremL As Long, kDernL As Long, kL As Long, kC As Long
Dim rA As Range, rB As Range, k As Long
Set rA = Range(sC)
rA.Select
kPremL = rA.Row '--- première ligne
If rA.Offset(1, 0) = "" Then
MsgBox "Annulé: pas de 2e joueur.", vbInformation, "Annulé"
Exit Sub
End If
kDernL = rA.End(xlDown).Row '--- dernière ligne
kC = rA.Column '--- colonne
Randomize
For kL = kPremL To kDernL
'--- charge ligne en cours
Set rA = Cells(kL, kC)
sNom = rA
sPrn = rA.Offset(0, 1)
sEcrou = rA.Offset(0, 2)
sPresent = rA.Offset(0, 3)
'--- tire au sort n° ligne entre kPremL et kDernL
k = WorksheetFunction.RandBetween(kPremL, kDernL)
'--- tranfère cette ligne k dans celle en cours
Set rB = Cells(k, kC)
rA = rB
rA.Offset(0, 1) = rB.Offset(0, 1)
rA.Offset(0, 2) = rB.Offset(0, 2)
rA.Offset(0, 3) = rB.Offset(0, 3)
'--- remplit ligne k avec ligne en cours
rB = sNom
rB.Offset(0, 1) = sPrn
rB.Offset(0, 2) = sEcrou
rB.Offset(0, 3) = sPresent
Next kL
End Sub |
Partager