Avatar billede Lauridsen86 Nybegynder
03. maj 2010 - 21:32 Der er 1 kommentar

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 Excel
Dermed 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
Avatar billede kabbak Professor
03. maj 2010 - 23:06 #1
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester