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

volgorde bepalen adhv criteria

Status
Niet open voor verdere reacties.
@GerV

Je hebt niet goed naar de formule gekeken.
Ik heb het principe aangereikt.
 
Snb,


dan zul je mij toch moeten helpen met het "vertalen" van de formule die je gebruikt.

GerV
 
Timshel,

ben ik weer ...

wat moet ik aanpassen als ik een rij toevoeg? De 2 bij d2 = mij duidelijk. Maar blijkbaar moet ik nog iets aanpassen want de op rij 2 en de laatste rij komt nu NB te staan.
 
Ik begrijp niet precies welke aanpassing je maakt.
De methode hulpkolom van snb verdient misschien toch de voorkeur omdat dat makkelijker is aan te passen naar de werkelijke situatie.
In de bijlage is dat uitgewerkt, met dat verschil dat de zoektabel behouden is gebleven.
 

Bijlagen

  • lettervolgorde.xlsm
    34 KB · Weergaven: 41
Timshel,

jouw macro werkt perfect. Ik wil de benaming van de kolommen echter op rij 3 zetten zodat ik plaats heb op rij 1 en 2 voor toelichtingen etc.

de methode met de hulpkolom werkt ook perfect, maar er is weer een hulpkolom nodig. Het bestand is nu al vrij groot.


GerV
 
Ik kan niet nalaten op te merken dat je in #22 nog vroeg om de methode hulpkolom uit te werken. Helpers worden niet graag voor niks aan het werk gezet.
VBA-oplossingen op dit forum zijn doorgaans maatwerk, dus dan is het zaak om een representatief voorbeeldbestand te plaatsen. Ik moet er maar naar raden hoe het echte bestand eruit ziet.
Mgoed als de gegevens dus vanaf rij 3 beginnen kun je het met deze proberen.
Code:
Sub tsh()
    Dim Br, Bq, Bs
    Dim i As Long
    
    With Application
        .ScreenUpdating = False
        Br = .Index([Zoektabel], .Match(Range("K2").Value, [Jaar], 0), 0)
        Bq = Cells(1).CurrentRegion
        ReDim Bs([COLOR="#FF0000"]3[/COLOR] To UBound(Bq), 1 To 1)
        For i = [COLOR="#FF0000"]3[/COLOR] To UBound(Bq)
            Bs(i, 1) = IIf(LCase(Left(Bq(i, 1), 1)) = Br(1, 1), 20000, 10000 - 1000 * (Bq(i, 3) = "J")) - _
                .Match(Mid(Bq(i, 1), 2, 1) * 1, Br, 0) * 100 - Replace(Right(Bq(i, 1), 3), "-", "")
        Next
        With Range("D[COLOR="#FF0000"]3[/COLOR]").Resize(UBound(Bs) - [COLOR="#FF0000"]2[/COLOR])
            .Value = Bs
            Bs = Evaluate("index(rank(" & .Address & "," & .Address & "),)")
            .Value = Bs
        End With
        .ScreenUpdating = True
    End With
End Sub
 
Timshel, Snb,

ik vroeg om verduidelijking van de formule omdat ik altijd nieuwsgiering ben hoe eea werkt en in 1ste instantie de uitkomsten niet correct waren. Misschien kan ik ze in de toekomst nog eens ergens gebruiken. Ik bewaar nl alles. Maar ook jouw uitgewerkte formule zegt mij weinig. Ik heb de formule als eens in stukjes "geknipt" om de verschillende uitkomsten te bekijken. Maar ook dan snap ik er weinig van, bijv ;20000;10000+1000* waarvoor dient dit?
De macro is fijn omdat hier niemand aan gaat "*****n" en als men kolommen/rijen invoegt het geheel niet meer werkt. Bij de hulpkolom zou het theoretisch mogelijk zijn dat men iets wijzigt en er toch uitkomsten worden gegenereerd (ondanks beveiliging van de formules want er zijn nl programmatjes die de beveiliging eraf halen.)

Nu ik dit op orde heb zal ik vandaag nog met een vervolgvraag komen om gegevens vanuit dit spreadsheet over te zetten naar een ander.

Allen die meegedacht/geholpen hebben wil ik hartelijk bedanken voor hun tijd en moeite.

GerV
 
In het bericht #17 staat het principe uitgelegd.
 
snb,

er is inderdaad een 5 jaarlijkse roulering van het 2de getal in de verlofvolgorde maar daarbinnen heb je nog met de A en B (1ste letter van volgorde) en de J uit kolom C te maken. Voor een "simpele" excel gebruiker komt dit neer op 20 mogelijkheden per jaar. Tot nu werd handmatig het volgnr voor het inschrijven van verlof ingevuld (met de nodige fouten).
Ik ben dus heel blij met deze oplossing.
Als je niet begrijpt wat een formule precies doet is het moeilijk om deze aan te passen. Vandaar mijn vraag om toelichting op de formule.

GerV
 
Het principe van de macro en de formules van snb en mijzelf is telkens hetzelfde. Prioritering geschiedt door het toekennen van een weegfactor. Bij mijn macro en formule zit het zo:
1. Groep A of B: eerste keus krijgt weegfactor 20.000, tweede keus 10000, afhankelijk van het roulatieschema.
2. Alleen voor tweede keus uit (1) geldt dat J voorrang heeft over N. Weegfactor 1000.
3. Groep 1 tot en met 5: weegfactor 100, afhankelijk van het roulatieschema.
4. De twee laatste getallen van de GRP worden als 10-tallen gewogen. Omdat een hoger getal een lagere prioriteit heeft staat er een min-teken voor.
 
Timshel,

bedankt voor de toelichting. Dit maakt het een heel stuk duidelijker voor mij. Ondanks dat zou ik de formule zelf niet kunnen aanmaken.

GerV
 
Je leert het meest als je de redenering in een formule zelf probeert te achterhalen.
Het kost meer tijd, maar als je hem begrijpt kun je er meer mee dan wanneer een ander het voor je voorkauwt.
 
helemaal mee eens. Maar als je niet kunt achterhalen wat er gebeurd (ondanks dat ik de formule in stukjes had geknipt) is het heel moeilijk/onmogelijk om eea te beredeneren.
Na de toelichting waarvoor de 20000 en 10000 en 1000 etc dienen wordt het al een stuk duidelijker.
Ik zat in het begin nog altijd met de 20 verschillende mogelijkheden te worstelen en zag deze niet direct terug in de formule.

Bedankt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan