Excel . number to text
Jeg har prøvet at ændre lidt i nogen gamle koder og kommet frem til nedenstående tekst, som jeg har indført i mit module i ExcelDermed kan jeg ændre et beløb til tekst.
Men jeg har brug for hjælp til at få den til at gå op til 999.999.999. Så hvis der er en derude som kan hjælpe mig med at indføre ind formel der kan få den til at regne op til 1 mia. vil det glæde mig rigtig meget, så jeg kan afslutte et projekt på skolen.
Sådan ser koden ud:
Public Function TalTilTekst(TalVærdi As Range, Kroner As Integer)
' Kroner angives som 0 og 1
ETTegn = Array("", "en", "to", "tre", "fire", "fem", "seks", "syv", "otte", "ni")
ToTegn = Array("", "ti", "tyve", "tredive", "fyrre", "halvtreds", "tres", "halvfjerds", "firs", "halvfems")
TeenTegn = Array("ti", "elleve", "tolv", "tretten", "fjorten", "femten", "seksten", "sytten", "atten", "nitten")
OG = ""
Tal = Int(TalVærdi.Value) ' heltal
Rest = Round((TalVærdi.Value - Tal), 2) * 100 ' decimaler
If A > 2 And Right(Tal, 2) <> "00" Then OG = "og"
A = Len(Tal)
If A > 6 Then
TalTilTekst = "for stort et tal"
Exit Function
End If
If A = 1 Then ' et cifrede tal
Tegn = Left(Tal, 1)
TalTilTekst = ETTegn(Tegn) & " " & Rest & "/00"
Exit Function
End If
If A > 3 Then
X = Val(Left(Tal, A - 3)) ' > 1000
Tal1000 = Val(X)
T = Len(X)
If T > 1 Then
For T = T To 2 Step -1 ' tusinder
Select Case T
Case 3
Tegn = Val(Left(X, 1))
If Tegn = 1 Then
Tekst = Tekst & "Ethundrede"
Else
Tekst = Tekst & ETTegn(Tegn) & "hundrede"
End If
Case 2
If Tekst <> "" And Right(X, 2) <> 0 Then OG = "og"
Tegn = Val(Right(X, 1))
teen = Tegn
Tekst1 = ETTegn(Tegn) ' 1.000-9.999
If Tekst <> "" Then
Tegn = Val(Mid(X, 2, 1)) ' 100.000-999.999
Else
Tegn = Val(Left(X, 1))
End If
If Tegn > 1 And Tekst1 <> "" Then
Tekst = Tekst & OG & Tekst1 & "og" & (ToTegn(Tegn)) & "tusinde"
ElseIf Tegn = 1 Then
Tekst = Tekst & OG & TeenTegn(teen) & "tusinde"
Else
Tekst = Tekst & OG & ETTegn(teen) & "tusinde"
End If
End Select
Next
Tal = Tal - (Tal1000 * 1000)
GoTo Under_tusinde
End If
Tegn = Val(Left(X, 1))
Tekst = Tekst & OG & ETTegn(Tegn) & "tusinde"
Tal = Tal - (Tal1000 * 1000)
End If
Under_tusinde:
If Tal > 0 Then
For A = Len(Tal) To 2 Step -1
Select Case A
Case 3
Tegn = Val(Left(Tal, 1))
If ETTegn(Tegn) <> "" Then
If Tegn = 1 Then
Tekst = Tekst & "Ethundrede"
Else
Tekst = Tekst & ETTegn(Tegn) & "hundrede"
End If
End If
Case 2
Tegn = Val(Right(Tal, 1))
teen = Tegn
Tekst1 = ETTegn(Tegn) ' 0-9
If Tekst <> "" Then
Tegn = Val(Mid(Tal, 2, 1)) ' 10
Else
Tegn = Val(Left(Tal, 1)) ' 10
End If
If Tegn > 1 And Tekst1 <> "" Then
Tekst = Tekst & OG & Tekst1 & "og" & ToTegn(Tegn)
ElseIf Tegn = 1 Then
Tekst = Tekst & "og" & TeenTegn(teen)
Else
Tekst = Tekst & "og" & ETTegn(teen)
End If
End Select
Next
If Len(Tal) = 1 Then
OG = "og "
Tegn = Val(Right(Tal, 1))
Tekst = Tekst & OG & ETTegn(Tegn)
End If
End If
Tekst = Tekst & " " & Rest & "/00"
l = Len(Tekst)
Tekst = UCase(Left(Tekst, 1)) & LCase(Right(Tekst, l - 1))
If Kroner = 1 Then
TalTilTekst = Tekst & " Kroner"
Else
TalTilTekst = Tekst
End If
End Function