Sub nom_alea()
Dim nb_alea As Byte
Dim nom_1 As String
Dim nom_2 As String
Dim col As Variant
Dim plage As Range
'Declaration des variables
For j = 2 To 55
'pour j allant de 2 a 55 (nombre de semaines correspondant au colonnes B a BC)
refais:
'retour du goto qui est plus bas (GoTo refais)
Randomize
'Fonction qui permet de remettre a 0 la fonction aleatoire
nb_alea_1 = Int((10 * Rnd) + 1)
'la variable nb_alea_1 resoit un entier entre 1 et 10
nom_1 = Cells(nb_alea_1, 1).Value
'nom_1 recoit la valeur de la cellule ligne nb_alea_1 et colonne 1
retour:
'retour du goto qui est plus bas (GoTo retour)
Randomize
'Fonction qui permet de remettre a 0 la fonction aleatoire
nb_alea_2 = Int((10 * Rnd) + 1)
'la variable nb_alea_2 resoit un entier entre 1 et 10
If nb_alea_2 ‹› nb_alea_1 Then
'si nb_alea_2 est different de nb_alea_1 alors
nom_2 = Cells(nb_alea_2, 1).Value
'nom_2 recoit la valeur de la cellule ligne nb_alea_2 et colonne 1
Else: GoTo retour
'sinon on retourne a la ligne de code retour:
'on refais la procédure jusqu'a ce que nb_alea_2 ‹› nb_alea_1
End If
If Cells(3, 2).Value = '' Then
'si la cellule B3 est vide alors
Cells(3, j).Value = nom_1
'la cellule ligne 3 colonne j recoit nom_1
Cells(4, j).Value = nom_2
'la cellule ligne 4 colonne j recoit nom_2
Else
'sinon
Range('IV4').Select
'je me positionne en IV4
Selection.End(xlToLeft).Select
'je reviens vers la gauche pour trouver la derniere cellule non vide
col = ActiveCell.Address
'la variable col recoit l'adresse de la derniere cellule non vide
Set plage = Range('B3:' & col)
'plage recoit la plage de cellule B3:B & col
For Each cel In plage
'pour toutes les cellules de la plage plage
If cel = nom_1 Then GoTo refais
'si la cellule cel est egale a nom_1 alors retour a la ligne refais:
Next cel
For Each cel In plage
'pour toutes les cellules de la plage plage
If cel = nom_2 Then GoTo retour
'si la cellule cel est egale a nom_2 alors retour a la ligne retour:
Next cel
Cells(3, j).Value = nom_1
'la cellule ligne 3 colonne j prend la valeur de la variable nom_1
Cells(4, j).Value = nom_2
'la cellule ligne 4 colonne j prend la valeur de la variable nom_2
End If
Next j
End Sub