• 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.

Opgelost Deelnemers husselen enkel met een knop

Dit topic is als opgelost gemarkeerd
Status
Niet open voor verdere reacties.

Gielleke25

Gebruiker
Lid geworden
12 feb 2022
Berichten
82
Hallo iedereen,

Kan iemand helpen aub?
Ik probeer voor aan activiteit op het werk een groep deelnemers willekeurig te husselen in een lijst.
In een vorige bestand heb ik gewerkt met de functie "=ASELECT()" om iedere deelnemer een willekeurig getal te geven, en daarna de getalen te sorteren... Dat werkte perfect.

Alleen wanneer ik iet wijzig in Excel sorteert hij de deelnemers telkens opnieuw.
Ik zou graag willen dat Excel enkel mag sorteren als ik op de knop druk...
Kan dat?

Alvast super bedankt!
Mvg,
 

Bijlagen

Bedankt voor u reactie!

Het resultaat is wel goed dat Excel alleen sorteert wanneer er op de knop wordt gedrukt.
Maar is er ook een mogelijkheid dat de originele deelnemerslijst behouden blijft na het husselen?

Alvast bedankt!
 
Bv.
Code:
Private Sub CommandButton1_Click()
With Application
   a = .CountA(Range("b3:b28"))
 Range("i3").Resize(a) = .Index(Range("b3:b28"), .SortBy(.Sequence(a), .RandArray(a)), .Transpose(.Sequence(a)))
End With
End Sub
 
Zonder transpose natuurlijk.
Code:
Private Sub CommandButton1_Click()
With Application
 a = .CountA(Range("b3:b28"))
 Range("i3").Resize(a) = .Index(Range("b3:b28"), .SortBy(.Sequence(a), .RandArray(a)), .Sequence(, a))
End With
End Sub
 
Range("i3").Resize(a) = .Index(Range("b3:b28"), .SortBy(.Sequence(a), .RandArray(a)), .Sequence(, a))

foutopsporing > geen ondersteuning
 
Is ook niet voor mensen met een stokoude versie.
 
Met een beetje knutselen had je dat wellicht zelf ook wel gekund.

Met uitleg in de code, en ernaast een unieke validatielijst, kan je per ongeluk geen 2 keer dezelfde speler plaatsen
 

Bijlagen

Ook een optie zonder VBA, zonder dat er herberekend wordt na iedere wijziging(office 365)

Code:
=LET(ar;FILTER(B3:B26;B3:B26<>"");SORTBY(ar;MOD(A1*SEQUENCE(ROWS(ar))/PI();1)))

De sortering vindt plaats zodra je het getal in A1 verandert. Dus je sorteert opnieuw door een ander willekeurig getal in A1 te plaatsen.
 

Bijlagen

Hallo iedereen,

Bedankt voor de vele antwoorden en goede oplossingen op mijn vraag! TOP
Voorlopig ga ik de code gebruiken van @emields... daar ik nu ook deze code zelf een beetje kan begrijpen.
Bedankt hiervoor!

Mvg,

 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan