Excel Částka slovy - mezery
Dobrý den, chtěl bych požádat o radu ohledně kódu.
Function Slovy(Cis As Double) As String
Dim StrCis As String
Dim LenCis As Byte, Rad As Integer, Ofs As Byte
Dim Pol As Byte, pom As String, pom1 As String, pom2 As String
Dim Jedn As Variant, Des1 As Variant, Des As Variant, Sta As Variant
Dim JednTM As Variant, Tis As Variant, Mil As Variant
'
If IsEmpty(Cis) Then End
'
Jedn = Array("", "jedna", "dvě", "tři", "čtyři", _
"pět", "šest", "sedm", "osm", "devět")
Des1 = Array("deset", "jedenáct", "dvanáct", "třináct", "čtrnáct", _
"patnáct", "šestnáct", "sedmnáct", "osmnáct", "devatenáct")
Des = Array("", "", "dvacet", "třicet", "čtyřicet", "padesát", _
"šedesát", "sedmdesát", "osmdesát", "devadesát")
Sta = Array("", "jednosto", "dvěsta", "třista", "čtyřista", _
"pětset", "šestset", "sedmset", "osmset", "devětset")
Tis = Array("tisíc", "tisíc", "tisíce", "tisíce", "tisíce", _
"tisíc", "tisíc", "tisíc", "tisíc", "tisíc")
JednTM = Array("", "jeden", "dva", "tři", "čtyři", _
"pět", "šest", "sedm", "osm", "devět")
Mil = Array("milionů", "milion", "miliony", "miliony", "miliony", _
"milionů", "milionů", "milionů", "milionů", "milionů")
'
'
StrCis = CStr(Format(Cis, "0.00"))
Pol = InStr(StrCis, ",") - 1 ' poloha radu jednotek v cisle
If Pol > 9 Then Slovy = ">999 999 999": Exit Function
Rad = 0 ' rad cislice v cisle
Slovy = ""
Do
pom = Mid(StrCis, Pol, 1)
If Pol > 1 Then
pom1 = Mid(StrCis, Pol - 1, 1)
Else
pom1 = "0"
End If
'
Select Case Rad
Case 0
pom2 = IIf(pom1 <> 1, Jedn(pom), Des1(pom)): Ofs = IIf(pom1 <> 1, 1, 2)
Case 1
pom2 = Des(pom): Ofs = 1
Case 2
pom2 = Sta(pom): Ofs = 1
Case 3
pom2 = IIf(pom1 <> 1, JednTM(pom), Des1(pom)): Ofs = IIf(pom1 <> 1, 1, 2)
If Pol > 3 Then ' kdyz zustavaji jeste >3 cislice
If Mid(StrCis, Pol - 2, 3) <> "000" Then
pom2 = pom2 & IIf(pom1 <> 1, Tis(pom), " tisíc ") ' a jsou i tisice -> vlozeni slova tisic
Else
Ofs = 3 ' preskoci na rad 6 - miliony
End If
Else ' kdyz zustava jeste <3 cislice -> vlozeni slova tisic
pom2 = pom2 & IIf(pom1 <> 1, Tis(pom), " tisíc ")
End If
Case 4
pom2 = Des(pom): Ofs = 1
Case 5
pom2 = Sta(pom): Ofs = 1
Case 6
pom2 = IIf(pom1 <> 1, JednTM(pom) & Mil(pom), Des1(pom) & " milionu "): Ofs = IIf(pom1 <> 1, 1, 2)
Case 7
pom2 = Des(pom): Ofs = 1
Case 8
pom2 = Sta(pom): Ofs = 1
End Select
'
Slovy = pom2 & Slovy
Pol = Pol - Ofs: Rad = Rad + Ofs
'
Loop While Pol > 0
Slovy = Trim(Slovy) & " korun českých" ' & " " & Right(StrCis, 2) ' pridani destinne casti
End Function
tento kód napíše určenou částku slovy: jedentisícosmsetpadesátjedna korun českých
A chtěl bych aby to psalo: jeden tisíc osm set padesát jedna korun českých
Děkuji za Vaši pomoc
Zkoušet to nebudu, ale nestačí prostě upravit řetězce v uvozovkách?
Místo "jeden" psát "jeden "
---
Každopádně "úřednicky" správně je, aby slovy bylo dohromady.
dobrý den,
potřebuji tento slovní převod v excel tabulce. Prosím poradíte mi kam tento výše uvedený kod dát, aby to v excelu fungovalo? nebo to je jen do webových stránek ? děkuji
Kuk sem:
https://office.lasakovi.com/excel/funkce/funkce-excel-cislo-na-text/
moc děkuji, toto jsem našla, ale bohužel to není připravené pro vyšší částky a nevím jak to upravit, resp. nemám na to teď moc čas to zkoumat a jak to použit na ten přepis... to funguje na bázi zapišu číslo-> to se převede a ja ten text musím někam zkopírovat? a zase další číslo..atd. na to jsou různé online převaděče , potřebuji něco funkčního, zkusím asi např. NUM2TEXT popř slovy.xlam ( ikdyž to neznám ), přesto moc děkuji, třeba poradíte další trik
Nenapsala jsi, pro jaké částky to potřebuješ. V příkladu je napsáno:
Asi jsi ten příklad ani nezkusila, viď? Jinak by ses neptala:
Nic kopírovat nemusíš, text se automaticky zapíše do nastavené buňky.
zkoušela jsem to zběžně no :/ , ano vidim že to je do 9999, ale nevím jak navazát dál až do té miliardy.. v tom listě výpočet? pokračovat řádkem 13 a názvy si defakto nadefinovat ? ale dejme tomu že potřebuji číslo ( částku) 9999 převest... napíšu ho v listě 2 nebo v listě "výpočet" do bunky e16 a vyjde mi vysledek: devěttisícdevětsetdevadesát. ale tento výsledek potřebuji v jiné tabulce, kde mam velký seznam částek a tam nemohu mít tento pomocný excel ( ani to nechci propojovat - jelikož by to musel mít i nekdo další s kým to sdílím). omlouvám se, třeba to jen neznám, nejsem zadny it specialista, jen potřebuji zadat funkci do bunky " toto číslo mi převed na text ( částka slovy ) " - a s tímto si nedokážu poradit . děkuji
Otázkou je, co chceš dělat s výsledkem.
Doplněk - je to excel, který obsahuje pomocné funkce. Ale ten musí nainstalovat všichni, kterým pak pošleš výsledný excel
Uložit "makro" do excelu, ve kterém provádíš výpočty. Pak to makro putuje s tím tvým excelem a nejsi závislá na tom, co má cílový uživatel nainstalováno
Použít hybrid - doplňkem si to necháš spočítat a výsledky převodu na text ve vzorci zkopíruješ jako hodnotu. Ale pak se to nebude měnit při změně čísla
aha, takže by to u ostatních stejnak nefungovalo - děkuji to jsem netušila. No a uložit "makro" do excelu - to nemám tuchy jak se dělá. jelikož mě tlačí čas, budu muset použit online převodník a do budoucna to více nastudovat, popř hledat jiné cesty. děkuji
pane Fialo, jestě si píšeme ve vlákně dotazu" Excel - částka slovy (původně word ) " , tak jsem to zkusila jako doplněk, ale na text se to nepřepíše. Zvažuji to udělat jen u sebe a pro sdílení to ponechat už jen jako hodnoty.