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
26 janvier 2023
-
15 mai 2015 à 16:23
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 26 janvier 2023 - 16 mai 2015 à 00:17
Sormick Messages postés 145 Date d'inscription dimanche 10 novembre 2013 Statut Membre Dernière intervention 26 janvier 2023 - 16 mai 2015 à 00:17
A voir également:
- Vba tirage aléatoire sans doublon
- Tirage aléatoire excel sans doublon ✓ - Forum Excel
- Tirage au sort excel aléatoire sans doublon ✓ - Forum Excel
- Erreur 1004 vba ✓ - Forum VB / VBA
- Supprimer doublon excel - Guide
- Find vba - Astuces et Solutions
1 réponse
michel_m
Messages postés
16593
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
7 mars 2023
3 291
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!!