• 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

Gebruiker
Lid geworden
21 aug 2015
Berichten
175
Hallo,

ik heb jullie hulp weer nodig. Tbv het bepalen van de volgorde voor inschrijven van verlof is er een rouleringsschema gemaakt. Dit schema loopt nu tot 2025.
Er wordt gewerkt met een letter (A en B) en een groep ( 1 tm 5) en een nr binnen deze groep.
Ik heb een voorbeeld bijgevoegd om eea duidelijk te maken. De volgorde die in het voorbeeld staat is van het jaar 2024.
In cel k4 staat het jaar
In de cellen I19 tm V27 staat het rouleringsschema.
In rij d moet de volgorde komen
Rij E is omgekeerde volgorde van D

Alvast bedankt.

GerV
 

Bijlagen

  • lettervolgorde.xlsx
    17,7 KB · Weergaven: 57
Ger, ik ben niet zo helder.
kun je uitleggen wat de logica is van de volgorde in rij D is?
 
In rij d moet het volgorde nr komen. Dit wordt Door het jaar en i19 tm v29 bepaald.
Er staat nu de volgorde zoals die in 2024 zou gelden.
 
Wij begrijpen jouw vraag ook niet zo goed.
Volgens mij is kolom A gesorteerd (en niet rij D) gesorteerd volgens tabel I19:V27, jaar 2024. Klopt dat?
 
Klopt. Maar dat gebeurd nu adhv het volgorde nr in kolom d.
 
Ook ik heb mijn hoofd zitten breken op deze vraag. Want ook ik snap hem niet.

Aanname volgorde 2024:
Even jaar = A
Dan wordt er eerst gekeken naar het jaar (dus jaar uit kolom I en de verdere info uit K19:V27) = A3, dan A4, dan A5 etc. tot/met B2 (waarde cel V26)
Vervolgens wordt gekeken naar de groep (J12:N16). Groep 3 = 1, Groep 4 = 2, dus A3-1 gaat dan eerst

Dan zou het deel A3-1 zijn verklaard. Hoe verder snap ik niet. En al helemaal niet waar het laatste cijfer vandaan komt. Ik zie bv. nergens een 6, maar wel A3-1-6 als GRP.
Ook de opmerking KD S = J in kolom Q snap ik niet i.c.m. kolom C

Belangrijkste vraag is volgens mij wat er nu precies geautomatiseerd moet worden. Want de volgorde in kolom D en kolom E kun je m.i. al ingevuld hebben als je weet tot hoever deze lijst moet lopen (het getal 239 is mij een raadsel; is dit het totaal aantal medewerkers?) Maar wat deze reeks precies moet doen? Zijn kolom D en E hulpkolommen?
 
Peter B,

sorry dat ik niet duidelijk ben.


er wordt gekeken naar het jaar (even of oneven)
2024 = even dus A
groep 3 ( uit A) komt als eerste. Nr A3-1-1 is dus nr 1; A3-1-2 is dus nr 2 (laatste 2 cijfers zijn hier dus van belang)
groep 4 ( uit A) komt daarna (laatste 2 cijfers dan van belang)
groep 5 (uit A) komt daarna (laatste 2 cijfers dan van belang)
groep 1 (uit A) komt daarna (laatste 2 cijfers dan van belang)
groep 2 (uit A) komt daarna (laatste 2 cijfers dan van belang)
dan komt de B. Uit de B range komen de mensen met KD-s = J het eerst aan de beurt cf bovenstaand (dus eerst de mensen uit B3 met KD-s = J dan B4 met KD-s =J etc)
daarna komen de overige mensen uit de B aan de beurt cf bovenstaand (dus eerst B3 dan B4 dan B5 dan b1 ETC)
 
En waar komen die laatste 2 cijfers die van belang zijn vandaan? Ik zie nergens een tabel met deze combinatie. Ik zie ook geen 6'en (bv. A3-1-6). Waarom zie ik geen 7, 8 of 85?
 
O ja. En geldt de regel KD S = J als eerst voor B altijd? En welke regel geldt er dan voor A?
 
in de oneven jaren moet je A door B vervangen en de B door de A
Dus eerst alle B groepen dan alle mensen uit de A met KD-s =j en dan de rest uit A.

GerV
 
Test deze eens.
Als je het jaartal in K2 verandert wordt kolom D bijgewerkt.
 

Bijlagen

  • lettervolgorde.xlsm
    28,4 KB · Weergaven: 45
Laatst bewerkt:
Bedankt voor de snelle hulp.

Deze werkt perfect.

GerV
 
Nog ff een vraag:

als ik kolommen toevoeg voor kolom A wat moet ik dan in deze macro aanpassen? Het aanpassen van de benoemde namen (jaar en zoektabel) weet ik wel. Ook de verwijzing naar de cel met jaar = duidelijk.

Code:
Sub tsh()
    Dim Br, Bq, Bs
    Dim i As Long
    
    With Application
        .ScreenUpdating = False
        Br = .Transpose(.Transpose(.Index([Zoektabel], .Match([Jaar].Find(Range("l1").Value, _
            LookAt:=xlWhole).Value, [Jaar], 0), 0)))
        Bq = Cells(1).CurrentRegion
        ReDim Bs(2 To UBound(Bq), 1 To 1)
        For i = 2 To UBound(Bq)
            Bs(i, 1) = IIf(LCase(Left(Bq(i, 1), 1)) = Br(1), 20000, 10000 - 1000 * (Bq(i, 3) = "J")) - _
                .Match(Mid(Bq(i, 1), 2, 1) * 1, Br, 0) * 100 - Split(Bq(i, 1), "-")(1) * 10 - Split(Bq(i, 1), "-")(2)
        Next
        With Range("D2").Resize(UBound(Bs) - 1)
            .Value = Bs
            Br = Evaluate("index(rank(D2:D" & UBound(Bq) & ",D2:D" & UBound(Bq) & "),0)")
            .Value = Br
        End With
        .ScreenUpdating = True
    End With
End Sub

GerV
 
Met een hulpkolom in F kom je ook al een heel eind.

Het pricipe is dat de prioriteitsvolgorde wordt bepaald door of het jaar even/oneven is + het nummer van de groep in een 5-jaarlijkse cyclus.
 

Bijlagen

  • __verlof_prio.xlsx
    22,8 KB · Weergaven: 39
Laatst bewerkt:
Snb,

de uitkomsten zijn niet correct. bijv in jaar 2018 zou a1-1-1 als 1ste moeten staan.

GerV
 
De gegevens uit kolom A t/m D van je voorbeeld worden ingeladen in variabele Bq.
De kolomverwijzingen zijn rood gemaakt. Als je bijvoorbeeld één kolom links invoegt (met gegevens) wordt 1 opgehoogd naar 2 en D naar E.
Code:
Sub tsh()
    Dim Br, Bq, Bs
    Dim i As Long
    
    With Application
        .ScreenUpdating = False
        Br = .Transpose(.Transpose(.Index([Zoektabel], .Match(Range("l1").Value, [Jaar], 0), 0)))
        [COLOR="#FF0000"]Bq = Cells(1).CurrentRegion[/COLOR]
        ReDim Bs(2 To UBound(Bq), 1 To 1)
        For i = 2 To UBound(Bq)
            Bs(i, 1) = IIf(LCase(Left(Bq(i, [COLOR="#FF0000"]1[/COLOR]), 1)) = Br(1), 20000, 10000 - 1000 * (Bq(i, [COLOR="#FF0000"]3[/COLOR]) = "J")) - _
                .Match(Mid(Bq(i, [COLOR="#FF0000"]1[/COLOR]), 2, 1) * 1, Br, 0) * 100 - Split(Bq(i, [COLOR="#FF0000"]1[/COLOR]), "-")(1) * 10 - Split(Bq(i, [COLOR="#FF0000"]1[/COLOR]), "-")(2)
        Next
        With Range("[COLOR="#FF0000"]D[/COLOR]2").Resize(UBound(Bs) - 1)
            .Value = Bs
            Bs = Evaluate("index(rank([COLOR="#FF0000"]D[/COLOR]2:[COLOR="#FF0000"]D[/COLOR]" & UBound(Bq) & ",[COLOR="#FF0000"]D[/COLOR]2:[COLOR="#FF0000"]D[/COLOR]" & UBound(Bq) & "),)")
            .Value = Bs
        End With
        .ScreenUpdating = True
    End With
End Sub
 
Laatst bewerkt:
Timshel,

bedankt voor het snelle antwoord.

Ik heb eea in mijn bestand aangepast en het werkt perfect.

GerV
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan