andzi
3/16/2017 - 11:03 PM

Excel funkcijos "Suma žodžiais" įrašymas

Excel funkcijos "Suma žodžiais" įrašymas

<html><HEAD>

<link type="text/css" rel="stylesheet" href="/static/css/banner-styles.css"/>

<TITLE>Verslas-Banga</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=windows-1257">
<!-- Software, design (C) UAB Metasite (www.metasite.net) -->

<base href="/web/20071025011434/http://verslas.banga.lt/"> 
<LINK REL="stylesheet" TYPE="text/css" HREF="stuff/style.css" TITLE="web">
</head>
<BODY bgcolor="#FFFFFF">

<table width=600>
<tr><td><font size="-1"><b>Atspausdinta iš Bangos - <u>http://verslas.banga.lt/</u></b></font><p><!-- <hr width="100%" size=1 noshade><br> --></td></tr>
<tr><td>
	
<table border="0" cellspacing="0" cellpadding="1" width="462">
<tr>
<td bgcolor="#C0C0C0">
<table border="0" cellspacing="3" cellpadding="0" width="460" bgcolor="#f0f0f0">
<tr bgcolor="#f0f0f0"><td rowspan=2><img src="i/n.gif" width=6></td>
<td class=blue8b>
<div>Apskaitos ir mokesčių apžvalga / 2003/03 &raquo;</div>
<div class="blue14b">Programa "Excel" į pagalbą buhalteriui (3)</div>
</td>
<td rowspan=2 valign=top align=right></td>
<td rowspan=2><img src="i/n.gif" width=6></td>
</tr>
<tr><td align=left>Vytautas Kakanauskas</td><td align=right></td></tr></table>
</td>
</tr>
</table>
<br><table border="0" cellspacing="3" cellpadding="0" width="460" bgcolor="#FFFFFF">
<tr bgcolor=#ffffff><td><img src="i/n.gif" width=6></td>
<td valign=top>

<div style="margin-bottom: 4px;" class=blue7>

<a href="/web/20071025011434/http://www.paciolis.lt/?cid=10444" class="admlink" target="_blank">Apskaitos ir mokesčių apžvalga</a>
<br><br><br>
</div>
<div class=tekstas ><span class=subtitle>Kasos operacijų apskaitos dokumentų išrašymo automatizavimas</span><BR>
<BR>
Ar nepasigendate programoje "Excel" funkcijos, kuri skaičiais įrašytą sumą paverstų suma žodžiais? Juk kai kurių buhalterinių dokumentų išrašymo taisyklės reikalauja, kad sumos juose būtų nurodomos ne tik skaičiais, bet ir žodžiais. Tai ypač aktualu išrašant kasos ir banko operacijas patvirtinančius pirminius dokumentus. Šiame ciklo "Programa "Excel" – į pagalbą buhalteriui" straipsnyje aptarsime, kaip lengviau ir greičiau išrašyti kasos dokumentus ir automatizuoti jų apskaitą, detaliau išnagrinėsime kasos pajamų ir išlaidų orderių išrašymo ypatumus, išrašytų dokumentų rejestrų sudarymą.<BR>
<BR>
Pradėkime nuo to, kad reikėtų praplėsti programos Excel galimybes – papildyti funkcija, kuri sumą, užrašytą skaičiais, paverstų suma žodžiais. Programą turime patobulinti taip, kad naujoji funkcija veiktų ne tik aptariamose šiame straipsnyje buhalterinių dokumentų formose, bet ir atliekant kitus darbus. Taigi kaip ir ankstesniame šio ciklo straipsnyje jums laikinai teks tapti programuotojais ir sukurti papildomą "Excel" programinį modulį.<BR>
<BR>
<span class=subtitle>Funkcijos "Suma žodžiais" įrašymas</span><BR>
<BR>
Išsikvieskite programą Excel. Duokite jai komandą Alt+F11 – atsivers programavimo kalbos Visual Basic programuotojo langas. Langelyje Project–VBA Project bakstelėkite dešiniuoju pelės klavišu. Atsivėrusiame meniu pasirinkite eilutę Insert. Atsivėrusiame kitame meniu langelyje pasirinkite eilutę Module. Atlikus šiuos veiksmus, atsivers langelis, skirtas funkcijų tekstams rinkti.<BR>
<BR>
Surinkite funkcijos SumLT veikimą aprašantį tekstą, kuris prasideda sakiniu Function SumLT( ...) As String ir baigiasi sakiniu End Function. Surinkę šios funkcijos tekstą tame pačiame langelyje surinkite ir kitos funkcijos, kuri prasideda sakiniu Private Function TrysSkaitmenys(strNum3 As String) As String ir baigiasi sakiniu End Function, tekstą. Antroji funkcija yra pagalbinė ir gali būti iškviečiama tik iš to modulio, kuriame ji yra aprašyta. Funkcijų tekstai:<BR>
<BR>
Function SumLT(NumberArg As Double, Optional intCase As Integer = 0) As String<BR>
<BR>
'*----------------------------<BR>
'   Funkcijos pirmasis argumentas – suma, užrašyta skaičiais<BR>
'   Funkcijos antrasis (nebūtinas) argumentas – požymis, <BR>
'   nusakantis, kokiomis raidėmis bus gauta funkcijos reikšmė:<BR>
'   	0 (arba praleistas) –	pirmoji sakinio raidė didžioji,  o kitos mažosios;<BR>
'	1			visas sakinys – didžiosios raidės;<BR>
'	2			visas sakinys – mažosios raidės.<BR>
'  Funkcijos reikšmė – suma žodžiais.<BR>
'*----------------------------<BR>
<BR>
Dim strSuma As String<BR>
Dim strMillions As String<BR>
Dim strThousands As String<BR>
Dim strHundreds As String<BR>
Dim m1 As String<BR>
Dim m2 As String<BR>
Dim t1 As String<BR>
Dim t2 As String<BR>
Dim r1 As String<BR>
Dim r2 As String<BR>
Dim v As String<BR>
Dim d As String<BR>
Dim strRez As String<BR>
<BR>
strSuma = Format(NumberArg, "000,000,000.00")<BR>
strMillions = Mid(strSuma, 1, 3)<BR>
strThousands = Mid(strSuma, 5, 3)<BR>
strHundreds = Mid(strSuma, 9, 3)<BR>
If NumberArg < 1 Then<BR>
strRez = "NULIS LITŲ "<BR>
GoTo pabaiga<BR>
End If<BR>
<BR>
If strMillions <> "000" Then<BR>
m1 = TrysSkaitmenys(strMillions)<BR>
d = Mid(strMillions, 2, 1)<BR>
v = Right(strMillions, 1)<BR>
Select Case d<BR>
Case "1"<BR>
m2 = "MILIJONŲ "<BR>
Case Else<BR>
Select Case v<BR>
Case "0"<BR>
m2 = "MILIJONŲ "<BR>
Case "1"<BR>
m2 = "MILIJONAS "<BR>
Case Else<BR>
m2 = "MILIJONAI "<BR>
End Select<BR>
End Select<BR>
End If<BR>
If strThousands <> "000" Then<BR>
t1 = TrysSkaitmenys(strThousands)<BR>
d = Mid(strThousands, 2, 1)<BR>
v = Right(strThousands, 1)<BR>
Select Case d<BR>
Case "1"<BR>
t2 = "TŪKSTANČIŲ "<BR>
Case Else<BR>
Select Case v<BR>
Case "0"<BR>
t2 = "TŪKSTANČIŲ "<BR>
Case "1"<BR>
t2 = "TŪKSTANTIS "<BR>
Case Else<BR>
t2 = "TŪKSTANČIAI "<BR>
End Select<BR>
<BR>
End Select<BR>
End If<BR>
<BR>
r1 = TrysSkaitmenys(strHundreds)<BR>
d = Mid(strHundreds, 2, 1)<BR>
v = Right(strHundreds, 1)<BR>
Select Case d<BR>
Case "1"<BR>
r2 = "LITŲ "<BR>
Case Else<BR>
Select Case v<BR>
Case "0"<BR>
r2 = "LITŲ "<BR>
Case "1"<BR>
r2 = "LITAS "<BR>
Case Else<BR>
r2 = "LITAI "<BR>
End Select<BR>
End Select<BR>
<BR>
strRez = m1 + m2 + t1 + t2 + r1 + r2 + " "<BR>
<BR>
pabaiga:<BR>
<BR>
Select Case intCase<BR>
Case 0<BR>
SumLT = UCase(Left(strRez, 1)) + LCase(Mid(strRez, 2)) + Right(strSuma, 2) + " ct"<BR>
Case 1<BR>
SumLT = UCase(strRez + Right(strSuma, 2) + " ct")<BR>
Case 2<BR>
SumLT = LCase(strRez + Right(strSuma, 2) + " ct")<BR>
End Select<BR>
<BR>
End Function<BR>
<BR>
Private Function TrysSkaitmenys(strNum3 As String) As String<BR>
<BR>
Dim s1 As String * 1    'šimtai<BR>
Dim d1 As String * 1    'dešimtys<BR>
Dim d2 As String * 2    'dešimtys ir vienetai<BR>
Dim v1 As String * 1    'vienetai<BR>
Dim s3 As String<BR>
Dim d3 As String<BR>
Dim v3 As String<BR>
<BR>
s1 = Left(strNum3, 1)<BR>
d1 = Mid(strNum3, 2, 1)<BR>
d2 = Mid(strNum3, 2, 2)<BR>
v1 = Right(strNum3, 1)<BR>
<BR>
Select Case s1<BR>
Case "1"<BR>
s3 = "VIENAS ŠIMTAS "<BR>
Case "2"<BR>
s3 = "DU ŠIMTAI "<BR>
Case "3"<BR>
s3 = "TRYS ŠIMTAI "<BR>
Case "4"<BR>
s3 = "KETURI ŠIMTAI "<BR>
Case "5"<BR>
s3 = "PENKI ŠIMTAI "<BR>
Case "6"<BR>
s3 = "ŠEŠI ŠIMTAI "<BR>
Case "7"<BR>
s3 = "SEPTYNI ŠIMTAI "<BR>
Case "8"<BR>
s3 = "AŠTUONI ŠIMTAI "<BR>
Case "9"<BR>
s3 = "DEVYNI ŠIMTAI "<BR>
End Select <BR>
Select Case d1<BR>
<BR>
Case "1"<BR>
Select Case d2<BR>
Case "10"<BR>
d3 = "DEšIMT "<BR>
Case "11"<BR>
d3 = "VIENUOLIKA "<BR>
Case "12"<BR>
d3 = "DVYLIKA "<BR>
Case "13"<BR>
d3 = "TRYLIKA "<BR>
Case "14"<BR>
d3 = "KETURIOLIKA "<BR>
Case "15"<BR>
d3 = "PENKIOLIKA "<BR>
Case "16"<BR>
d3 = "ŠEŠIOLIKA "<BR>
Case "17"<BR>
d3 = "SEPTYNIOLIKA "<BR>
Case "18"<BR>
d3 = "AŠTUONIOLIKA "<BR>
Case "19"<BR>
d3 = "DEVYNIOLIKA "<BR>
End Select<BR>
Case "2"<BR>
d3 = "DVIDEŠIMT "<BR>
Case "3"<BR>
d3 = "TRISDEŠIMT "<BR>
Case "4"<BR>
d3 = "KETURIASDEŠIMT "<BR>
Case "5"<BR>
d3 = "PENKIASDEŠIMT "<BR>
Case "6"<BR>
d3 = "ŠEŠIASDEŠIMT "<BR>
Case "7"<BR>
d3 = "SEPTYNIASDEŠIMT "<BR>
Case "8"<BR>
d3 = "AŠTUONIASDEŠIMT "<BR>
Case "9"<BR>
d3 = "DEVYNIASDEŠIMT "<BR>
End Select<BR>
If d1 <> "1" Then<BR>
Select Case v1<BR>
Case "1"<BR>
v3 = "VIENAS "<BR>
Case "2"<BR>
v3 = "DU "<BR>
Case "3"<BR>
v3 = "TRYS "<BR>
Case "4"<BR>
v3 = "KETURI "<BR>
Case "5"<BR>
v3 = "PENKI "<BR>
Case "6"<BR>
v3 = "ŠEŠI "<BR>
Case "7"<BR>
v3 = "SEPTYNI "<BR>
Case "8"<BR>
v3 = "AŠTUONI "<BR>
Case "9"<BR>
v3 = "DEVYNI "<BR>
End Select<BR>
End If<BR>
TrysSkaitmenys = s3 + d3 + v3<BR>
End Function<BR>
<BR>Surinkę abiejų funkcijų tekstus patikrinkite, ar nepadarėte klaidų: duokite komandą Alt+F11, ir programa atvers darbinį puslapį. Į langelį B1 įrašykite formulę =SumLt(A1). Jei funkcija surinkta teisingai, langelyje B1 pasirodys užrašas "Nulis litų 00 ct". Rašydami į langelį A1 įvairius skaičius įsitikinkite, kad suma žodžiais išvedama teisingai. Jei funkcija dirba teisingai, ją reikia išsaugoti kaip papildomą programinį modulį, kuris veiks visose kuriamose naujose arba ir anksčiau sukurtose lentelėse, kuriose bus padaryti atitinkami pakeitimai – įvestos atitinkamos formulės.<BR>
<BR>
Norint išsaugoti surinktas formules kaip papildomus programos modulius (Add-ins) turint ekrane atvertą darbinės lentelės langą komanda File | Properties (savybės) reikia atidaryti dialogo langą.<BR>
<BR>
<img src="i/leidinys/content/3edde8495be1b_dialogas.jpg"><BR>
<BR>
Pasirinkite kortelę Summary (santrauka). Į laukelį Title (pavadinimas) įveskite trumpą papildomo programinio modulio pavadinimą, tarkim, "Funkcija SumLT", o į laukelį Comments (komentarai) – glaustą programinio modulio aprašymą, tarkim, "Šiame programiniame modulyje įrašyta funkcija, kuri argumento reikšmę (sumą skaičiais) grąžina suma žodžiais". Tokie modulio aprašymai reikalingi tam, kad praėjus kuriam laikui jums būtų aišku, kokius programinius modulius reikia prijungti prie standartinių Excel galimybių.<BR>
<BR>
Duokite programai Excel komandą File | Save as (išsaugoti kaip) arba trumpai F12. Atsivėrusio lango Save as laukelyje File name: surinkite išsaugomo programinio failo pavadinimą – SumLT, o laukelyje Save as type: (išsaugomo failo tipas) pasirinkite tipą Microsoft Excel Add-In (*.xla).<BR>
<BR>
Kai tik pasirinksite tokį tipą, programa iš karto pakeis išsaugomo failo vietą standžiajame kompiuterio diske. Ji siūlys papildomą programinį modulį išsaugoti standartinėje vietoje – segtuve AddIns. Sutikime su šiuo programos pasiūlymu spausdami ekrano mygtuką Save. Dabar turime sukurtą naują papildomą Excel programinį modulį, įrašytą tarp kitų, tačiau jis dar nėra prijungtas prie standartinės Excel programos.<BR>
<BR>
Kad sukurtas naujas programinis modulis patektų į galimų prijungti modulių sąrašą, uždarykite programos Excel langą ir vėl ją išsikvieskite.<BR>
<BR>
Norint prijungti papildomus modulius prie standartinės Excel programos, reikia duoti jai komandą Tools (įrankiai) | Add-Ins... . Atsivėrusiame lange yra visas galimų papildomų programinių modulių sąrašas.<BR>
<BR>
<img src="i/leidinys/content/3edde8495be1b_modulis.jpg"><BR>
<BR>
Kaip matome, be standartinių papildomų modulių, kurie įdiegiami kartu su pagrindine programos dalimi, yra ir ką tik mūsų sukurtas naujasis modulis – Funkcija SumLT. Pažymėkite ją varnele ir spauskite mygtuką OK. Dabar visuomet, kai tik kviesite programą Excel, darbui ji prijungs ir funkciją SumLT – ją galėsite naudoti rašydami funkcijas savo lentelėse. Jei dėl tam tikrų priežasčių šią funkciją iš programos Excel norėsite panaikinti, išsikvieskite, kaip nurodyta anksčiau, langą Add–Ins ir nuimkite varnelę nuo nereikalingų papildomų funkcijų.<BR>
<BR>
<span class=subtitle>Kasos operacijų apskaita</span><BR>
<BR>
Visus kasos operacijų apskaitos išrašytų dokumentų failus saugosime segtuve "Kasos operacijos". Šį segtuvą dar padalykime į segtuvus "Kasos išlaidų orderiai" ir "Kasos pajamų  orderiai" – juose atskirai bus saugomos išrašytų kasos pajamų ir išlaidų orderių kopijos. Mūsų tikslas yra taip organizuoti kasos dokumentų išrašymą, kad tai užimtų kuo mažiau laiko, liktų visų išrašytų dokumentų elektroninės kopijos (failai) ir būtų automatiškai sudaromi išrašytų dokumentų rejestrai, kuriuos vėliau galima būtų panaudoti kasos knygai surašyti.<BR>
<BR>
<span class=subtitle>Kasos išlaidų orderio ruošinio (šablono) rengimas</span><BR>
<BR>
Greitai išrašyti dokumentą galima tik tuomet, kai naudojamas gerai parengtas jo ruošinys (šablonas). Kaip reikėtų parengti dokumento šabloną? Visų pirma reikia maksimaliai užpildyti tuos dokumento laukus, kurie jūsų įmonėje nesikeičia  (kasos išlaidų orderyje tai yra įmonės pavadinimas ir kodas).<BR>
<BR>
Antra, reikia užrakinti tuos dokumentų laukus, kurie nesikeičia ir turi būti apsaugoti,  kad nebūtų netyčia sugadinti. Programoje Excel langeliai, kuriuose įrašyti tokie duomenys, turi būti rakinami (lock) ir įjungiama lapo apsauga. Kai renkami duomenys į taip apsaugotą dokumento ruošinį, paspaudus klavišą Tab programa parenka tik neapsaugotus dokumento laukus (langelius).<BR>
<BR>
Trečia, kur tik galima, duomenis reikia pasirinkti iš paruoštų sąrašų (kasos išlaidų orderyje tai yra įmonės darbuotojų sąrašas, iš kurio galima pasirinkti pildant laukelį "Išduota"). Ketvirta, reikia automatiškai užpildyti tuos dokumento laukus, kurių reikšmė priklauso nuo anksčiau įvestos informacijos (kasos išlaidų orderyje tai yra laukas "suma žodžiu", kurią galima apskaičiuoti naudojant anksčiau šiame straipsnyje aprašytą funkciją).<BR>
<BR>
Pirmiausia naujoje darbinėje knygoje palikime tik du lapus ir pavadinkime juos "Kasos išlaidų orderis" ir "Gavėjų sąrašas". Kaip tai daroma,  aprašyta pirmame ciklo "Programa "Excel" – į pagalbą buhalteriui" straipsnyje.<BR>
<BR>
<hr noshade size="1" color="#c0c0c0"><BR>
Patarimas<BR>
<BR>
Sukurtą naująją darbinę knygą išsaugokite standžiajame kompiuterio diske:<BR>
<BR> 
Ctrl+S.<BR>
<BR>
Dirbdami periodiškai duokite programai komandą Ctrl+S – taip neprarasite padaryto darbo ir nesugaišite laiko.
<BR>
<hr noshade size="1" color="#c0c0c0"><BR>
<BR>
Lape "Kasos išlaidų orderis" nubraižykite žemiau pateiktą dokumento formą:<BR>
<BR>
<img src="i/leidinys/content/3edde8495be1b_orderis.jpg"><BR>
Braižydami stenkitės išlaikyti paveikslėlyje nurodytas pozicijas (stulpelius ir eilutes), nes tolesnis aiškinimas bus susietas su jomis. Paveikslėlyje tamsiau pavaizduotus langelius reikėtų užrakinti. Langelį B2, kuriame turite įrašyti įmonės pavadinimą ir kodą, taip pat užrakinkite. Kaip tai daroma, aprašyta minėtame straipsnyje. Galbūt pastebėjote, kad daugelis neapsaugotų rengiamo dokumento laukų užima kelis gretimų stulpelių langelius. Dokumento data užima langelius E6–I6, pinigus gavusio asmens vardas ir pavardė rašoma į langelis C12–N12 ir kt. Tokius langelius reikėtų sujungti.<BR>
<BR>
<hr noshade size="1" color="#c0c0c0">
<BR>
Patarimas<BR>
<BR>
Gretimų lentelės langelių sujungimas į vieną (pirmą kartą):<BR>
<BR>
<ul>
<li>pažymėti visus jungiamus langelius; 
<li>Ctrl+1 (vienetas skaitmeninėje klaviatūros dalyje), A, Alt+M, Enter.</ul> 
Gretimų lentelės langelių sujungimas į vieną (kiekvieną kitą kartą):<BR>
<BR>
<ul> 
<li>pažymėti visus jungiamus langelius; 
<li>F4.</ul>
<hr noshade size="1" color="#c0c0c0">
<BR>
Langelyje C12, kuriame turi būti įrašoma pinigus gaunančio žmogaus vardas ir pavardė, sukurkime galimybę pildant dokumentą pasirinkti iš galimų gavėjų sąrašo. Tam darbinės knygos lape "Gavėjų sąrašas" į langelius A1–An įrašykite visų galimų gavėjų vardus ir pavardes, pažymėkite tuos langelius ir duokite programai komandą Ctrl+F3. Atsivėrusio lango<BR>
<BR>
<img src="i/leidinys/content/3edde8495be1b_gavejai.jpg"><BR>
<BR>
laukelyje Names in workbook: (vardai darbinėje knygoje) surinkite pasirinktų langelių pavadinimą ("gavėjai") ir spauskite klavišą Enter.<BR>
<BR>
Grįžkime į darbinės knygos lapą "Kasos išlaidų orderis" ir pažymėkime laukelį, kuriame turi būti įvedama gavėjo vardas ir pavardė. Duokime programai komandą Data | Validation... (duomenys | patvirtinimas). Atsivėrusio dialogo lango<BR>
<BR>
<img src="i/leidinys/content/3edde8495be1b_data.jpg"><BR>
<BR>
laukelyje Allow: (leisti) pasirinkite List (sąrašas), o laukelyje Source: (šaltinis) įrašykite formulę =Gavėjai, laukelyje Ignore blank nuimkite varnelę – tai reiškia, kad laukelis negali būti tuščias. Dabar pasirinkus langelį C12 dešinėje jo pusėje atsiras strėlytė, kurią bakstelėjus atsivers gavėjų sąrašas, iš kurio pasirenkamas reikiamas gavėjas.<BR>
<BR>
Į langelį B16 (laukas "suma žodžiais") įrašykime formulę  =SumLT(H11+J11/100), ji išves sumą surinktą langeliuose H11(litai) ir J11(centai) žodžiais.<BR>
<BR>
Baigtą rengti šio dokumento formą išsaugokime kaip ruošinį (šabloną), kad visuomet greitai galėtume juo pasinaudoti, kai reikės išrašyti naują kasos išlaidų orderį.<BR>
<BR>
Duokime programai Excel komandą File | Save as (išsaugoti kaip) arba trumpai F12. Atsivėrusio lango Save as laukelyje File name: surinkite išsaugomo dokumento ruošinio  pavadinimą – Kasos islaidu orderis, o laukelyje Save as type: (išsaugomo failo tipas) pasirinkite tipą Template (*.xlt)– ruošinys (šablonas). Kai tik pasirinksite tokį tipą, programa iš karto pakeis išsaugomo failo vietą standžiajame kompiuterio diske. Ji siūlys formą išsaugoti standartinėje vietoje – segtuve Templates. Sutikime su šiuo programos pasiūlymu spausdami ekraninį mygtuką Save. Dabar norint išrašyti naują kasos išlaidų orderį programai reikia duoti komandą File | New (naujas). Atsivėrusiame lange reikia pasirinkti reikiamą ruošinį.<BR>
<BR></div>

</td>
<td><img src="i/n.gif" width=6></td>
</tr>
</table>

</td></tr></table>
</body>
</html>

<!--
     FILE ARCHIVED ON 1:14:34 Oct 25, 2007 AND RETRIEVED FROM THE
     INTERNET ARCHIVE ON 22:56:32 Mar 16, 2017.
     JAVASCRIPT APPENDED BY WAYBACK MACHINE, COPYRIGHT INTERNET ARCHIVE.

     ALL OTHER CONTENT MAY ALSO BE PROTECTED BY COPYRIGHT (17 U.S.C.
     SECTION 108(a)(3)).
-->
http://web.archive.org/web/20071025011434/http://verslas.banga.lt/lt/leidinys.printer/3edde8495be1b