> chci se zeptat jestli se da nejak udelat v Excelu to kdyz zadam do bunky nejake > cislo napr 22000 aby se mi bud v te bunce nebo nekde vedle napsala castka slovy > dvacetdvatisickorun napr. melo by to fungovat do milionu bez desetinych mist ... napsal sem to pro nekoho uz davno a nevim esli to pouziva, tak to radeji otestuj, ale snad to bude fungovat... ----------------------------------------------------------- Option Explicit Function CisloNaText(cislo) Dim text As String '________kontroly ________ If cislo > 1000000 Then MsgBox "cislo je vetsi jak Milion" Exit Function 'do milionu End If cislo = Int(cislo) 'Zaokrouhli cislo '_________________________ If cislo >= 1000 And cislo < 5000 Then text = retezec(Int(cislo / 1000) * 1000) cislo = cislo - Int(cislo / 1000) * 1000 ElseIf cislo >= 5000 Then text = TriCisla(Left(Trim(Str(cislo)), Len(Trim(Str(cislo))) - 3)) & "tisíc" cislo = cislo - Val(Left(Trim(Str(cislo)), Len(Trim(Str(cislo))) - 3)) * 1000 End If text = text & TriCisla(cislo) CisloNaText = text End Function Private Function TriCisla(cislo) Dim text As String 'Pro čísla od 100 do 999 If cislo > 99 Then text = retezec(Int(cislo / 100) * 100) cislo = cislo - Int(cislo / 100) * 100 End If 'Pro čísla do 100 If cislo > 19 Then text = text & retezec(Int(cislo / 10) * 10) & retezec(cislo - Int(cislo / 10) * 10) Else text = text & retezec(cislo) End If TriCisla = text End Function Private Function retezec(cislo) Dim text As String If cislo = 1 Then text = "jedna" ElseIf cislo = 2 Then text = "dvě" ElseIf cislo = 3 Then text = "tři" ElseIf cislo = 4 Then text = "čtyři" ElseIf cislo = 5 Then text = "pět" ElseIf cislo = 6 Then text = "±est" ElseIf cislo = 7 Then text = "sedm" ElseIf cislo = 8 Then text = "osm" ElseIf cislo = 9 Then text = "devět" ElseIf cislo = 10 Then text = "deset" ElseIf cislo = 11 Then text = "jedenáct" ElseIf cislo >= 12 And cislo <= 18 Then text = retezec(Val(Right(cislo, 1))) & "náct" ElseIf cislo = 19 Then text = "devatenáct" ElseIf cislo = 20 Then text = "dvacet" ElseIf cislo >= 30 And cislo <= 40 Then text = retezec(Val(Left(cislo, 1))) & "cet" ElseIf cislo = 50 Then text = "padesát" ElseIf cislo = 60 Then text = "±edesát" ElseIf cislo >= 70 And cislo <= 80 Then text = retezec(Val(Left(cislo, 1))) & "desát" ElseIf cislo = 90 Then text = "devadesát" ElseIf cislo = 100 Then text = "sto" ElseIf cislo >= 200 And cislo <= 400 Then text = retezec(Val(Left(cislo, 1))) & "sta" ElseIf cislo >= 500 And cislo <= 900 Then text = retezec(Val(Left(cislo, 1))) & "set" ElseIf cislo = 1000 Then text = "tisíc" ElseIf cislo = 2000 Then text = "dvatisíce" ElseIf cislo >= 3000 And cislo <= 4000 Then text = retezec(Val(Left(cislo, 1))) & "tisíce" End If retezec = text End Function -- cao, Kamil
This archive was generated by hypermail 2.1.3 : 02. 10. 2003, 15:38 CEST