Office Guru

Automatikus frissítés legördülő menüre könyvtárstruktúrából

2017. november 24. - Office Guru

A mostani posztban bemutatásra kerülő megoldás egyes részeiről valószínűleg volt már szó korábban is, de így egyben még nem mentünk végig a folyamaton. Az eredeti kérés arra irányult volna, hogy hogyan lehetne egy legördülő menüben bizonyos fájlokat listázni automatikusan, azaz egy user által megadott elérési úton található fájlok kerülnek egy legördülő menübe, amivel később aztán műveleteket lehet végrehajtani.

Valami ilyesmire kell gondolni, a Könyvtár mezőt a user tölti ki, a megoldásunk pedig frissíti a Fájlok listájában található legördülő menüt:

1_3.JPGA megoldás nagyjából úgy fog kinézni, hogy a felhasználó megad egy elérési útvonalat, majd a Developer ribbonfül Controls szekciójának Insert menüjéből beszúrt gombra kattint:

1a.JPGKattintsunk erre a gombra jobb egérgombbal majd Assign Macro utasítással rendeljünk hozzá egy makrót. Amint ez megvan, dobjuk össze a kis kódunkat:

2_3.JPGElsőként tehát ahogy látható is, létre fogunk hozni öt változót, ezek közül az első egy FileSystemObject lesz, ami rövid kódsorunk magját és legfontosabb elemét adja és objektumalapú lehetőséget ad számunkra, hogy hozzáférjünk a számítógépünk fájlrendszeréhez. A második változónkat a folderobjektumunknak hozzuk létre, a harmadik változónkat pedig a fájlrendszerünk fájlobjektumának. Értelemszerűen ezeknek ezért "folder" és "file" a típusuk. A "path" változó fogja eltárolni a user által megadott elérési utat, az i pedig majd a ciklusunknál segít nekünk.

És ahogy mindig, most folytassuk a kódunkat a változók feltöltésével, elsőként a "path" változó vegye fel a user cellájának értékét. Ezután hozzunk létre egy új fájlrendszerobjektumot, majd az ezen belül elérhető GetFolder metódus, a paramétereként beadott elérési útra visszaadott értékét töltsük be a root változóba.

3_3.JPGEzután jön a ciklusunk, amelyben a könyvtárunkban található összes fájlon végig fogunk menni (For Each file in root.Files), majd levágjuk az utolsó három karaktert a teljes elnevezésből (Right(file.Name, 3)) és ha ez kisbetűvel írva mondjuk "txt", akkor a B oszlopunk i-edik (ahogy halad a ciklus) sorában szereplő cella értéke a fájl neve lesz. Majd megyünk a következő fájlra és végül befejezzük a kódot.

4_3.JPGPersze ezzel még nincs vége, hiszen csak azt értük el, hogy mostantól frissítés esetén a B oszlopunk frissülni fog (ez persze lehet egy rejtett sheeten is, most csak a példa kedvéért van ennyire látható helyen). De a Data Validation Listünket is be kell jól állítanunk a Fájlok listája mezőnél, hogy mindig automatikusan felkapja a pluszként bejött sorokat.

5_3.JPGKattinsunk a cellára, majd a Data ribbonfülünk Data Tools szekciójából szúrjunk be egy Data Validation Listet. A listánk Source paraméteréhez a szimpla kijelölés helyett a következő formában írjuk be a forrásunkat:

=OFFSET($B$1,0,0,COUNTA(B:B))

Ezzel mit fogunk elérni? Mint ugyebár tudjuk már, az OFFSET egy olyan cella vagy tartomány hivatkozását/elérési útját adja vissza, ami a függvény paramétereként megadott sorszámra vagy oszlopszámra van a megadott cellától. Jelen példánknál maradva, a $B$1 cellától indulunk ki, majd COUNTA segítségével megnézzük, hogy hány darab nem üres cella van a B oszlopban és ez fogja megadni a tartományunkat a dropdown számára, tehát ez mindig automatikusan frissíti a legördülő menüt. És kész vagyunk.

6_3.JPG

A bejegyzés trackback címe:

https://officeguru.blog.hu/api/trackback/id/tr7413367167

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

Nincsenek hozzászólások.
süti beállítások módosítása