bonjourbonjour,
Les explications sont un peu courtes... en tout cas peu probable d'avoir des doublons avec alea(), il y a des doublon dans la colonne rang (F) ce qui est normal vu que la formule ne regarde que les 10 lignes qui suivent.
en colonne G la formule ne commence pas à chercher en A2 mais se décale au fur et à mesure d'où les #N/A, il faut utiliser des $.
après si c'est juste pour écrire p5 il suffit de faire ="p"& rang( etc, sans s'embêter avec les colonnes A et B
nico
la question j'ai 75 agent et 9 Park chaque jour 3 surveillant une Parken F2 déjà écrire ça =RANG(E2;E:E;0) et tirer vers le bas
mais comme je disais je ne comprends pas vraiment la question
bonne journée
j'ai rectifier le fechierBonjour,
Les fonctions alea() et alea.entre.borne() ne permettent pas de faire de la génération de nombres uniques sur une plage
Rapidement je vois 2 solutions possibles :
1) soit tu te fais cela en code VBA car tu as besoin d'automatiser pour la faire tourner de nombreuse fois
2) soit tu contourne en méthode manuelle (tu doit le faire que quelques fois) :
colonne A => génère un Alea.entre.borne(0;999999999999)
Colonne B => tu y mets le N° de ligne
. ensuite tu copies les données et les colles en valeurs (ailleurs)
. tu tri tes valeurs (plage collée) par ordre croissant de la colonne des chiffres aléatoires et dans l'autre colonne (N°ligne) tu auras un ordre aléatoire.
Après d'autres auront peut-être de meilleurs idées ou te proposeront le code VBA qui va bien pour faire cela
bon courage
J'au un code vba pour rectifier ?Mais c'était déjà toi sur l'autre sujet ... mdr
donc tu cherche une autre solution pour la même chose ?
Sub Rnd_N_REP()
Dim myrange As Range, rr, cc, pp As Integer
rr = [B2]: cc = [B1]
pp = rr * cc + 1
' Range("C3").SpecialCells (xlCellTypeLastCell)
Set myrange = Range("C3:E7")
myrange.ClearContents
myrange.Interior.ColorIndex = xlNone
Set myrange = Range("C3", [c3].Offset(rr - 1, cc - 1))
myrange.Interior.ColorIndex = 6
Randomize
For i = 0 To pp - 2
rw = i Mod rr + 3
If rr = cc Then cl = Int(i / cc) + 3 Else cl = i Mod cc + 3
10 x = Int(Rnd * pp)
For Each ce In myrange
If ce = x Or x = 0 Then GoTo 10
Next ce
Cells(rw, cl).Value = x
Next i
[c3].Select
End Sub