Fórumok
Sziasztok!
Az után érdeklődnék, hogy létezik-e olyan fügvény, vagy formázási lehetőség OpenOffice táblázatkezelőben, ami egy cellába beírt számot magyar szöveggé alakít (pl: beírom egy cellába, hogy 4000 és négyezer lesz belőle). Elég extrém ötlet, de megtaláltak egy ilyen igénnyel, gondoltam hátha tud valaki erre valami ötletet.
- 1590 megtekintés
Hozzászólások
Nem tudok ilyenről.
Azonban, ha nem okoz nehézséget, írj hozzá egy makrót.
- A hozzászóláshoz be kell jelentkezni
Ezt Excel VBA-ban írtam, elég szörnyű, de kiinduláshoz talán jó lesz :)
Public Function NumberToText(number As Double) As String
Dim numlen As Long
Dim dtmp As String
Dim units(0 To 3) As Variant
units(0) = Array("milliárd", "millió", "ezer", "")
units(1) = Array("", "száz", "kétszáz", "háromszáz", "négyszáz", "ötszáz", "hatszáz", "hétszáz", "nyolcszáz", "kilencszáz")
units(2) = Array("", "tizen", "huszon", "harminc", "negyven", "ötven", "hatvan", "hetven", "nyolcvan", "kilencven")
units(3) = Array("", "egy", "kettő", "három", "négy", "öt", "hat", "hét", "nyolc", "kilenc")
numchar = Trim(Str(number))
numlen = Len(numchar)
Do While (numlen Mod 3 <> 0)
numchar = "0" & numchar
numlen = Len(numchar)
Loop
lvalue = 4 - numlen / 3
For i = 1 To numlen Step 3
For j = 1 To 3
dtmp = dtmp & units(j)(CInt(Mid(Mid(numchar, i, 3), j, 1)))
Next j
If Right(dtmp, 6) = "huszon" Then
dtmp = Replace(dtmp, "huszon", "húsz")
ElseIf Right(dtmp, 5) = "tizen" Then
dtmp = Replace(dtmp, "tizen", "tíz")
End If
NumberToText = NumberToText & dtmp & units(0)(lvalue)
If lvalue <> 3 Then
NumberToText = NumberToText & "-"
End If
dtmp = ""
lvalue = lvalue + 1
Next i
End Function
- A hozzászóláshoz be kell jelentkezni
- A hozzászóláshoz be kell jelentkezni