Prowadząc firmę często spotykam się z problemem zamiany kwoty brutto na netto. Również od Was padło kilka propozycji napisania takiej funkcji, a więc do dzieła!

W pierwszej kolejności musimy znaleźć wzór wyliczania takiej kwoty. Jest to dość proste: kwota brutto, to 123% (dla stawki 23%) kwoty netto. Zatem wystarczy podzielić kwotę przez 123 i pomnożyć razy 100.

Netto = (Brutto/123) * 100

Co w przypadku, gdy stawka VAT jest inna? Wystarczy kwotę Brutto podzielić przez 100 + stawkę VAT. Zatem tworząc funkcję będziemy potrzebowali dwóch wartości od użytkownika: kwoty i stawki VAT, a nasza funkcja zwróci wyliczoną kwotę jako double (liczba zmiennoprzecinkowa):

Function BruttoNaNetto(kwota, procent) As Double

End Function

Teraz wystarczy przepisać nasz wzór na kod VBA:

procent = procent + 100
kwota = kwota / procent
kwota = kwota * 100

W taki prosty sposób wyliczamy kwotę netto. Teraz umieśćmy nasz kod w funkcji:

Function BruttoNaNetto(kwota, procent) As Double
    procent = procent + 100
    kwota = kwota / procent
    kwota = kwota * 100
    BruttoNaNetto = kwota
End Function

Pozostaje jeszcze jeden problem. Gdy wyliczymy kwotę netto dla 200zł otrzymamy 162,601626zł. Niestety nie jest to poprawna kwota, dlatego należy zaokrąglić ją do dwóch miejsc po przecinku. W tym celu skorzystamy z funkcji Round, która zgodnie z zasadami matematyki (od 5 zaokrągla w gorę) poda nam kwotę w złotówkach:

kwota = Round(kwota, 2)

Na koniec cała funkcja:

Function BruttoNaNetto(kwota, procent) As Double
    procent = procent + 100
    kwota = kwota / procent
    BruttoNaNetto = Round(kwota * 100, 2)
End Function

Teraz wystarczy wkleić ja do nowego modułu i możemy z niej korzystać do woli. Mnie się bardzo często przydaje 🙂

Dołącz do newslettera już dziś!
Zero spamu - tylko wartościowe treści!
Musisz już lecieć?
Zostaw swój adres e-mail i dołącz do BEZPŁATNYCH WEBINARÓW dotyczących SQLa!
  • „Jak uczyć się SQLa?” – 4 października
  • „SQL dla testerów” – 12 października