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 🙂
Najnowsze komentarze