Telefonszámunk: 1-472-0679

Macro-VBA

Munkalap létezésének vizsgálata – érdekes VBA módszer

Gyakran szükségünk lehet arra, hogy makrófutás közben megnézzük, hogy egy adott nevű munkalap létezik-e már vagy sem. Erre több megoldás is létezik, de a napokban találkoztam egy igen érdekes verzióval, ami mindenképpen megér annyit, hogy közzétegyem. Először nézzük a hagyományos megoldásokat A klasszikus és elegáns változat egy […]

Tovább...

Teljes útvonalból fájlnév vagy mappa – VBA

Gyakori feladat, hogy egy fájl teljes elérési útjából ki kell nyerni a fájlnevet és/vagy a mappa útvonalat. Tehát ha például egy GetOpenFilename függvény visszaadja a kiválasztott fájl teljes elérési útját, C:\PROJEKTEK\2016\Excel-Ppt-chart-project\Top10\Top10_template.pptx Akkor ebből szükségünk lehet az útvonalra C:\PROJEKTEK\2016\Excel-Ppt-chart-project\Top10\ és a fájlnévre Top10_template.pptx Ehhez adnék közre két függvényt. […]

Tovább...

Megbízható dokumentumok – Makrók engedélyezése

Alapfogalmak Makró figyelmeztetés Az Excel-ben a makróbiztonság gyárilag úgy van beállítva, hogy makrókat tartalmazó fájlok megnyitásakor egy figyelmeztető üzenetet kapjunk, és eldönthessük, engedélyezzük-e a makrókat az adott dokumentumban vagy sem. Excel 2003-ig ez a figyelmeztető ablak jól látható módon, a képernyő közepén jelent meg. Excel 2007-ben jelent […]

Tovább...

Tartománynevek elrejtése – VBA

A professzionális Excel felhasználók gyakran dolgoznak névtartományokkal. Ez ugyebár azt jelenti, hogy egy tartományt elnevezünk, és a képletekben a tartomány címe helyett a nevét használjuk. A tartományok elnevezését a szerkesztőléc bal oldalán lévő Név mezőben vagy a Képletek szalagon található Névkezelőben lehet megadni. A Dinamikus névtartományokról olvashatsz […]

Tovább...

Munkalapnevek listázása tartományba

A munkalapnevek listázására leginkább VBA, azaz makró megoldásokat lehet találni. De a minap egy érdekes megoldásra bukkantam itt, amit szeretnék veletek megosztani. Tulajdonképpen ez is makró, de nem VBA, hanem EXCEL4 makró. Az Excel4 makrók függvények képében még megtalálhatók a mai EXCEL verziókban is, kompatibilitási okokból. A […]

Tovább...

Munkalapnév lekérése képlettel egy cellába

Meglehetősen sokszor találkozok azzal, hogy több munkalapos munkafüzetekben a munkalap nevét az egyik cellában konstansként is beírják. ha a lap neve megváltozik, akkor azt a cellát is manuálisan változtatni kell. Gondoltam, itt az ideje, hogy közzétegyem a megoldást, amit persze megint nem Én találtam ki, bár annyira […]

Tovább...

Munkalap ürességének vizsgálata makróval

Munkalap ürességének ellenőrzése

Készítünk egy függvényt, ami paraméterként a vizsgálandó munkalapot kapja meg, vissza pedig egy logikai értéket ad.

Ha egy munkalap üres, akkor a használt tartomány címe az ‘A1’ lesz. És ha az üres, akkor a munkalapot üresnek tekinthetjük.

1

Minden üres munkalap törlése

1

A munkalap nem csak cellákat, hanem egyéb elemet is tartalmazhat, pl.: Grafikonok, rajz elemek, képek, stb..

Ezeket ez a kód nem vizsgálja

 

Mindez videóra rögzítve működés közben

  • Üres-e a munkalap?

Tovább...

Az első kitöltött cella megkeresése makróval

Előfordulhat, hogy egy makró projekt kapcsán szembejön az a probléma, hogy nem tudjuk előre azt, hogy hol is kezdődik a feldolgozandó tartomány, vagy az éppen mindig változó. Emiatt jól jöhet ez az egy soros snippet a probléma megoldására.

1

Az első sor az aktuális munkalap első celláját aktiválja, hogy onnan kezdődjön a keresés. A második pedig megkeresi az első kitöltött cellát, amiben bármilyen érték lehet, szám, vagy szöveg, akár képlet.

A fenti kód csak akkor működik, ha az aktuális munkalap nem teljesen üres. Ellenkező esetben hibát fog jelezni.

Ezért csak akkor használjuk így, ha biztosan tudjuk, hogy van kitöltött cella a vizsgált munkalapon.

Munkalap ürességének ellenőrzése

Készítünk egy függvényt, ami paraméterként a vizsgálandó munkalapot kapja meg, vissza pedig egy logikai értéket ad.

Ha egy munkalap üres, akkor a használt tartomány címe az ‘A1’ lesz. És ha az üres, akkor a munkalapot üresnek tekinthetjük.

1

A javított kód

1

Így az első kitöltött cella keresése csak akkor fut le, ha az aktuális munkalap nem üres.

A munkalap nem csak cellákat, hanem egyéb elemet is tartalmazhat, pl.: Grafikonok, rajz elemek, képek, stb..

Ezeket ez a kód nem vizsgálja

 

Mindez működés közben

  • Hol az első kitöltött cella?

Tovább...

Az egyéni makró munkafüzet (PERSONAL.XLSB)

Az egyéni makró munkafüzet (Personal Macro Workbook) egy speciális munkafüzet, amit leginkább arra használhatunk, hogy kisebb, speciális vagy általános segéd makrókat tárolunk benne, és a napi munkánk során ezeket a makrókat használva felgyorsíthatjuk a munkánkat. Néhány példa:

  • A mai dátum beillesztése a kijelölt cellákba
  • Az aktív munkafüzet útvonalának kiíratása (honnan nyitottuk meg)
  • Aktuális kijelölés képleteinek értékké alakítása
  • A kijelölés közepére igazítás
  • Aktuális táblázat formázása adott sablon szerint
  • stb…

Hol van a helye? – XLSTART

A nevében is benne van, hogy személyes, azaz ha egy gépet többen használunk, akkor mindenkinek lehet saját ilyen makró füzete. Emiatt a személyes felhasználói profilunkban van a helye.

C:\Felhasználók\Konkrét felhasználó\Appdata\Roaming\Microsoft\Excel\XLSTART

A saját gépünkön aktuális helyet meg is kérdezhetjük az Exceltől:

  1. ALT-F11-el lépjünk át a Visual Basic szerkesztőbe
  2. Ctrl-G kombinációval hívjuk elő az Excel parancssorát (Immediate Window)
  3. Írjuk be a következőt: ?Application.StartupPath
  4. Válaszként megkapjuk a helyes útvonalat

Az AppData mappa alapból rejtett, ezért ha meg is szeretnénk nézni ennek a mappának a tartalmát, akkor be kell kapcsolni a rejtett fájlok és mappák megjelenítését.

Mi ez a mappa?

Ez a mappa arra való, hogy az ide helyezett munkafüzetek, vagy azokra mutató parancsikonokhoz tartozó munkafüzetek az Excel indításakor automatikusan megnyílnak.

Ha ezen a helyen létrehozunk egy PERSONAL.XLSB fájlt ( bináris munkafüzet), akkor az Excel ezt felismeri, és tud bele rögzíteni makrókat, illetve tudunk belőle futtatni makrólat attól függetlenül, hogy különben éppen melyik munkafüzettel dolgozunk.

Az XLSTART mappa az Exel telepítésekor legtöbbször automatikusan létrejön, és üres. Ritkábban, de előfordul, hogy az XLSTART mappa sem jön létre telepítéskor. A személyes makró munkafüzet tehát alapból nem létezik, azt nekünk kell létrehozni.

A PERSONAL.XLSB létrehozása

Erre három módszert is használhatunk

  1. Egy üres munkafüzetet nyitunk, és elmentjük bináris fájlként, PERSONAL néven az előbb megadott helyre
  2. Rögzítünk egy akármilyen makrót a személyes makró füzetbe. Ilyenkor az excel létrehozza a fájlt.
  3. Egy másik felhasználó profiljából vagy akár egy másik gépről származó fájlt bemásolunk ide

A PERSONAL.XLSB rejtetten nyílik meg, azaz nem látszódik az ablaka, csak a Visual Basic felületen látható, hogy nyitva van. A rejtettségét mi tudjuk beállítani a Nézet (View) szalagon az elrejtés/felfedés (hide/unhide) parancsokkal.

Példa makró

Legyen itt egy példa makró, amit a videó alapján létrehozott PERSONAL.XLSB fájlba illesztve ki is tudunk próbálni. A makró egy ablakba kiírja az aktuális munkafüzet elérési útját.

1

Mindez működés közben

  • Egyéni makró munkafüzet létrehozása

Tovább...

Igazítás a kijelölés közepére – Makróval

Egy korábbi anyagban arról volt szó, hogy ha lehetséges, kerüljük a cella egyesítést (Merge Cells), és helyette inkább a kijelölés közepére igazítást (Center Across Selection) használjuk.

kijeloles-kozepere

Mivel ennek a menüpontnak az elérése több kattintást igényel, így érdemes lehet a PERSONAL makrómunkafüzetbe tenni egy olyan makrót, ami elvégzi az igazítást.

Az egyéni makró munkafüzet (PERSONAL.XLS(B)

Az egyéni makró munkafüzetről egy külön oktatóanyagban van szó. Röviden, ez egy olyan speciális makrófájl, ami ha létezik, akkor az Excel indításakor automatikusan megnyílik, de rejtett ablakban. A benne lévő makrók pedig láthatóvá, használhatóvá válnak. Kisebb segéd makrókat szoktunk bele tenni, amik felgyorsítanak egyes műveleteket, és hagyományos módon csak körülményesen tudnánk megcsinálni. Ilyen például egy cella tartalmának a kijelölés közepére igazítása.

Lépjünk át a Visual Basic Editor felületére (ALT+F11)

Ha nem látszódik, Kapcsoljuk be a Project Explorer ablakot (Ctrl+R). Ha még nem létezik a PERSONAL makrófüzet, akkor létre kell hozni az említett tutorial alapján.

A PERSONAL makrófüzetbe illesszük be a következő kódot.

1

Használata

  1. Egy cellába beírjuk a szöveget, majd kijelöljük azt a tartományt, amin belül középre szeretnénk igazítani.
    kijeloles-kozepere-1
  2. Lefuttatjuk a makrót. Rendelhetünk hozzá billentyűkombinációt, vagy gyors elérési eszköztár gombot is . Nem egyesíti a cellákat, mégis középen látszik.
    kijeloles-kozepere-2

Az egész folyamatot megtekinthetjük a VIDEÓ anyagban

  • Igazítás a kijelölés közepére makróval

Tovább...