Zachodniopomorski uniwersytet technologiczny instytut technologii mechanicznej



Pobieranie 366.54 Kb.
Strona3/9
Data28.04.2016
Rozmiar366.54 Kb.
1   2   3   4   5   6   7   8   9

Ćwiczenie 2


Zagadnienia:

Zadanie przykładowe – wyznaczenie grupy podatkowej i podatku dochodowego na podstawie dochodu - plik Dochód.xls.


Sposób obliczenia podatku jest podany w tabeli na załączonym rysunku.

Poniżej podane jest rozwiązanie tego zadania w różnych wariantach. Należy wypisać w edytorze VBA (w nowym module!) funkcje wypisane poniżej a następnie użyć je w formułach w arkuszu kalkulacyjnym.
Function grupa(dochód As Currency) As Integer

'

'Wyznaczenie grupy podatkowej na podstawie dochodu



'(wersja z trzema instrukcjami If)

'

If dochód < 37024 Then grupa = 1



If (dochód >= 37024) And (dochód < 74048) Then grupa = 2

If dochód >= 74048 Then grupa = 3

End Function

Function grupa1(dochód As Variant) As Integer

'

'Wyznaczenie grupy podatkowej na podstawie dochodu



'(wersja z jedną instrukcją If)

'

If dochód < 37048 Then

grupa1 = 1

ElseIf dochód < 74048 Then

grupa1 = 2



Else

grupa1 = 3



End If

End Function

Function podatek(dochód As Currency) As Currency

'

'Wyznaczenie podatku dochodowego na podstawie dochodu



'(wersja z instrukcją If)

'

If dochód < 37048 Then

podatek = 0.19 * dochód - 530.08

ElseIf dochód < 74048 Then

podatek = 0.3 * (dochód - 37024) + 6504.48



Else

podatek = 0.4 * (dochód - 74048) + 17611.68



End If

End Function


Function podatek1(dochód As Currency) As Currency

'

'Wyznaczenie podatku dochodowego na podstawie dochodu



'(wersja z instrukcją Select Case)

'

Select Case dochód



Case Is < 37048

podatek1 = 0.19 * dochód - 530.08



Case Is < 74048

podatek1 = 0.3 * (dochód - 37024) + 6504.48



Else

podatek1 = 0.4 * (dochód - 74048) + 17611.68



End Select

End Function

5.Zadanie - Plik WYSLUGA



Pracownicy otrzymują dodatkowe wynagrodzenie z tytułu przepracowanych lat tzw. wysługę . W zakresie od 5 do 20 lat jest ona równa w procentach liczbie pełnych przepracowanych lat. Na przykład pracownik, który przepracował 7 lat otrzymuje dodatkowo 7% pensji zasadniczej. Pracownicy, którzy przepracowali mniej niż 5 pełnych lat nie otrzymują wysługi, a pracownicy, którzy przepracowali 20 i więcej pełnych lat otrzymują tylko 20% wysługi.


Polecenia do wykonania.


  1. W edytorze VB, w nowym module napisz funkcję VBA o nagłówku:

Function lata_pracy(data As Date) As Integer

zwracającą wartość ilości przepracowanych lat obliczanych na podstawie różnicy lat pomiędzy rokiem bieżącym a rokiem, w którym pracownik został zatrudniony. Wykorzystaj funkcję Visual Basica Year(….). W arkuszu kalkulacyjnym użyj tej funkcji w odpowiedniej formule umieszczonej w kolumnie o nagłówku lata pracy.



Uwaga: Sposób liczenia przepracowanych lat pracy zaproponowany powyżej jest niedokładny. Gdyby na przykład pracownik został zatrudniony w ostatnim dniu ubiegłego roku, to odejmując lata dostajemy 1, natomiast w rzeczywistości nie przepracował on do dnia dzisiejszego pełnego roku.


  1. Napisz funkcję VBA o podobnym nagłówku lecz nazwie lata_pracy1, która zwraca wartość ilości faktycznie przepracowanych lat obliczanych za pomocą funkcji WorksheetFunction.YearFrac. Zapoznaj się w pomocy Visual Basic z opisem tej funkcji. Użyj funkcji Int do zaokrąglenia do części całkowitej wartości zwracanej przez funkcję YearFrac. W arkuszu kalkulacyjnym w kolumnie o nagłówku lata pracy zamień wywołanie funkcji lata_pracy na lata_pracy1.




  1. Napisz funkcję VBA o nagłówku:

Function Wysługa(lata As Integer, pensja As Currency) As Currency

której wynikiem jest wartość wysługi lat obliczonej wg formuły z treści zadania. W tym celu wykorzystaj składnię instrukcji If zastosowaną w przykładowej funkcji Podatek. Zastosuj funkcję Wysługa w formule umieszczonej w kolumnie o nagłówku wysługa. Jako jeden argumentów przyjmij wartości znajdujące się w kolumnie lata pracy.



  1. Napisz funkcję VBA o nagłówku:

Function Wysługa1(data As Date, pensja As Currency) As Currency

wyznaczającą podobnie jak poprzednia wysługę lat. Wywołaj funkcję lata_pracy1 wewnątrz tej funkcji, w celu wyznaczenia lat pracy na podstawie argumentu data. Ponadto zastosuj zamiast instrukcji If instrukcję Select Case wzorując się na przykładzie funkcji podatek1.Wywołaj tę funkcję w arkuszu w nowej kolumnie o nagłówku wysługa1.


Ćwiczenie 3


Zagadnienia:

  • Operacje na łańcuchach – operator „&”

  • Funkcje VB operujące na łańcuchach: Len, Left, Right, Mid, InStr, Repalce.


Przykładowe funkcje.
Pierwszą z wypisanych poniżej funkcji można przetestować w pliku WYSLUGA, natomiast dwie następne funkcje w pliku LISTA Z DZIEKANATU.


  1. Funkcja Inicjały zwraca inicjały na podstawie imienia i nazwiska:


Function Inicjały(imię As String, nazwisko As String) As String

'

' Wyznacza inicjały z imienia i nazwiska

'

Inicjały = Left(imię, 1) & Left(nazwisko, 1)

End Function


  1. Funkcje PozycjaSpacji_1 I PozycjaSpacji_2 ustalają pozycje odpowiednio 1 i 2 spacji w tekście określonym przez argument napis.


Function PozycjaSpacji_1(napis As String) As Long

'

' Oblicza pozycję w tekście pierwszej spacji



'

PozycjaSpacji_1 = InStr(napis, " ")



End Function

Function PozycjaSpacji_2(napis As String) As Long

'

' Oblicza pozycję w tekście drugiej spacji



'

Dim od As Integer

od = PozycjaSpacji_1(napis)

PozycjaSpacji_2 = InStr(od + 1, napis, " ")

End Function

1   2   3   4   5   6   7   8   9


©absta.pl 2016
wyślij wiadomość

    Strona główna