Martin
Her er noget kode, du måske kan bruge til formålet.
Indsæt koden i et almindeligt modul og brug
funktionen fra arket således:
=ttt(45678)
1. Gå til VBA editoren med <Alt><F11>
2. Dobbeltklik på mappen i projektvinduet
(Til venstre på skærmen)
3. Vælg menupunktet Insert > Module
4. Kopier koden og indsæt den i det højre vindue.
5. Gå tilbage til projektmappen og gem den.
'----------------------------------------------------------
' Program til at angive talværdier som tekst.
' Hvis der ønskes svensk stavemåde, sættes variablen Svensk
' til True. Ønskes dansk, sættes variablen til False
' Leo Heuser, 31.05.1998
Dim Resultat As String
Dim EnereTiere As Variant
Dim Tiere As Variant
Dim TierTal As Variant
Dim Svensk As Boolean
Function TTT(TalTilTekst)
Dim TusindFamilier As Variant
Dim TalSomTekst As String
Dim GemTalSomTekst As String
Dim LængdePåTal As Integer
Dim AntalFamilier As Integer
Dim Start As Integer
Dim i As Integer
Dim TreCifre As String
Dim Familie As String
Dim Dummy As String
Svensk = False
EnereTiere = Array("", "en", "to", "tre", "fire", "fem", "seks", _
"syv", "otte", "ni", "ti", "elleve", "tolv", "tretten", _
"fjorten", "femten", "seksten", "sytten", "atten", "nitten")
Tiere = Array("", "", "toti", "treti", "firti", "femti", "seksti", _
"syvti", "otti", "niti")
TierTal = Array("", "", "tyve", "tredive", "fyrre", "halvtreds", _
"tres", "halvfjerds", "firs", "halvfems")
' Kan udvides opad, hvis der pludselig dukker en lønstigning op.
TusindFamilier = Array("", "", "tusind", "millioner", "milliarder",
"billioner")
' Foranstillet mellemrum ved positive tal fjernes, decimaler fjernes og
' negativt tal laves positivt
' Tallet laves om til en streng
TalSomTekst = Trim(Str(Int(Abs(TalTilTekst))))
GemTalSomTekst = TalSomTekst
LængdePåTal = Len(TalSomTekst)
'Foranstillede nuller tilføjes, så 3 går op i længden
TalSomTekst = String(3 - LængdePåTal Mod 3, "0") & TalSomTekst
' Ener, tusinder, millioner m.m.
AntalFamilier = Len(TalSomTekst) / 3
Start = 1
Resultat = ""
For i = AntalFamilier To 1 Step -1
TreCifre = Mid(TalSomTekst, Start, 3)
If TreCifre <> "000" Then
Familie = TilTekst(TreCifre, i)
If Familie <> "" Then
Dummy = TusindFamilier(i)
' Flertal fjernes. Millioner bliver til million o.s.v.
If Familie = "en" And i > 2 Then Dummy = Left(Dummy,
Len(Dummy) - 2)
' et tusind
If Familie = "en" And i = 2 Then Mid(Familie, 1, 2) = "et"
Resultat = Resultat & Familie & " " & Dummy & " "
End If
End If
Start = Start + 3
Next i
If Resultat = "" Then Resultat = "nul"
TTT = Trim(Application.Substitute(Resultat, " ", " "))
End Function
Function TilTekst(Familie, Nummer)
Dim Ciffer_1, Ciffer_2, Ciffer_3, Ciffer_2og3 As Variant
Dim Mellemtal As String
Dim DeTreCifre As String
Dim Tegn As Variant
DeTreCifre = Familie
Ciffer_1 = Left(DeTreCifre, 1)
Ciffer_2 = Mid(DeTreCifre, 2, 1)
Ciffer_3 = Right(DeTreCifre, 1)
Ciffer_2og3 = Right(DeTreCifre, 2)
If Ciffer_1 > 0 Then
Mellemtal = EnereTiere(Ciffer_1) & " hundrede"
If Ciffer_1 = 1 Then Mid(Mellemtal, 1, 2) = "et"
End If
If Resultat <> "" And Mellemtal = "" And Nummer = 1 Then
Tegn = " og "
ElseIf Mellemtal <> "" Then
Tegn = " "
Else
Tegn = ""
End If
If Ciffer_2og3 < 20 And Ciffer_2og3 > 0 Then
Mellemtal = Mellemtal & Tegn & EnereTiere(Ciffer_2og3)
Else
If Svensk = True Then
Mellemtal = Mellemtal & Tegn & Tiere(Ciffer_2)
If Ciffer_3 > 0 Then Mellemtal = Mellemtal &
EnereTiere(Ciffer_3)
Else
If Ciffer_3 > 0 Then
Mellemtal = Mellemtal & Tegn & EnereTiere(Ciffer_3) & _
"og" & TierTal(Ciffer_2)
Else
Mellemtal = Mellemtal & Tegn & TierTal(Ciffer_2)
End If
End If
End If
TilTekst = Mellemtal
End Function
--
Med venlig hilsen
Leo Heuser
MVP Excel
Followup to newsgroup only, please.
"Martin Lynnerup" <Newsgroup@funtime.dk> skrev i en meddelelse
news:3EAADEE3.1090906@funtime.dk...
> Findes der en formel/funktion, der gør sådan at hvis man
> f.eks skriver "1000", så skriver den "Tusinde"?
>
> MANGE TAK!!!
>
> --
> Martin Lynnerup
> Funtime Production
>
>
www.Funtime.dk - Fra 1. April
> Fax: 98 37 87 60
>