Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[vba] Kwota słownie do poprawki

16 Kwi 2012 20:22 2276 6
  • Poziom 8  
    Witam,
    mam mały problem, odnalazłem w sieci kod makra w vba zamieniającego liczbę na kwotę pisaną słownie , oto on:


    Kod: vb
    Zaloguj się, aby zobaczyć kod



    czy mógłby ktoś mi pomóc i w kluczowych momentach wpisać jakieś komentarze bo nie bardzo wiem co się z czym je:) a i czy można by było ograniczyć to makro by wykonywało się tylko do 999 milionów?

    z góry dziękuję za pomoc
    pozdrwiam
  • Poziom 28  
    Cytat:
    czy można by było ograniczyć to makro by wykonywało się tylko do 999 milionów?

    Nie wiem jak autor funkcji zapatruje się na poprawki w jego kodzie.
    Najprościej, bez zbędnej ingerencji w kod ograniczyć zakres przez instrukcję warunkową na początku.
    Kod: vb
    Zaloguj się, aby zobaczyć kod
  • Poziom 8  
    nie chce go nigdzie dystrybuować bez obaw, chciałbym móc to zrozumieć:)
    ok, funkcja na początku będzie działać tylko wydaje mi się że fragmenty kodu typu:
    Kod: vb
    Zaloguj się, aby zobaczyć kod

    będą jakoś dziwnie wyglądać:) a nie bardzo wiem co pozmieniać żeby się nie rozjechało...
  • Poziom 28  
    A cóż Ci one przeszkadzają? Przecież, jeżeli kwota będzie mniejsza to miliardów w opisie nie zobaczysz. A w kodzie niech sobie będą.
  • Poziom 8  
    chciałbym czysty kod bez zbędnych śmieci, a pokusi się ktoś o jakieś komentarze?
  • Poziom 40  
    :) To wiesz co, zrób tak jak kolega walek33 radzi (dziwię się że nie było takiego ograniczenia dla głównego kodu bo jak ktoś wpisze jeszcze większą liczbę od bilionów to będzie bład) i dodatkowo wykasuj te "przyrostki".
    I nawet nie będziesz wiedział że to było do milionów itp. :)

    Z drugiej strony możesz tez dodać kolejne przyrostki (ponad bilion) a wtedy będzie też będzie dobrze działało. (oczywiście wtedy bez ograniczenia proponowanego przez kolegę walka33)



    A w celu tłumaczenia:
    Do ilu ma być ta funkcja wynika właśnie z tych zapisów w "Case"

    A to z kolei wynika z pętli i warunku dotyczącego ilości jej "obrotów" (czyli właściwie ilu cyfrowa jest liczba - w której "grupie" wielkości się znajduje)
    Code:
    For i = 1 To (Len(Liczba) + 2) \ 3
    
    ...
    Next i

    czyli wystarczy dodać lub ująć zapisy w case i "Nie będzie zbędnego kodu"

    Jak czegoś jeszcze nie rozumiesz / lub nie wiesz co robi dana linia kodu pisz. Jak znajdzie sie czas to się napisze. :)
  • Poziom 8  
    Wszystko mi działa:)
    dzięki wszystkim,
    mam następujący problem, mój kolega chciał by mu pomóc zrobic podobny program, napotkaliśmy jednak kłopoty w postaci nie wypisywanej kwoty tysięcy i milionów, proszę o pomoc

    oto kod:
    Kod: vb
    Zaloguj się, aby zobaczyć kod