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

Signaler
Messages postés
104
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
10 février 2020
-
Messages postés
104
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
10 février 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
16196
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
3 septembre 2020
3 020
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 61074 internautes nous ont dit merci ce mois-ci

Messages postés
104
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
10 février 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
16196
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
3 septembre 2020
3 020
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
104
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
10 février 2020
>
Messages postés
16196
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
3 septembre 2020

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
104
Date d'inscription
dimanche 10 novembre 2013
Statut
Membre
Dernière intervention
10 février 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!!