VBATools

Bankomat – Jak optymalnie wydać resztę?

by on Jan.20, 2012, under Excel, Porady

Jesteś ciekawy jak działa bankomat? Chciałbyś zbudować maszynkę do efektywnego wydawania reszty?

Oto prosty przykład przestawiający okno odpytujące o kwotę do wydania.

XL_Bankomat_1

a oto wynik:

XL_Bankomat_2

Przy zastosowaniu tablic można agregować nominały aby pokazywać ich sumę, jednakże pow forma przedstawia sposób kolejnego doboru bilonów. Możesz to wykorzystać i zbudować interfejs wyposażony w zdjęcia bilonów i monet, a dzięki wbudowaniu animacji przedstawić proces wydania, lub podłączyć procedurę do portu RS i przenieść proces wydania w rzeczywistość.

Sub ile_banknotow()
'wartość zostanie przeliczona na dane z tablicy i kolejno zaproponowane
'MVP OShon from VBATools.pl
Dim liczba As Currency, y&, do_wydania$, pyt
Dim tablica As Variant, skarbonka As Currency
tablica = Array(500, 200, 100, 50, 20, 10, 5, 2, 1, 0.5, 0.2, 0.1, 0.05, 0.02, 0.01)
pyt = InputBox("Wpisz wartość liczbową aby uzyskać " & _
 "informacje o banknotach składających się na tą wartość:", _
 "Bankomat VBATools.pl", "1234,56") 'przykładowa wartość zamiast Zera
If Len(pyt) = 0 Then Exit Sub
If IsNumeric(pyt) = False Then MsgBox "Wartość " & Chr(34) & pyt & Chr(34) & _
 " nie jest spodziewaną wartością pieniężną!", vbExclamation, _
 " VBATools.pl": Exit Sub
liczba = CCur(pyt)

On Error GoTo Blad
Do While skarbonka < liczba
nowy_banknot:
 If skarbonka + tablica((y)) > liczba Then
   y = y + 1
   GoTo nowy_banknot
 Else
   skarbonka = skarbonka + tablica((y))
   do_wydania = do_wydania & tablica((y)) & " +"
   If skarbonka = liczba Then Exit Do
 End If
Loop
Debug.Print skarbonka & " = " & do_wydania
MsgBox "Aby wydać wartość " & skarbonka & " należy wydać kolejno: " _
 & vbCr & Left$(do_wydania, Len(do_wydania) - 2), _
 vbInformation, "Bankomat VBATools.pl"
Exit Sub
Blad:
MsgBox "Podana wartość " & pyt & " nie jest postaci walutowej!", _
 vbExclamation, " VBATools.pl"
End Sub

Gotowy projekt z wizualizacją bilonów można znaleźć na tej stronie. Jeśli rozwiązanie ci się podoba namawiamy do zakupu czym zasilisz dalsze ciekawe projekty.

 

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.
:, , , ,

Leave a Reply