Visual Basic for Application (VBA)

10
VISUAL BASIC FOR APPLICATION (VBA) Ciklusok, függvények

description

Visual Basic for Application (VBA). Ciklusok, függvények. Feladatok. Készíts makrót, ami a egy táblázatban felcseréli az A és a D oszlopot, az E oszlopot pedig áthelyezi a B elé! Készíts makrót, ami egy táblázat első (fejléc) sorát 15 soronként megismétli! - PowerPoint PPT Presentation

Transcript of Visual Basic for Application (VBA)

Page 1: Visual Basic  for Application  (VBA)

VISUAL BASIC FOR APPLICATION (VBA)

Ciklusok, függvények

Page 2: Visual Basic  for Application  (VBA)

Feladatok

Készíts makrót, ami a egy táblázatban felcseréli az A és a D oszlopot, az E oszlopot pedig áthelyezi a B elé!

Készíts makrót, ami egy táblázat első (fejléc) sorát 15 soronként megismétli! Ehhez első lépésben vegyél fel egy makrót, ami az

adott lapon kijelöli, majd másolja az első sort, ezután 15 sort lejjebb megy, és beilleszti a másolt tartalmat!

Következő lépésben oldd meg, hogy addig ismétlődjön a lejjebb lépés/beillesztés, amig üres sorhoz nem érünk!

Haladó: oldd meg, hogy a másolás előtt egy üres sort is szúrjon be a fejlécnek a makró!

Page 3: Visual Basic  for Application  (VBA)

Emlékeztető

Elágazás:If feltétel Thenteendők ha feltétel igaz

Elseteendők ha feltétel nem igaz

End if

Page 4: Visual Basic  for Application  (VBA)

Emlékeztető

Ciklus:Do Until feltételteendők (ciklusmag)lépés a következő elemre!

Loop Addig ismétli a ciklusmagot, amig a

feltétel igazzá nem válik. Létezik hátultesztelős változat, ami legalább

egyszer mindenképpen lefut, illetve Until helyett While-t használó, ami akkor áll le, ha a feltétel hamissá válik.

Page 5: Visual Basic  for Application  (VBA)

Feladatok

Készíts makrót, ami egy oszlop elemein végigszalad, és ha egymás utáni ismétlődést talál, törli az ismétlődő elemet tartalmazó cellát! Figyelj oda, hogy a makró akkor is jól működjön, ha egymás után többször ismétlődik egy elem! A lépésenkénti futtatás segíthet.

Készíts makrót, ami „észreveszi” és jelöli valahogy, ha egy növekvően rendezett listában hibás, tehát az előtte lévőnél kisebb elemet talál!

Page 6: Visual Basic  for Application  (VBA)

Feladatok

A http://vacip.web.elte.hu/excel/feladatok/VBA tárhelyről töltsd le a VBA3.xls-t, és oldd meg rajta a következő feladatokat!

A BP balances lapon: Készíts függvényt, ami az első oszlop számaiból

kihámozza a számot! Tehát le kell vágni az USD-t, el kell hagyni a fölösleges szóközöket, a csillagot és a vesszőt, és a tizedespontot tizedesvesszőre kell cserélni.

Ezután készíts makrót, ami az A oszlopon végigszalad az aljáig, és minden cellát lecserél a letisztított számra!

Page 7: Visual Basic  for Application  (VBA)

Feladatok

A dátumok lapon található számokat alakítsd dátummá! Az első egy vagy két karakter a nap, utána a hónap, majd az év következik. Készíts egy függvényt, ami minden alakra univerzálisan működik (Kell: HA()/IF(), DÁTUM()/DATE(), BAL()/LEFT(), KÖZÉP()/MID(), JOBB()/RIGHT(), HOSSZ()/LEN()).

Ezután a fentihez hasonlóan készíts makrót, ami lecseréli a számokat valódi sátumokra!

Page 8: Visual Basic  for Application  (VBA)

Megoldások

Page 9: Visual Basic  for Application  (VBA)

Fejléc ismételgető

Sub fejléc_másoló() Cells(1, 1).Activate ActiveCell.Offset(15, 0).Select Do Until ActiveCell.Value = "" ActiveCell.EntireRow.Insert _

shift:=xlDown Rows("1:1").Copy ActiveSheet.Paste ActiveCell.Offset(15, 0).Select Loop Application.CutCopyMode = FalseEnd Sub

Page 10: Visual Basic  for Application  (VBA)

Ismétlődők törlése

Sub ism_törl1()Do Until ActiveCell.Value = "" If ActiveCell.Value = _

ActiveCell.Offset(1, 0).Value Then Selection.Delete Else ActiveCell.Offset(1, 0).Select End IfLoopEnd Sub