Selection aléatoire sans doublon

Résolu/Fermé
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 8 avril 2024 - 15 mai 2015 à 16:23
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 8 avril 2024 - 16 mai 2015 à 00:17
Bonjour,

J'ai un code vba qui me permet de sélectionner de manière aléatoire des valeurs
dans la colonne A de mon tableau.
Mais je souhaiterais qu'il ne me sélectionne pas deux fois la même valeur!!!
Voici mon code vba:

Dim sel As Range
Dim i As Integer
For i = 1 To Range("k2").Value
Dim alearow As Integer
Randomize Timer
alearow = Int(Rnd() * 4) + 1
Set sel = Cells(alearow, 1)
Range("M65536").End(xlUp).Offset(1, 0) = sel.Value
Range("l1") = sel.Select
MsgBox Selection
Next i
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
15 mai 2015 à 17:03
Bonjour
Sub faites_vos_jeux()
Dim dico As Object, Tirage As Byte

Set dico = CreateObject("scripting.dictionary")
For cptr = 1 To 100
Tirage = Int(Rnd * 100) + 1
If Not dico.exists(Tirage) Then dico.Add Tirage, ""
Next
Range("A1").Resize(dico.Count, 1) = Application.Transpose(dico.keys)

End Sub

1
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 8 avril 2024
15 mai 2015 à 17:21
olala!!!!
quelque chose ne va pas dans votre code!
il m'efface les valeurs que j'ai dans ma colonne A et me mets des valeurs comme ceci:
50
42
70
18
43
55
jusqu'à la cellule (A67)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 15/05/2015 à 18:19
Excuse moi de t'avoir dérangé
et merci pour le temps passé ?
Relis quand même ton charabia que tu as appelé "code"
0
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 8 avril 2024 > michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023
Modifié par Sormick le 15/05/2015 à 18:54
désolé si je m'exprime mal . je débute en vba.
en fait voila ce que je souhaite faire mais je n'y arrive pas.
je souhaite que une valeur soit sélectionnée au hazard dans la colonne (A)
puis il passe à une autre valeur toujours de manière aléatoire.
mais tout ceci sans sélectionner une deuxième fois une valeur déjà sélectionnée auparavant!
il doit faire la sélection que trois fois maximum donc je pense qu'il faut utiliser une boucle du genre:
i cptr = 1 To 3
voilà . désolé. si besoin je vous mettrais une pièce jointe de mon tableau
Merci
0
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 8 avril 2024
16 mai 2015 à 00:17
Super j'ai enfin trouvé la solution!!
La voici::
Columns("c:c").ClearContents
Dim FillRange As Range, SrcRange As Range
Dim LastRow As Long, c As Range
LastRow = Cells(Cells.Rows.Count, "A").End(xlUp).Row
Set SrcRange = Range("A1:A" & LastRow)
Set FillRange = Range("c1:c" & Range("h1").Value)
For Each c In FillRange
Do
c.Value = Application.Index(SrcRange, Int((LastRow * Rnd) + 1))
Loop Until WorksheetFunction.CountIf(FillRange, c.Value) < 2
Next

Bonne journée à tous!!
0