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

Ranglijst maken in excel

Status
Niet open voor verdere reacties.

aatalex

Gebruiker
Lid geworden
9 jul 2002
Berichten
138
Hallo, is het mogelijk om in excel een ranglijst te maken die automatisch de persoon met het hoogste aantal punten bovenaan zet?
 
Ja, dat kan,

selecteer met de muis ALLES (echt ALLE cellen van je werkblad waarin gegevens staan) en kies vervolgens voor DATA en dan voor SORTEREN.

Experimenteer eens wat (let ook op de melding: eerste rij bevat veldnaam ja / nee) en je zal een prachtige lijst krijgen.

Als je het eenmaal door hebt kun je het geheel in een macrootje verwerken, zodat met een toetscombinatie het gehele gedoe qua selecteren en sorteren eautomatiseerd is.

Suc6!
 
Mmogelijk een open deur intrappen:

als je een volgorde gaat opgeven bij het selecteren van de data, dan kies je vanzelfsprekend als eerste optie de kolom waarin de score staat en niet de kolom waarin de namen van de "spelers" staan.

Een aanvullende optie is eerst de kolom laten sorteren waarin de hoogste score staat (aflopend -> de hoogste komt dan bovenaan) en vervolgens de naamkolom als 2e sorteeroptie, maar die kolom dan oplopend laten sorteren, dan komt de speler met de hoogste score bovenaan en daarnaast ook nog eens mooi op alfabetische volgorde.

Maar nogmaals: cruciaal is dat je ALLE cellen selecteert voordat je aan het sorteren begint, anders maakt Excel er een zooitje van.
Ben je wat verder / beter bekend met het sorteren, dan zou je de veldnaamregel niet hoeven sorteren, maar als je wat hebt geoefend met data sorteren, dan kom je daar vanzelf wel achter.
 
Laatst bewerkt:
ranglijst

Hallo,

Als ik de vraag goed begrepen hebt wil je een ranglijst automatisch sorteren, indien je een persoon met een score hebt toegevoegd. Bijgaand een stukje VBA die dit voor je doet. Als je het laatste gegeven van deze persoon in een rij hebt toegevoegd wordt er gesorteerd. Wel even de gegevens aanpassen naar je eigen bestandgegevens.

Groet

Dirk

Code:

Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("D2 : D200")) Is Nothing Then Exit Sub
Columns("A : D").Select
Selection.Sort Key1:=Range("D1"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A65536").End(xlUp).Offset(1, 0).Select
End Sub
 
Met het algemeen sorteren ben ik al wel bekend. mij gaat het erom dat de sortering automatisch gaat wanneer de score veranderd.

Ik werk met twee tabbladen
Tabblad 1 hierop staan de scores per deelnemer per onderdeel
Tabblad 2 hierop staat alleen de naam van de deelnemer met zijn totaal score (als link naar tabblad 1)

Wat ik nu wil is dat als op blad 1 een score wordt toegevoegd tablad 2 zich automatis aanpast.
 
mogelijk oplossing

Ik ken zelf niet veel van excel, maar ik weet dat je bij www.computeridee.nl onder download een amateurcompetitie is opgesteld waarbij als je de uitslagen invult de stand automatisch bijgewerkt wordt. Misschien kun je achter de formules kijken of iemand anders die dat weet.
 
ranglijst automatisch sorteren

Aalatex,

Bedankt voor de aanvulling. De VBA code in het vorige antwoord wordt nu iets anders. I.p.v worksheet moet je nu workbook gebruiken. In het voorbeeld staan de scores op blad 1in de kolommen D t/m G. In H staan de totalen. In de kolom A, B, C staan de deelnemersgegevens. Op blad 2 staat de naam in kolom A (gehaald uit kolom A blad1) en in kolom B staan de totalen die uit de kolom H zijn gehaald. Telkens als je een score invoert in de kolommen D2 t/m G200 op blad1, dan wordt de ranglijst op blad 2 gesorteerd.

Groet
Dirk

De nieuwe code:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Application.CutCopyMode = False
Application.ScreenUpdating = False
If Intersect(Target, Range("D2:G200")) Is Nothing Then Exit Sub
Sheets("Blad2").Activate
Range("A2:B200").Select
Selection.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Range("A1").Select
Sheets("Blad1").Activate
Application.CutCopyMode = True
Application.ScreenUpdating = True
End Sub
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan