Selection aléatoire sans doublon
Résolu/Fermé
Sormick
Sormick
- Messages postés
- 134
- Date d'inscription
- dimanche 10 novembre 2013
- Statut
- Membre
- Dernière intervention
- 15 juillet 2022
Sormick
- Messages postés
- 134
- Date d'inscription
- dimanche 10 novembre 2013
- Statut
- Membre
- Dernière intervention
- 15 juillet 2022
A voir également:
- Vba nombre aléatoire sans doublon
- Vba générer des nombres entiers bornés sans doublon ✓ - Forum - Excel
- Tirage aléatoire sans doublon ✓ - Forum - Excel
- Tirage aléatoire sans doublon : de plus en plus fort ... ! ✓ - Forum - Excel
- Selection aléatoire sans doublon ✓ - Forum - VB / VBA
- Valeur aléatoire sans doublon dans 1 seule cellule ✓ - Forum - Excel
1 réponse
michel_m
15 mai 2015 à 17:03
- Messages postés
- 16574
- Date d'inscription
- lundi 12 septembre 2005
- Statut
- Contributeur
- Dernière intervention
- 3 août 2022
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
15 mai 2015 à 17:21
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)
Modifié par michel_m le 15/05/2015 à 18:19
et merci pour le temps passé ?
Relis quand même ton charabia que tu as appelé "code"
Modifié par Sormick le 15/05/2015 à 18:54
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
16 mai 2015 à 00:17
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!!