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

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.

Hozzászólások

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