Zdravim Mike,
tady to mas
neni to ode mne (dik Kamile), jen jsem to opravil a upravil
umi to vypsat i halere
volas to =CisloNaText(X) kde X je bunka s cislem
------------- zacatek
Option Explicit
Function CisloNaText(cislo)
Dim text As String
Dim desetiny As String
Dim des As Byte
'________kontroly ________
If cislo > 1000000 Then
MsgBox "cislo je vetsi jak Milion"
Exit Function 'do milionu
End If
des = Round(cislo - Int(cislo), 1) * 100 'halere
desetiny = " a " & des & " hal."
If des = 0 Then
desetiny = "" 'pokud jsou halere 0 tak nic neprida
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 & desetiny
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 <= 14 Then
text = retezec(Val(Right(cislo, 1))) & "náct"
ElseIf cislo = 15 Then
text = "patnáct"
ElseIf cislo >= 16 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 < 300 Then
text = retezec(Val(Left(cislo, 1))) & "stě"
ElseIf cislo >= 300 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
------------- konec
--
Zdravi
Sokol
E-mail: sokol01@atlas.cz
ICQ #65208171
'We are all immortal
until we die'
Flitzanu the Silly
This archive was generated by hypermail 2.1.3 : 02. 10. 2003, 19:48 CEST