[ darkos1 @ 18.02.2018. 15:53 ] @
Kako obojiti određene (unikate) po redosledu prioriteta.

Zbog lakšeg pojašnjenja dao sam primer iz kojeg je vidljivo šta želim.

Nešto sam pokušao ali bi me to odvelo u nedogled sa formulama.
[ snenad_82 @ 19.02.2018. 13:25 ] @
Koja je logika bojenja ćelija? Tj. koji je uslov da neka ćelija bude obojena?
[ darkos1 @ 19.02.2018. 17:31 ] @
U prikačenom primjeru ima 11 upražnjenih mjesta.
Radnici konkurišu na a mjesta po sopstvenim željama.
Najbolje rangirani po broju bodova dobija mjesto prvo koje je konkurisao.
Drugi po broju bodova dobija po svojoj želji osim ako je to mjesto već popunjeno dobija sledeće prazno i tako redom.
Ako se desi da je lice izrazilo samo dvije želje i da su ta dva mjesta ranije popunjena ostaje bez mjesta.

Nadam se da sam bio malo jasniji.
[ @ 19.02.2018. 20:34 ] @
Ovako nesto, samo kliknes na dugme OK
[ Dexxxl @ 19.02.2018. 20:37 ] @
JBG, nesto zeza upload
[ darkos1 @ 19.02.2018. 21:41 ] @
Zahvaljujem se na brzom odgovoru, to je rješenje koje sam tražio.

Ako može mala dopuna da prvo briše sve obojene ćelije pa da ponovo boji, jer kod ponovnog aktiviranja ostane prethodno obojeno

Hvala puno
[ Dexxxl @ 19.02.2018. 23:00 ] @
Na pocetku procedure ofarbaj dodaj

Range("D7:N25").Select
Selection.Interior.Pattern = xlNone
[ darkos1 @ 18.09.2021. 20:41 ] @
Pozdrav

Da ne otvaram novu temu a radi se o bojenju pojedinih ćelija pomoću VBA kao i u prethodnom primeru

Imam listu kandidata koji su se prijavili na radna mjesta i izrazili po tri želje.
Kako da pomoću VBA ofrabam po tri najuspešnija kandidata za svaku poziciju

U prilogu primer
[ Jpeca @ 19.09.2021. 16:43 ] @
Nisam siguran u logiku kako su ti obojene čelije u primeru.
Po meni postoji
varijanta 1:
Za poziciju x gledamo prva tri kandidata na listi koja su navela x kao želju. U tom slučaju za prvog kandidata na listi biće obojene sve ćelije u redu (kao u tvom primeru), ali će svaka pozicija biti obojena tačno tri puta - kod tebe je pozicija 105 obojeno 8 puta?!
varijanta 2:
Za kanditata y bojimo samo želju najvišeg prioriteta za koji još nije bilo tri kandidata. Znači za prvog kandidata samo prvu želju(poziciju) bojimo, a ostale dve pozicije ostale pozicije su slobodne za naredne kandidate.

Imaš i jednu i drugu varijantu u primeru. Ako je neka druga logika u pitanju možeš da sam pokušaš da prepraviš kod tako da dobiješ ono što želiš.
Polazi se od toga da je lista kandidata sortirana. Koristi se dictionary struktura gde upisujemo poziciju i broj pojavljivanja, pa onda to koristimo za uslov za bojenje.

Nisam siguran koliko je ovo pregledno. Možda bi bilo bolje da se na posebnom listu napravi sumarno lista pozicija i po tri kandidata za tu poziciju
[ darkos1 @ 20.09.2021. 20:19 ] @
Ovo što je Jpeca napravio kod je dobra osnova ali mi trebaju male korekcije pa ću pokušati da bolje pojasnim

treba da popunim neka radna mjesta (pozicije) sa različitim brojem kandidata kako je prikazano u koloni B i C
Kandidati se prijavljuju na pozicije i imaju mogućnost da izraze po tri želje

Kada se prijave vršim testiranje i bodujem ih.
Potom pozivam na inerviju po tri ili više kandidata po svakoj upražnjenoj poziciji tj. ako za neku poziciju treba 3 kandidata ja pozivam na interviju 9 kandidata (kolona D a Q2 je broj lica koje ću pozvati po poziciji), te ih nakon toga ponovo bodujem. VBA varijanta1

Nakon toga vršim prijem lica po pozicijama VBA varijanta2 (ako se za neku poziciju traže 2 kandidata odabiram 2) ali vodeći računa:
- na prvom mjestu da popunim što više pozicija
- na drugom mjestu da odaberem što bolje kandidate (sa najviše ostvarenih bodova)

[ mjanjic @ 20.09.2021. 23:55 ] @
Ovo traži "malo" više matematike i nisam baš siguran da je pametno koristiti Excel. Nije da je nemoguće to rešiti sa Excel funkcijama i VBA, ali će se uvek pojaviti neki izuzetak...

Ako se ne radi o trocifrenom broju pozicija i četvorocifrenom broju kandidata, najbolji je stari metod - papir i olovka :)
Ako je u pitanju teorijski primer, onda tu ima malo više posla...

Negde se može desiti da ti je kandidat A pogodniji za neku poziciju od kandidata B, iako je kandidat B ostavio bolji utisak ili bolje uradio test, jer ti je kandidat B potrebniji za neku drugu poziciju (gde ti je potrebno 5 zaposlenih, a tu je B kao 3. ili 4. na listi, a te pozicije su hitnije za popunjavanje).

Bez intervjua, ovo mi liči na malu maturu, gde deca prijavljuju tri želje (smerovi u srednjim školama), pa se nakon male mature prave rang liste prema tim željama. Za zaposlene je "malo" overkill raditi ovako nešto. Prvo se popune najkritičnije pozicije gde se izaberu najbolji, a posle se vidi šta sa ostalim pozicijama i kandidatima. Ovo za "tri želje" mi je malo neozibljno o kakvoj god firmi i poslu da se radi, jedino ako je u pitanju npr. obezbeđenje, pa je pitanje da li kandidat preferira da radi u banci ili negde drugde (ne znam gde su sve prisutni ovi iz agencija za obezbeđenje).
[ darkos1 @ 21.09.2021. 06:00 ] @
Radi se uglavnom do stotinjak pozicija na kojima se prima preko 150 kandidata (jedna pozicija viuše mjesta ili može samo jedna pozicija jedno mjesto). Pozicije su razmještene na 15 lokacija i zbog toga se daje mogućnost želja ali nema prioriteta prva druga treća.

Uglavnom se prijavljuje trocifren ili četvorocifren broj kandidata i da nebi sa svima obavljali interviju vrši se selekcija testom tako da se na svako mjesto pozove 3 ili više kandidata na interviju. Često se desi da za jednu poziciju prima se 3 kandidata i treba pozvati na interviju 9 kandidata a prijavi se samo 2 kandidata ili niko a za neke imam i do deset puta više kandidata.

Za sada se radi uglavnom olovka i papir baš iz razloga koje sam naveo priošli put da mi je u interesu da popunim što više pozicija tako da ako ima samo jedanog kandidata za neku poziciju prvo njega raspoređujem na to mjesto.

A potom mi je bitno da ispoštujem broj bodova jer zašto sam radio testiranje i interviju.

Svako olakšanje mi je od koristi.
[ Jpeca @ 21.09.2021. 07:51 ] @
Nisi nave ovo vezano za broj pozicije, pa sam ja taj deo prevideo.
Uglavnom nije teško ovo prepraviti uz taj dodatni uslov.
Radi preglednosti uveo sam novu funkciju koja učitava listu pozicija sa brojem kandidata za svaku poziciju kao dictionary. "101": 6, "102": 3 itd
Onda iz postojeće rutine pozivam taj dictionary i svaki put kad se oboji ćelija smanjuje se za jedan.
Na kraju uslov bojenja je da je broj (preostalih) kandidata za poziciju veći od 0