• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

random namen

Status
Niet open voor verdere reacties.

don42

Gebruiker
Lid geworden
25 apr 2014
Berichten
800
Hallo allemaal,

ik heb een vraagje:
Is het mogelijk dat ik uit een kolom A2 tot end
bijvoorbeeld 12 willekeurige namen selecteer en deze in een ander tabblad zet?
in deze kolom staan ongeveer 100 namen
deze namen hebben een nummer (willekeurig met rand gemaakt)


Mijn vraag is kan je (een x aantal) willekeurige namen uit een kolom halen
heb dit nodig voor een toernooi waar 32 - 64 -128 of 256 personen aan het eind toernooi kunnen deelnemen
schrijven er 70 personen in dan zijn dat er 6 teveel (voor 64)
dan wil ik 12 personen laten spelen (1 tegen 1) in een voorronde. de winnaars gaan uiteraard door
zo kom ik dan op 64. makkelijk zat
maar de loting van de 12 pers die moeten spelen in de voorronden had ik graag met een random is zoiets mogelijk?

iets wat lijkt op
Code:
For i = 3 To 7
RN = (“=RandBetween(1, 99)”)
Cells(2, i) = RN
Next i

maar dan met namen
hoop dat het duidelijk is

Don
 
Zet dat randomnummer in een kolom naast die namen.
Sorteer dan en neem de 12 eerste namen.
Door elke toetsaanslag wordt die sortering uitgevoerd en heb je steeds andere namen bovenaan.

Neem een macro op om te zien hoe dat moet.

PS Heb toch een voorbeeldje gemaakt.
 

Bijlagen

Laatst bewerkt:
Als je absoluut zeker wil zijn dat je geen duplicaten hebt moet je ze eigenlijk uit een lijst trekken en dan vervolgens uit de lijst schrappen. Daar heb je dan niet meer voor nodig dan de lijst en de hoeveelheid die je wil hebben.

Als algemene oplossing:

Code:
Sub Random_from_List(ByVal beginlijst As Range, ByVal aantal As Long, ByVal doelplaats As Range)
    Dim opslag As New Collection
    If aantal > beginlijst.Count Then
        MsgBox ("meer items gevraagd dan in de opgegeven range")
        Exit Sub
    End If
    For Each onderdeel In beginlijst
        opslag.Add (onderdeel.Value)
    Next onderdeel
    Dim b As Long
    b = 0
    Randomize
    For i = 1 To aantal
        selectie = Int(Rnd * opslag.Count) + 1
        doelplaats.Offset(b).Value = opslag.Item(selectie)
        opslag.Remove (selectie)
        b = b + 1
    Next i
End Sub

Sub test()
    Random_from_List [a1:a10], 10, [b1]
End Sub

had toevallig zoiets in mijn library zitten
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan