Selection aléatoire sans doublon [Résolu/Fermé]

Signaler
Messages postés
107
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
29 décembre 2020
-
Messages postés
107
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
29 décembre 2020
-
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

1 réponse

Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 197
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
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
107
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
29 décembre 2020

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)
Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021
3 197
Excuse moi de t'avoir dérangé
et merci pour le temps passé ?
Relis quand même ton charabia que tu as appelé "code"
Messages postés
107
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
29 décembre 2020
>
Messages postés
16491
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
21 juillet 2021

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
Messages postés
107
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
29 décembre 2020

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!!