A userformok Excelben igen kedvelt kommunikációs csatornának számítanak, ha felhasználóinktól szeretnénk begyűjteni és rögzíteni mindenféle adatot, akár mondjuk egy konferenciára való jelentkezést vagy éppen időpontok foglalását tekintve. Egy alap userform elkészítése egy kis makróval kiegészítve alapvetően nem iszonyúan ördöngős feladat, de egy-két ügyes húzással könnyedén extrákat is adhatunk hozzá, ebből mutatok meg most egyet egy kérdésre válaszolva.
Tegyük fel, hogy a VBA-editor Insert menüjéből már be is szúrtunk egy egyszerű userformot:
Ha automatikusan nem jelenik meg, akkor F4 lenyomásával hívjuk elő a Properties ablakot, amelyben látunk egy MousePointer névre hallgató tulajdonságot:
Ennek állítgatásával azt érhetjük el, hogy a kurzorunk az egyszerű nyílról meg fog változni valami másra, ha a userformunk fölé húzzuk. Például a 14-es fmMousePointerHelp paraméter egy kis kérdőjelet fog az egerünk mellé tenni:
A 13-as aztán egy indulást/töltődést jelző kis karikát fog nekünk kidobni:
Ha pedig már kipróbáltuk az összes elérhető default típust és olyasmit szeretnénk, amit az Excel alapból nem tud, akkor válasszuk a 99-es, fmMousePointerCustom névre hallgató paramétert:
Majd az eggyel felette elhelyezkedő MouseIcon nevű tulajdonság sorában kattintsunk a három kis pöttyre és válasszuk ki a nekünk tetsző kis ikont:
Itt akár berakhatunk egy céges logót, egy monogramot, bármit, amit szeretnénk, hogy megjelenjen ha a userform fölé húzzuk a kurzort. És értelemszerűen ez nem csak egy egész formon működik, a View menüből elérhető toolboxból beszúrható nagyjából bármilyen formára/controlra készíthetünk ilyet:
Maga ez a poszt tehát nem egy komplex történet, remélhetőleg azonban ad ötletet akár csak egyetlen Olvasónak is - én azonban az írás során olyan érdekes kis problémába botlottam, ami közvetlenül nem érinti az Officet, de elgondolkodtató.
Csináljunk egy egyszerű userformot a fentiek szerint mondjuk a 13-as típusú pointerrel, majd próbáljunk róla printscreent készíteni!
Az egyszerűbb screenshot-készítőkkel (pl. Snipping Tool, SnagIt) vagy a sima PrintScreen gombbal nem fogunk sikerrel járni, vagy egy extrább alkalmazást kell bevetnünk vagy használjuk a Windows beépített "Problem recorder" toolját. De ha valakinek van default, mindenféle külső alkalmazás nélküli jó ötlete, ne kíméljen!
Mindkettő csak teljesen véletlenszerűen generált tartalommal van tele, de értelemszerűen ez a megoldás független a fájlok tartalmától:
Csak a példa kedvéért legyen valahol máshol egy fájlunk, amelyben lesz egy gomb, ami majd elindítja a másolási folyamat - persze ez csak kizárólag ebben a posztban lesz így, amúgy kitehetünk a Ribbonra is egy gombot, akár indítással futtatható makrót is készíthetünk, a lényeg, hogy valamilyen módon indítsuk el a programot:
Szépen lépjünk át a VBA-editorba és a gombhoz hozzárendelt makrót elkezdjük felépíteni, elsőként a változók deklarálásával. Szükségünk lesz három változóra és egy konstans értékre, kell egy változó a fájlnév és elérési út tárolására (File As String), egy változó az új dokumentum létrehozásához (Doc As Document) és egy változó a tartalom begyűjtésére a különböző fájlokból (rng As Range). A konstans értékünk az a folder lesz, ahonnan összesítjük a fájlokat, de ezt roppant egyszerű módon átalakíthatjuk arra is, hogy manuálisan választhassuk ki a foldert, de úgy is a kód átalakításával, hogy a fájlokat választhassuk ki egyesével.
Végezzünk el rajta bizonyos formázásokat előzetesen, első lépésként azokat a címeket/bekezdéseket, amelyeket külön slide-okra akarunk és amelyek a slide-ok főcímei lesznek, a Home ribbonfül Styles szekciójában állítsuk Heading 1 típusú formátumra.
Az alcímeket/fő bullet pointokat állítsuk Heading 2 típusra:
És végül a szöveg, az alcímekhez tartozó tartalom legyen Heading 3:
Értelemszerűen ha további alábontásokat, tartalmakat is akarunk még, akkor azokhoz a szövegrészekhez rendeljünk egy külön Heading típust.
Ezután már csak annyi dolgunk van, hogy rákattintunk a gombra:
És íme, elkészült az eredmény:
Ahogy az a folyamat során valószínűleg elég egyértelműen látszott, olyan formátumban pakolhatjuk át a szövegeinket, amilyenben csak akarjuk, annyi szükséges hozzá, hogy előtte dolgozzuk meg a Word formátumát is.
Egyértelműen látszik, hogy mi a Waterfall-chart kiindulópontja és végeredménye: mindenféle értékek/eredmények alakulását mutatja meg a módosító tényezőkkel együtt.
Úgyhogy szúrjuk is szépen be ezt a diagramot és máris látjuk az alaptípusú Waterfallt:
Aztán egyszerűen meg is foghatjuk ezt és átrakhatjuk egy PowerPoint diára, beillesztve szépen prezentációnk folyamába:
De persze arra is van mód, ahogy fentebb már említettem, hogy PowerPointból készítsük el ezt a diagramot. Ehhez a prezentációs program Insert ribbonfülének Illustrations szekciójából szúrjunk egy Waterfall chartot:
És ezt egy automatikusan megnyíló Excel-ablakban szépen editálhatjuk is:
Annyi fontos még, hogy a klasszikus nézet eléréséhez még egy lépést meg kell tennünk. Az eredményoszlopunk tömbjére kattintva jobb gombbal nyissuk meg a Format Data Point menüpontot, majd a Set as Total checkboxot pipáljuk be, ettől válik ugyanis igazi "honnan-hová" diagrammá a "vízesésünk".
Ez volt az alapvető tudnivaló, amit mindenképpen fontos ismerni adatelemzéseknél, adatok bemutatásánál, de azért információként tároljuk el, hogy nem csak ilyen típusú "vízesést" tudunk készíteni, van ennek ugyanis többek között:
Ilyen feladat például egy egyszerű összehasonlítás két tábla között, amelyre használhatunk mindenféle praktikákat, mondjuk egy VLOOKUP függvényt oda-vissza és így tovább, pedig a Consolidate funkció is segíthet ebben. Adott a következő mintatábla:
Azt szeretnénk megtudni, hogy az 1967-es és a 2010-es chilei labdarúgó-bajnokság Apertura szezonjának csapatai közül melyek szerepeltek mindkét esztendőben. Néhány apró kattintással összesíthetjük is ezt az elemzést, amelyhez elsőként gyorsan megduplikáljuk a két oszlopot valahogy így:
Rákattintunk a Consolidate funkcióra, majd a Function legördülő menüjét Countra állítva, hozzáadjuk a két hivatkozásunkat - az egyik értelemszerűen a két 1967-es oszlop lesz, a másik pedig a két 2010-es oszlop:
Annak érdekében, hogy megfelelő összesítő táblát kapjunk, a Top row és a Left column Labels checkboxokat is pipáljuk be. Fontos tudni, hogy ezt elvégezhetjük nem csak ugyanazon a sheeten, de akár különböző munkafüzetekben is.
De ez csak egy volt a Consolidate sok lehetősége közül, például szummarizálni is hasonlóan egyszerűen tudunk vele. Adott mondjuk két sheeten két kis tábla adott havi bevételadatokkal (és akár lehet ez különböző Excel-fájlokban is):
Ezután a Consolidate gombra való kattintás után válasszuk ki a Sum funkciót, hivatkozásként jelöljük meg a két táblánkat, majd kattintsunk az okéra és kész is vagyunk:
Vegyük mindenképpen észre, hogy a Create links to source data checkbox bekapcsolásával dinamikusan változhatnak értékeink a forrásadat változása alapján. És a fentiekkel a Consolidate funkciónak csak éppen a felszínét kapargattuk - mindenki bátran próbálkozzon vele, határozottan segítség a mindennapi feladatokban.
A kitöltést távolítsuk el azonnal (No Fill a Format ribbonfül alatt), majd jobb gombbal kattintva a formára, válasszuk az Edit Points menüpontot:
Ezután szépen jelöljük ki a téglalap "felső" oldalát:
Újra jobb gombbal történő kattintás után a Delete Segment funkció segítségével távolítsuk el ezt a "felső" oldalt:
Alapesetben az egyik oldal el fog görbülni kicsit a törlés után:
Jobb gombbal való kattintás után az Edit Points menüpont segítségével irányba tudjuk mozdítani ezt az oldalt, hogy ebbe a helyzetbe kerüljünk:
Ezután visszatérünk az Insert ribbonfülhöz, amelynek Illustrations szekciójából megint beszúrunk egy formát, ezúttal egy nyilat:
Szúrjunk be ezután majd még egy ugyanilyen nyílat és mindkettőt passzoljuk hozzá a "felső" oldal nélküli téglalap-formánk szabadon álló végeihez, valahogy így:
Majd mindhárom formát (két nyíl és egy téglalap) jelöljük ki a CTRL nyomvatartása mellett és nyomjunk jobb gombot az egerünkön, hogy lehetőségünk legyen a Group paranccsal egyesíteni/csoportosítani őket. És innentől kezdve kész a két könyökkel bíró elbow connector, ami tetszőleges forgatható, tágítható, kicsinyíthető stb.
Ugyanennek az elbow connectornak egyébként van egy olyan tulajdonsága/viselkedése, amely sokak szerint a PowerPoint bugjainak egyike, bár jómagam inkább elvárt viselkedésnek tartom ezt, mint hibának. Hogy miről van szó? Nézzük meg!
Fontos, hogy elhelyezkedésük teljesen ugyanolyan legyen, tehát középpontjaik egy egyenesen helyezkedjenek el.
Ezzel az elbow connectorral aztán próbáljuk meg a felső téglalapunk "alsó" oldalának középpontját összekötni az alsó téglalapunk "felső" oldalának középpontjával. Hiába állítottuk pontosan középre mindkét formát, az elbow connector mégis megtörik középen, ott, ahol elvileg egyenesnek kellene lennie, hiszen a középpontok pontosan ugyanazon az egyenesen helyezkednek el.
Súlyos problémáról nem beszélünk, hiszen könnyen javítható, elég hozzá jobb gombbal való kattintás után a Size and Position menübe lépni:
Majd a Height értékét nullára korrigálni:
A kérdés viszont marad: ez egy hiba vagy sem? Az elbow connector alapvetően nem egyenes nyíl, tehát a megtörés (a "könyök") elvárt reakció, de két egymásra teljesen illeszkedő középpont esetén ez valahogy mégsem áll össze teljesen egyértelműen.
Csinálhatjuk ezt kézzel, csinálhatjuk makróval, de csinálhatjuk command promptból is, a lényeg, hogy minél egyszerűbben készítsük el a playlistet (ez lehet egy könyvtárban lévő összes fájl listázása stb.).
