Excel makrók feladat - Egyéni számformátum

Ha követed az oldal írásait, észrevehetted hogy kicsit elmélyedtünk az Exfcel makróinak a világába. Eddig inkább csak említés szintjén használtuk a makrókat, azonban most egy valós felhasználását mutatom be a makróknak.

A feladat a következő:

Tegyük fel hogy a táblázatainkban többféle mennyiségi egységet használunk, és szeretnénk azt a táblázatokban jelezni is. Ehhez egy korábbi lecke anyagát fogjuk gombnyomásra elvégezni.

Nézzük melyik leckéket is érdemes átolvasni mielőtt nekilátsz:

A megoldás

Makrók készítésekor érdemes mindig alaposan végiggondolni mitz is kell megoldanunk, és azt lépésekre bontani. Tehát van egy adattáblánk, ahol az egyik sor liter, a másik pedig darab mértékegységet kell hogy kapjon, valahogy így:

24 darab
12 liter
32 darab

A módszerünk az lenne, hogy beállítjuk a cellák számformátumát. Azonban a mi esetünkben folyamatosan bővülő listáról van szó, ezért érdemes készíteni egy egyszerű makrót a számformátum beállítására. Vagyis nem kell kézzel állítgatnunk a formátumokat, hanem az a kijelölt cellán gombnyomásra megtörténik.

Tehát a lépések a következők (érdemes egy pár számot beírni a cellákba hogy lásd mit is csinálsz):

  1. Létrehozunk egy gombot, ami a kijelölt cella számformátumát darabra változtatja (Fejlesztőeszközök -> Beszúrás -> Gomb)
     
  2. Új makrót rögzítünk a felugró ablak Rögzítés parancsával
    A makró rögzítésekor rögtön akad egy kis problémánk. A rögzítéskor kénytelenek vagyunk kijelölni egy cellát, mivel a fókusz jelenleg a gombunkon van, aminek ugye nincs ilyen formázási opciója. De semmi gond, jelöljük ki mondjuk az A1-es cellát, majd jobb klikk és Cellaformázás. Először a Darab mértékegységet állítjuk be, tehát legyen a formátum most ez : #0" darab"
     
  3. Mentsük el, és próbáljuk ki a gombot. Most azt kell tapasztalnod, amit korábban megjósoltunk, hogy bárhová is lépsz a gomb megnyomására a fókusz mindig visszakerül az A1-es cellára.
    Szerencsére ennek a problémának a megoldása nagyon egyszerű. Kattints a Makrók gombra, majd válaszd ki a makrót, amit legutóbb lefuttattál (ugye elnevezted? :)) Ezután válaszd a Szerkesztést. 
    A makród kódja valami ehhez hasonló lesz:

        Range("A1").Select    <-- Ez a sor jelöli ki az A1-es cellát, egyszerűen töröld
        Selection.NumberFormat = "#0"" darab"""
     

  4. Mentésre nincs szükség, csak egyszerűen zárd be a Visual Basic szerkesztőt (Ne az Excel-t)
     

Ha a gombra kattintasz, mindig a kijelölt cella formátuma fog megváltozni.

Most ismételd meg mégegyszer a fenti lépéseket, egy új gombot létrehozva. A formátumkód itt legyen #0" liter"

A végeredménynek valami ehhez hasonlónak kell lennie:

Excel egyéni számformátum makróval

Végül néhány tippet szeretnék megosztani veled a hasonló feldatok helyes megoldása érdekében:
  1. Ha hasonló makrót szeretnél létrehozni. Ne félj megnézni a kódot, mint a példában is láttad egyszerűen kikövetkeztethető hogy melyik sor mit csinál.
  2. Mindig körültekintően járj el amikor a kódhoz nyúlsz
  3. A makró rögzítése előtt alaposan gondold át, mi fog történni, ha az adott eseménysort rögzíted. Érdemes rögzítés előtt elpróbálni a lépéseket, így sok problémától kímélheted meg magad később.

A kész feladatot le is töltheted innen!

Figyelem! A táblázat helyes működéséhez először engedélyezned kell a makrók futtatását a táblázatban!

Mondd el a véleményed!

 

Új hozzászólás