Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Makrók alkalmazása VBA felületen

Hasonló előadás


Az előadások a következő témára: "Makrók alkalmazása VBA felületen"— Előadás másolata:

1 Makrók alkalmazása VBA felületen
Gazdasági feladatok Excel 2007-ben Somogyi Edit

2 Adó számítása

3 Program elkészítésének lépései
Adósávok és eredménycellák megadása Párbeszédpanel elkészítése Vezérlőelemek felvétele Tulajdonságok megadása Programkód megírása

4 Adósávok és eredménycellák

5 Párbeszédpanel elkészítése

6 Programkód megírása Munkafüzet megnyitásakor a párbeszédpanel megjelenjen Private Sub Workbook_Open() Panel.Show End Sub

7 Az Adó gomb megnyomásakor számolja ki a jövedelmet, az adókulcsot és az adót.
Private Sub Adozas_Click() jov = Val(Bevetel.Text) - Val(Koltseg.Text) tartomany = Worksheets("Munka1").Range("a2:c3") kulcs = WorksheetFunction.VLookup(jov, tartomany, 3) / 100 If jov > Then Ado = (jov ) * kulcs Else Ado = jov * kulcs Cells(5, 2) = FormatCurrency(jov, 0) Cells(6, 2) = FormatPercent(kulcs, 0) Cells(7, 2) = FormatCurrency(Ado, 0) End Sub

8 BÉT árfolyamok elemzése

9 Párbeszédpanel felépítése

10 Programkód megírása A munkafüzet megnyitásakor hozzon létre egy új munkalapot, és indítsa el az Arfolyam nevű makrót. Private Sub Workbook_Open() Sheets.Add Arfolyam End Sub

11 Az Arfolyam makró elemei
Fejléc Sub Arfolyam() 'Oszlopnevek Cells(1, 1) = "Állampapír neve" Cells(1, 2) = „Állampapír fajtája” Cells(1, 3) = "Tranzakció ideje" Cells(1, 4) = "Vétel" Cells(1, 5) = "Eladás" Cells(1, 6) = "Záró" Cells(1, 7) = "Mennyiség" Cells(1, 8) = "Változás" Cells(1, 8) = "Összérték" ’Tartomány kijelölése ActiveSheet.Range("a1:i20").Select 'Karakterformázás With Selection.Font .Name = "Times New Roman" .FontStyle = "Bold Italic" .Size = 14 End With 'Keretezés Selection.Borders(xlLeft).LineStyle = xlContinuous Selection.Borders(xlRight).LineStyle = xlContinuous Selection.Borders(xlTop).LineStyle = xlContinuous Selection.Borders(xlBottom).LineStyle = xlContinuous Selection.BorderAround xlDouble 'Oszlopszélesség igazodása Selection.EntireColumn.AutoFit ’Párbeszédpanel megjelenítése ArPanel.Show End Sub

12 Állampapír kiválasztása

13 Részvény kiválasztása
A részvény kiválasztásával megjelenik a megfelelő lista, amely az eredeti táblázatban van Private Sub Reszveny_Click() Lista.RowSource = "k2:k8" End Sub

14 Változás

15 Programkód A Valtoz függvény kiszámolja az eladás és záróérték különbségét Private Function Valtoz() As Double Valtoz = _ Val(Eladas.Text) - Val(Zaro.Text) End Function A Változás nyomógombra kattintva kiírja a az eredményt Private Sub Valtozas_Click() MsgBox "Az állampapír értékének változása " & _ FormatCurrency(Valtoz,0) , vbOKOnly, "Változás" End Sub

16 Összérték

17 Programkód Az Osszes függvény kiszámolja az eladás és a mennyiség szorzatát Private Function Osszes() As Double Osszes = Val(Mennyiseg.Text) * Val(Eladas.Text) End Function Az Összérték gombra kattintva kiírja az eredményt Private Sub Osszertek_Click() MsgBox "Az állampapír eladási összértéke " _ & FormatCurrency(Osszes), vbOKOnly, "Összérték" End Sub

18 Adatok kiírása a táblázatba

19 Programkód elemei Private Sub Felvitel_Click() Const ksor=2
’Hányadik sorban állunk If sor < 2 Then sor = ksor Else sor = sor + 1 ’Melyik állampapírt választottuk If Reszveny.Value = True Then nev = "Részvény" If Kotveny.Value = True Then nev = "Kötvény" If Befektetes.Value = True Then nev = "Befektetési jegy" ’Adatok kiírása táblázatba Cells(sor, "a") = nev Cells(sor, "b") = Lista.Text Cells(sor, "c") = Ido.Text Cells(sor, "d") = Val(Vetel.Text) Cells(sor, "e") = Val(Eladas.Text) Cells(sor, "f") = Val(Zaro.Text) Cells(sor, "g") = Val(Mennyiseg.Text) Cells(sor, "h") = Valtoz Cells(sor, "i") = Osszes 'Oszlopszélesség igazodása Selection.EntireColumn.AutoFit 'Állapot visszaállítása Vetel.Text = "" Eladas.Text = "" Zaro.Text = "" Mennyiseg.Text = "" Lista.Text = "Válassz egy értékpapírt!"

20 Statisztika panel Ha legalább két sor van a táblázatban jelenítse meg a Statisztika panelt Private Sub Statisztika_Click() If Cells(2,1)<>”” Then StatisztikaPanel.Show Else MsgBox _ "Töltse fel a táblázatot!", vbOKOnly, "Keresés" End Sub

21 Diagram

22 Programkód Private Sub Diagram_Click() ’Hány sorban vannak adatok
Do While Cells(i, 1) <> "" i = i + 1 Loop sor = i –1 ’Diagram létrehozása ActiveSheet.Shapes.AddChart.Select With ActiveChart .SetSourceData Source:=Range(Cells(2, 4), Cells(sor, 6)) .ChartType = xlLineMarkersStacked ‘Jelmagyarázat .SeriesCollection(1).XValues _=ActiveSheet.Range(Cells(2, 1), Cells(sor, 1)) .SeriesCollection(1).Name = "Vétel" .SeriesCollection(2).Name = "Eladás" .SeriesCollection(3).Name = "Záró" ‘Tengelyek, cím .SetElement (msoElementChartTitleAboveChart) .SetElement _(msoElementPrimaryCategoryAxisTitleAdjacentToAxis) .SetElement _(msoElementPrimaryValueAxisTitleHorizontal) .Axes(xlCategory).AxisTitle.Text = "állampapír" .Axes(xlValue).AxisTitle.Text = "érték" .ChartTitle.Text = "BÉT árfolyamok mozgása" ‘Létrehozás új munkalapon .Location xlLocationAsNewSheet End With End Sub

23 Statisztika Panel

24 Összeg és átlag

25 Programkód Hány sort összegezzünk? Function sorok() As Byte i = 1
Do While Cells(i, 1) <> "" i = i + 1 Loop sorok=i-1 End Function Melyik papírt választottuk? Function papir() As String If Reszveny.Value = True Then papir = "Részvény" If Kotveny.Value = True Then papir = "Kötvény" If Befektetes.Value = True Then papir = "Befektetési jegy" Melyik tranzakciót választottuk? Function Akcio() As Byte If Vetel.Value = True Then Akcio = 4 If Eladas.Value = True Then Akcio = 5 If Zaro.Value = True Then Akcio = 6

26 Összeg és átlag Private Sub Osszatlag_Click() osszeg = 0 db = 0
For i = 2 To sorok If Cells(i, 1) = papir And Akcio > 0 Then szam = Val(Cells(i, Akcio)) db = db + 1 osszeg = osszeg + szam End If Next If db = 0 Then atl = 0 If db >= 1 Then atl = osszeg / db MsgBox "Az összeg: " & FormatCurrency(Osszeg, 0) & _ vbCrLf & "Az átlag: " + FormatCurrency(atl, 0), _ vbOKOnly, "Összeg és átlag" End Sub

27 Minimum és maximum

28 Programkód Private Sub Minmax_Click() max = 0 min = 100000
For i = 2 To sorok If Cells(i, 1) = papir And Akcio > 0 Then szam = _ Val(Cells(i, Akcio)) If szam > max Then max = szam If szam < min And szam > 0 Then min = szam Next MsgBox "A legnagyobb érték: " & FormatCurrency(max, 0) _ & vbCrLf & "A legkisebb érték: " & FormatCurrency(min, 0), _ vbOKOnly, "Minimum és maximum" End Sub

29 Megszámolás papír szerint

30 Programkód Private Sub Megszamolaspapir_Click() rdb = 0 kdb = 0
bdb = 0 For i = 2 To sorok If Cells(i, 1) = "Részvény" Then rdb = rdb + Cells(i, 7) If Cells(i, 1) = "Kötvény" Then kdb = kdb + Cells(i, 7) If Cells(i, 1) = "Befektetési jegy" Then bdb = bdb + Cells(i, 7) Next i MsgBox "Részvény: " & rdb & " db" & vbCrLf _ & "Kötvény: " & kdb & " db" & vbCrLf & _ "Befektetési jegy: " & bdb & " db", _ vbOKOnly, "Megszámolás" End Sub

31 BÉT árfolyamok beolvasása internetről
Adatok Külső adatok átvitele Weblapról Beállítások

32 ArPanel módosul

33 Diagram látványosabb

34 Statisztika panel módosul

35 Értékpapír legkisebb vételi ára

36 Értékpapír legnagyobb záró értéke

37 Adott időintervallumban forgalmazott értékpapírok záró összértéke és átlaga

38 Programkód Private Sub Osszegatlag_Click() mettol = CDate(Tol.Text)
meddig = CDate(Ig.Text) db = 0 ossz = 0 For i = 2 To sorok If Cells(i, 2) >= mettol And Cells(i, 2) <= meddig And Akcio > 0 Then szam = Val(Cells(i, Akcio)) mennyiseg = Val(Cells(i, 6)) ossz = ossz + szam * mennyiseg db = db + 1 End If Next If db = 0 Then atl = 0 If db >= 1 Then atl = ossz / db MsgBox "Az adott időintervallumban az értékpapírok" & vbCrLf & "összege: " &FormatCurrency(ossz, 0) &" átlaga: " & FormatCurrency(atl, 0), vbOKOnly, "Összeg és átlag" End Sub

39 További információk Megjelenő könyv Mintapéldák A rendezvény honlapja
Gazdasági feladatok Excel 2007-ben Mintapéldák A rendezvény honlapja

40 Somogyi Edit e.somogyi@chello.hu
Köszönöm a figyelmet! Somogyi Edit


Letölteni ppt "Makrók alkalmazása VBA felületen"

Hasonló előadás


Google Hirdetések