Openoffice táblázatkezelő szöveggel írja ki a számot.

 ( safranek | 2006. július 14., péntek - 10:57 )

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.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Nem tudok ilyenről.
Azonban, ha nem okoz nehézséget, írj hozzá egy makrót.

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