Andrzej Rapp

Andrzej Rapp specjalista ds.
informatyki, Techem

Temat: Problem z zaokrągleniem sumy

Witam!
Mam problem z zaokrągleniem sumy wartości.
Zmienna SumaNetto nie zaokrągla mi liczby do 2 miejsc po przecinku

Private Sub Sumowanie()

Dim MPK As String

Dim SumaNetto As Long

Row = 11

stop_pozycja = False

SumaNetto = 0

While Not IsEmpty(Cells(Row, 1)) And Not (stop_pozycja)

MPK = Cells(Row, 4)

k_netto = Round(Cells(Row, 11), 2)

pod_vat = Round((k_netto * 23) / 100, 2)

Do While Not IsEmpty(Cells(Row, 3))

If Cells(Row, 3) <> Cells(Row + 1, 3) Then

stop_pozycja = True

SumaNetto = Round(SumaNetto, 2) + k_netto

MsgBox "suma netto to: " & SumaNetto
Exit Do
Else
Row = Row + 1

End If
Loop

Row = Row + 1
stop_pozycja = False
Wend

End Sub

Prosze o pomoc.
Mateusz M.

Mateusz M. Mateusz M.

Temat: Problem z zaokrągleniem sumy

spróbuj może z opcją format currency
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Problem z zaokrągleniem sumy

Po pierwsze nie masz deklaracji zmiennych (niektóre przypisywane są domyślnie a to nie dobrze), a te które zrobiłeś np SumaNetto jest źle. Long to liczby całkowite.

p.s.
Aby nie zapomnieć stosowania deklaracji możesz pisać nad wierszami kodu polecenie:
Option ExplicitTen post został edytowany przez Autora dnia 23.03.18 o godzinie 12:59
Andrzej Rapp

Andrzej Rapp specjalista ds.
informatyki, Techem

Temat: Problem z zaokrągleniem sumy

Zdefiniowałem zmienne k_netto, pod_Vat, SumaNetto jako integer ale nadal jest problem z sumowaniem .
Jeżeli dodam argument NumberFormat :
Cells(Row,11). NumberFormat = "#,##0.00 $"
k_netto=Cells(Row,11)

To nadal SumaNetto jest bez zaokrąglenia
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: Problem z zaokrągleniem sumy

Integer też nie jest dobrym typem dla dziesiętnych :)
Zastosuj Double
Andrzej Rapp

Andrzej Rapp specjalista ds.
informatyki, Techem

Temat: Problem z zaokrągleniem sumy

Tak rzeczywiście zmiana typu na double zadziałała . Dzięki za pomoc

Następna dyskusja:

problem




Wyślij zaproszenie do