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
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
A voir également:
- Tirage au sort excel aléatoire sans doublon
- Tirage aléatoire sans doublon ✓ - Forum Excel
- Liste déroulante excel - Guide
- Supprimer doublon excel - Guide
- Formule excel - Guide
- Si et excel - Guide
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
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!!