Kezdőlap › Fórumok › Excel témák › [Resolved] Beosztás táblázat szűrése
- This topic has 8 hozzászólás, 2 résztvevő, and was last updated 7 years telt el by wh999.
-
SzerzőBejegyzés
-
2017-11-09-11:28 #3970
Üdv!
Adott egy olyan táblázat, amely személyek 12 órás beosztását (N = nappal, É = éjszaka) tartalmazza jelen esetben 12 napra.
A dolgozók több szolgálati helyre lehetnek beosztva, ezt a napszak utáni kód jelöli, pl, NBB = nappalos műszak BB helyen.
A Beosztás fül tartalmazza a neveket, és a helyeket is összesítve, de szükséges egy külön fülre választani a hely szerinti beosztásokat is. (jelen esetben csak a BB Szolgálati hely van kiemelve)
A helyi fül tartalmazza az alapvetően ott tartózkodó dolgozókat, de kell egy „vendég” rész is, ami kilistázza az 1-1 szolgálatra odairányított embereket is. Ezt megoldottam a napszak utáni helykód kiolvasásával (ÉBB, NBB), viszont az üres soroktól meg kéne szabadulni, hogy csak a tényleges adatok maradjanak meg. Manuálisan persze kitörölhető, de a Beosztás fül gyakran változik, a neveket és a helyeket illetően is, ezért ezt valahogy követni kéne a kilistázásnak is.
A fenti problémára szeretnék megoldást találni.
A segítséget előre is köszönöm.Attachments:
You must be logged in to view attached files.2017-11-09-12:08 #3972Szia!
A 2. lap C27 cellájába tegyél autoszűrőt. Ezt legördítve vedd ki a pipát az (Üres) elől.
A C:O oszlopok képleteit kicsit egyszerűsítettem.
Attachments:
You must be logged in to view attached files.2017-11-13-09:39 #3975Szia!
Köszönöm a gyors megoldást, ez jól működik.
Viszont dinamikussá kéne valahogy tenni a szűrést, mert ha új névvel bővül a Vendég lista, akkor a szűrést is újra kell sajnos ilyenkor futtatni.2017-11-13-10:26 #3976Szia!
Ehhez makró kell, mégpedig kettő. Az elsőt a Beosztás laphoz kell rendelned: lapfülön jobb klikk, Kód megjelenítése. Ezzel bejutottál a VB szerkesztőbe, ott is a lapod kódlapjához. A jobb oldalon lévő üres területre bemásolod a lenti makrót.
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, [C:O]) Is Nothing And _ Application.WorksheetFunction.CountA(Range("C" & Target.Row & ":O" & Target.Row)) > 1 Then AutoSzuro End If End Sub
Ez a makró figyeli a billentyűzetről történő bevitelt. Ha a bevitel a C:O oszlopok valamelyik sorába történt, meghívja a másik makrót (AutoSzuro), amit modulba másolsz: A VB szerkesztőben állva bal oldalon kijelölöd a füzetedet, majd Insert menü, Module hatására új, üres modult kapsz. A jobb oldalon kapott újabb üres felületre bemásolod:
Sub AutoSzuro() Dim usor As Long usor = Sheets("BB Szolgálati hely").Range("C" & Rows.Count).End(xlUp).Row Sheets("BB Szolgálati hely").Range("$C$27:$R$" & usor).AutoFilter Field:=1, Criteria1:="<>" End Sub
A 2. lapon a C:O képleteit tovább kell másolnod lefelé!
Az első lap BB Szolgálati hely táblázatot a helyedben a mostani helyzetéből átmozgatnám fel és jobbra, hogy a bal felső cellája a Q1 legyen, másképp összecsúszik a két táblázat.A makrók beírása után a füzetedet másként, makróbarátként kell elmentened.
2017-11-13-11:18 #3977Szia!
Tökéletesen működik! Köszönöm, sokat segítettél ezzel.
Eredeti formában 3 szolgálati hely szerepel, egy havi bontásban. Egy adott napot nézve egy oszlopban vannak a műszakok, így látom ki és hol dolgozik aznap.
Ezért jobb számomra, hogy egymás alatt vannak a táblázatok.2017-11-13-11:22 #3978Örülök, hogy összejött, szívesen.
2017-11-13-12:31 #3979Most nézem, mintha keletkezett volna egy kellemetlen mellékhatása ennek a makrónak: ha bármely olyan cellát módosítok, amelyet a makró használ, akkor azt nem lehet visszavonással törölni. Bármely más mezőbe ha írok, akkor az előzményekben megjelenik.
2017-11-13-12:37 #3980Igazad van, de választanod kell, mi a fontosabb: a szűrés automatikus frissítése, vagy a hibás bevitel helyett az előző állapot visszaállítása.
2017-11-13-13:15 #3981A kék vagy a piros kapszula esete. 🙂
Majd megszokom. -
SzerzőBejegyzés
- Be kell jelentkezni a hozzászóláshoz.