Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Van getal/tekst

261 views
Skip to first unread message

H.C.M. Raaijmaakers

unread,
Sep 16, 2002, 2:43:56 PM9/16/02
to
Kan ik in excel getallen laten omzetten naar tekst?
Wie weet hier een voorbeeld van te vinden als het gaat?


Luc Heyndrickx

unread,
Sep 16, 2002, 3:18:34 PM9/16/02
to
Wat bedoel je?
Moet een getal van cijfers omgezet worden naar letters?
bv
123
één-twee-drie

Of moet het in cijfers blijven staan, maat als tekst geīnterpreteerd?

Voor het eerste heeft Ingrid een tijdje geleden een mooie Add-In gemaakt.

Luc


"H.C.M. Raaijmaakers" <be...@cuci.nl> schreef in bericht
news:3d862674$0$87559$8fcf...@news.wanadoo.nl...

H.C.M. Raaijmaakers

unread,
Sep 16, 2002, 3:47:04 PM9/16/02
to

"Luc Heyndrickx" <lucNOSPAMAU...@skynet.be> schreef in bericht
news:3d862e5d$0$208$ba62...@news.skynet.be...

> Wat bedoel je?
> Moet een getal van cijfers omgezet worden naar letters?
> bv
> 123
> één-twee-drie
>
> Of moet het in cijfers blijven staan, maat als tekst geïnterpreteerd?

>
> Voor het eerste heeft Ingrid een tijdje geleden een mooie Add-In gemaakt.
>
> Luc
>
Ik bedoel 123 > honderddrieentwintig, kan dit ?


Luc Heyndrickx

unread,
Sep 16, 2002, 4:02:27 PM9/16/02
to

"H.C.M. Raaijmaakers" <be...@cuci.nl> schreef in bericht
news:3d863540$0$87551$8fcf...@news.wanadoo.nl...

>
> "Luc Heyndrickx" <lucNOSPAMAU...@skynet.be> schreef in bericht
> news:3d862e5d$0$208$ba62...@news.skynet.be...
> > Wat bedoel je?
> > Moet een getal van cijfers omgezet worden naar letters?
> > bv
> > 123
> > één-twee-drie
> >
> > Of moet het in cijfers blijven staan, maat als tekst geīnterpreteerd?

> >
> > Voor het eerste heeft Ingrid een tijdje geleden een mooie Add-In
gemaakt.
> >
> > Luc
> >
> Ik bedoel 123 > honderddrieentwintig, kan dit ?
>
>

Vermoedelijk kan je ook dit in een macro zetten. Alleen zal die dan wel een
stuk groter worden als die die Ingrid gemaakt heeft. Je moet hem immers het
aantal cijfers laten tellen voor de komma, en afhankelijk daarvan bepalen
hoe het getal moet uitgesproken worden (Tientallen; honderdtallen;
duizendtallen; milioen; miljard; triljoen; triljard enz.) Verder heb je nog
de uitzonderingen (elf; twaalf; dertien; veertien). Je hebt dan ook nog de
onlogische volgorde waarin de getallen worden uitgesproken
(Honderddrieentwintig, waarin de hondertallen vooraan, en de tientallen
achteraan).
Een leuk werkje voor iemand die zich toevallig verveelt...
Ik vermoed dat je hier geen oplossing voor gaat krijgen.

Luc

marc

unread,
Sep 16, 2002, 4:13:59 PM9/16/02
to
Dit kan. Hiervoor heb ik ooit een vba-functie voor geschreven, tot 999 999
999.

Marc


"Luc Heyndrickx" <lucNOSPAMAU...@skynet.be> schreef in bericht

news:3d8638a7$0$203$ba62...@news.skynet.be...


>
> "H.C.M. Raaijmaakers" <be...@cuci.nl> schreef in bericht
> news:3d863540$0$87551$8fcf...@news.wanadoo.nl...
> >
> > "Luc Heyndrickx" <lucNOSPAMAU...@skynet.be> schreef in bericht
> > news:3d862e5d$0$208$ba62...@news.skynet.be...
> > > Wat bedoel je?
> > > Moet een getal van cijfers omgezet worden naar letters?
> > > bv
> > > 123
> > > één-twee-drie
> > >

> > > Of moet het in cijfers blijven staan, maat als tekst geïnterpreteerd?

Ber Visser

unread,
Sep 16, 2002, 5:53:35 PM9/16/02
to
Wanneer het om geldbedragen gaat heb ik een macro die een bedrag
in cijfers omzet naar tekst.
112,32 wordt dan 'eenhonderdtwaalf euro en tweeendertig eurocent'
en dit tot biljoenen euro dus dat is altijd handig om je bonus
uit te rekenen ;)))
Mail me maar als je hem wilt hebben.

--
Met vriendelijke groeten,
Ber Visser


"H.C.M. Raaijmaakers" <be...@cuci.nl> schreef in bericht

news:3d862674$0$87559$8fcf...@news.wanadoo.nl...

keepitcool

unread,
Sep 16, 2002, 7:53:17 PM9/16/02
to
ik heb dr een poging aan gewaagd, plak t maar in een module

Greetz,
KeepItCool
<unscramble emailaddress with ROT13>

"H.C.M. Raaijmaakers" <be...@cuci.nl> wrote in message
news:3d862674$0$87559$8fcf...@news.wanadoo.nl ...

> Kan ik in excel getallen laten omzetten naar tekst?
> Wie weet hier een voorbeeld van te vinden als het gaat?
>
>

Dim spel$(99)
Dim den(6)
Dim tal(12)

Function t2s(value As Variant) As String
Dim val As Variant
Dim valH$, valD$
Dim strC$, strD$, strH$, tmp$
Dim strT$, strS$
Dim i%
Dim decpos&

val = CDec(value)
loadspel

strT = IIf(Sgn(val) > 0, "", "min ")
val = Abs(val)
valH = Int(val)

With Application
decpos = Len(CStr(val)) - InStrRev(CStr(val), _
IIf(.UseSystemSeparators, .International(xlDecimalSeparator), _
.DecimalSeparator))
End With
valD = Int((val - Int(val)) * (10 ^ decpos))

If valH <> "0" Then
i = 0
Do
tmp = Right(valH, 3)
valH = Left(valH, Len(valH) - IIf(Len(valH) < 3, Len(valH), 3))
strH = blokvandrie(tmp) & tal(i * 3) & strH
i = i + 1
Loop Until valH = ""
Else
strH = "nul"
End If

If valD <> "0" Then
If decpos <= 6 Then
strD = " " & den(decpos)
End If
i = 0
Do
tmp = Right(valD, 3)
valD = Left(valD, Len(valD) - IIf(Len(valD) < 3, Len(valD), 3))
strD = blokvandrie(tmp) & tal(i * 3) & strD
i = i + 1
Loop Until vD = ""
strD = " en " & strD
Else
strD = ""
End If

Let strC = strT & strH & strD

cleanup:
Let strC = Replace(strC, "eenhonderd", "honderd", 1, , vbTextCompare)
Let strC = Replace(strC, "achttig", "tachtig", 1, , vbTextCompare)
Let strC = Replace(strC, "eee", "eeë", 1, , vbTextCompare)
Let strC = Replace(strC, "drieen", "drieën", 1, , vbTextCompare)

t2s = strC

End Function

Private Function blokvandrie(tmp) As String
Dim res$
If CInt(tmp) > 99 Then
res = spel(CInt(Left(tmp, 1))) & tal(2)
tmp = Right(tmp, 2)
End If
If CInt(tmp) <= 50 Then
If spel(CInt(tmp)) <> "" Then
res = res & spel(CInt(tmp))
ElseIf CInt(tmp) > 10 Then
res = res & spel(Right(tmp, 1)) & "en" & spel(Left(tmp, 1) * 10)
Else
res = res & spel(CInt(tmp))
End If
Else
res = res & spel(CInt(Right(tmp, 1))) & "en" & _
spel(CInt(Left(tmp, 1))) & tal(1)
End If
blokvandrie = res
End Function

Private Sub loadspel()
spel(0) = ""
spel(1) = "een"
spel(2) = "twee"
spel(3) = "drie"
spel(4) = "vier"
spel(5) = "vijf"
spel(6) = "zes"
spel(7) = "zeven"
spel(8) = "acht"
spel(9) = "negen"
spel(10) = "tien"
spel(11) = "elf"
spel(12) = "twaalf"
spel(13) = "dertien"
spel(14) = "veertien"
spel(20) = "twintig"
spel(30) = "dertig"
spel(40) = "veertig"
tal(1) = "tig"
tal(2) = "honderd"
tal(3) = "duizend"
tal(6) = "miljoen"
tal(9) = "miljard"
tal(12) = "biljoen"
den(1) = "tiende"
den(2) = "honderste"
den(3) = "duizendste"
den(4) = "tienduizendste"
den(5) = "honderdduizendste"
den(6) = "miljoenste"
End Sub


Luc Heyndrickx

unread,
Sep 17, 2002, 3:14:34 AM9/17/02
to
Ber,

Ik ben eigenlijk ook wel geïnteresseert in uw macro.
Ik had niet gedacht dat hier een antwoord op zou komen ... zo zie je maar,
ik ben te snel geweest.
Bij een antwoord via E-Mail, gelieve NOSPAMAUB er uit te halen.

Luc

"Ber Visser" <viss...@pandora.be> schreef in bericht
news:ehK9ctcXCHA.2656@tkmsftngp10...

Ingrid

unread,
Sep 17, 2002, 3:39:59 AM9/17/02
to
KeepItKool,

Ik heb jou functie proberen aan te passen volgens de spellingsregels, maar
het blijkt fout te lopen bij getallen >1000 waarbij het honderdtal 0 is.
bijv 1015 geeft "duizend vijfen"
Weet jij hier soms een oplossing voor?

De functie, zoals ik ze nu heb, staat op:
http://users.pandora.be/ingrid/excel/telwoorden.htm

Ingrid

keepitcool schreef:

Eric Desart

unread,
Sep 17, 2002, 4:37:24 AM9/17/02
to
Juist een stomme vraag,
Blijkbaar zijn jullie beide ook Belg

'eenhonderdtwaalf euro en tweeendertig eurocent'

Is het mijn Antwerps dialect?
Ik zou dit uitspreken als:
'honderdentwaalf euro en tweeendertig eurocent'

Vermoed dat Ber een meer officiële schrijfwijze gebruikt?

Met groetjes en respect (vraagje niet cynisch bedoeld).
Eric


"Luc Heyndrickx" <lucNOSPAMAU...@skynet.be> schreef in bericht

news:3d86d62a$0$214$ba62...@news.skynet.be...

Ingrid

unread,
Sep 17, 2002, 4:49:38 AM9/17/02
to
Als je het juist wil hebben: "honderd en twaalf " of "honderd twaalf" zie
http://www.taalunieversum.org/taaladvies/generiek.php?id=44

Ingrid

Eric Desart schreef:

Luc Heyndrickx

unread,
Sep 17, 2002, 4:56:33 AM9/17/02
to
Juist, 't was me nog niet opgevallen dat dit geen juiste schrijfwijze was.
Dit zijn dan de uitzonderingen waar ik reeds eerder over sprak. Deze macro,
of functie moet met zéér veel rekening houden ;-). Ik blijf benieuwd.

Luc

"Ingrid" <ingrid_bap...@hotmail.com> schreef in bericht
news:#Sl04biXCHA.464@tkmsftngp12...

keepitcool

unread,
Sep 17, 2002, 5:12:27 AM9/17/02
to
Ik heb nav de opm van ingrid op mijn eerdere post
de volgende functie aangepast, en vlgs mij werkt t nu.


Private Function blokvandrie(tmp) As String
Dim res$
If CInt(tmp) > 99 Then

res = spel(Left(tmp, 1)) & tal(2)


tmp = Right(tmp, 2)
End If

If spel(tmp) <> "" Then
res = res & spel(tmp)
ElseIf tmp < 50 Then
amp = IIf(tmp < 20, "", "en")
res = res & spel(Right(tmp, 1)) & amp & _


spel(Left(tmp, 1) * 10)
Else

amp = IIf(tmp Mod 10 = 0, "", "en")
res = res & spel(Right(tmp, 1)) & amp & _
spel(Left(tmp, 1)) & tal(1)
End If

blokvandrie = res
End Function

Greetz,


KeepItCool
<unscramble emailaddress with ROT13>

"Ingrid" <ingrid_bap...@hotmail.com> wrote in message
news:e14J#0hXCHA.4200@tkmsftngp08 ...

Ingrid

unread,
Sep 17, 2002, 5:37:36 AM9/17/02
to
Nu krijg ik volgend resultaat
1014 = duizend veertien
1015 = duizend vijf
1020 = duizend twintig
1021 = duizend eenen
vanaf > 1020 blijken de tientallen te verdwijnen als het honderdtal 0 is.

Ingrid

keepitcool schreef:

>>> vbTextCompare) Let strC = Replace(strC, "eee", "eeė", 1, ,
>>> vbTextCompare) Let strC = Replace(strC, "drieen", "drieėn", 1, ,

Eric Desart

unread,
Sep 17, 2002, 7:57:50 AM9/17/02
to
Yep Bert,

Zelfde probleem als jij,
Nuttig de link van Ingrid.
Weet ik tenminste hoe het nu juist zit.

Groetjes
Eric

PS. Mijn stomme vraag heeft jou misschien weeral werk bezorgt.


"Ber Visser" <viss...@pandora.be> schreef in bericht

news:OCpkisjXCHA.2656@tkmsftngp10...
| Eric, ik heb de schrijfwijze aangehouden zoals die vroeger op
| officiële documenten (contracten, kwitanties e.d.) gebruikelijk
| was. Gezien de link die Ingrid opgaf loop ik, met het klimmen der
| jaren, waarschijnlijk een beetje achter ;-(


|
| --
| Met vriendelijke groeten,
| Ber Visser
|

| "Eric Desart" <afb...@belgacom.net> schreef in bericht
| news:uH1e#ViXCHA.2452@tkmsftngp09...

Ber Visser

unread,
Sep 17, 2002, 7:13:41 AM9/17/02
to
Eric, ik heb de schrijfwijze aangehouden zoals die vroeger op
officiële documenten (contracten, kwitanties e.d.) gebruikelijk
was. Gezien de link die Ingrid opgaf loop ik, met het klimmen der
jaren, waarschijnlijk een beetje achter ;-(

--


Met vriendelijke groeten,
Ber Visser

"Eric Desart" <afb...@belgacom.net> schreef in bericht
news:uH1e#ViXCHA.2452@tkmsftngp09...

keepitcool

unread,
Sep 17, 2002, 7:13:53 AM9/17/02
to
haha.. ik heb ook zo nog t een en ander gezien.

ik ben ermee aan t werk. morgen post ik m wel.
en dan volledig inclusief spaties e.d.

tot die tijd svp je pagina "Getallen volluit schrijven" sic!
ff verwijderen.

Greetz,
KeepItCool
<unscramble emailaddress with ROT13>

"Ingrid" <ingrid_bap...@hotmail.com> wrote in message

news:u$Cls2iXCHA.2456@tkmsftngp09 ...

marc

unread,
Sep 17, 2002, 4:16:18 PM9/17/02
to
"keepitcool" <xrrcv...@puryyb.ay> schreef in bericht
news:Xns928C869AB3A...@207.46.239.39...


Hieronder mijn functie voor het omzetten van getallen naar tekst. Deze werkt
voor positieve en negatieve getallen tot 999 999 999. Decimale getallen gaat
niet. Voor geldbedragen kun je altijd het geheel deel nemen en omzetten naar
tekst en vervolgens het decimaal deel * 100 en dit weer omzetten naar tekst
voor de eurocenten.

mvg

Marc


Option Base 0
Public eenheid, tiental As Variant

Sub declareer()
eenheid = Array("", "een", "twee", "drie", "vier", "vijf", "zes", "zeven",
"acht", "negen", "tien", "elf", "twaalf", "dertien", "veertien", "vijftien",
"zestien", "zeventien", "achttien", "negentien")
tiental = Array("", "tien", "twintig", "dertig", "veertig", "vijftig",
"zestig", "zeventig", "tachtig", "negentig")
End Sub

Function getal(u_get) As String
Dim milj As Integer, eenh As Integer, d As Integer
Dim Chr, mtekst, dtekst, ehtekst As String

u_get = CLng(u_get)
declareer

Chr = ""
Select Case u_get
Case Is = 0
getal = "nul"
Exit Function
Case Is < -999999999
getal = "Buiten bereik"
Exit Function
Case Is < 0
Chr = "min "
u_get = Abs(u_get)
Case Is > 999999999
getal = "Buiten bereik"
Exit Function

End Select

milj = Right(Fix(u_get / 1000000), 3)
d = Right(Fix(u_get / 1000), 3)
eenh = Right(u_get, 3)
If milj > 0 Then
mtekst = totd(milj) & " miljoen "
End If
Select Case d
Case Is = 1
dtekst = "duizend "
Case Is > 1
dtekst = totd(d) & "duizend "
End Select
getal = Chr & mtekst & dtekst & totd(eenh)
End Function

Private Function totd(teller As Integer) As String
Dim e, t, h As Integer
h = Fix(teller / 100)
t = Fix(teller / 10 - h * 10)
e = teller - t * 10 - h * 100
Select Case h
Case Is = 1
totd = "honderd "
Case Is > 1
totd = eenheid(h) & "honderd "
End Select
If t * 10 + e < 20 Then
totd = totd & eenheid(t * 10 + e)
Else
If e = 0 Then
totd = totd & tiental(t)
Else
If Right(eenheid(e), 1) = "e" Then
totd = totd & eenheid(e) & "-en" & tiental(t)
Else
totd = totd & eenheid(e) & "en" & tiental(t)
End If
End If
End If

End Function

keepitcool

unread,
Sep 18, 2002, 5:38:54 PM9/18/02
to
Pfoeh...

vlgs mij is ie nu helemaal foutloos en compleet conform
http://www.taalunieversum.org/taaladvies/generiek.php?id=44

de functie werkt met 12 cijfers voor EN 12 cijfers na de komma,
spelt 1200 als twaalfhonderd ipv duizend tweehonderd en alles is waar
mogelijk samengesteld ahv unieke componenten.

hij doet in ieder geval alle voorbeelden van bovengenoemde link
foutloos.....

Greetz,
KeepItCool
<unscramble emailaddress with ROT13>

"H.C.M. Raaijmaakers" <be...@cuci.nl> wrote in message
news:3d862674$0$87559$8fcf...@news.wanadoo.nl ...

> Kan ik in excel getallen laten omzetten naar tekst?


> Wie weet hier een voorbeeld van te vinden als het gaat?


Option Explicit
Option Compare Text

Dim eh$(99)
Dim vv$(12)

Function getaltekst(getal As Variant) As String
Dim heel, deel 'decimal variants
Dim txt$, n% 'string/int
vulArrays
heel = Int(CDec(Abs(getal)))
deel = CDec(Abs(getal)) - heel

txt = IIf(Sgn(getal) < 0, "min ", "") & _
IIf(heel = 0, IIf(deel = 0, "nul", ""), spel(heel))

If deel <> 0 Then
txt = txt & IIf(heel = 0, "", " en ")
n = Len(Mid(deel, 3))
'boven miljoenste per macht van 3
n = n + IIf(n < 6, 0, (3 - n Mod 3) Mod 3)
deel = deel * (10 ^ n)
txt = txt & spel(deel) & " " & _
Trim(Replace(spel(10 ^ n), "een", "")) & _
IIf(n = 1, "de", "ste")
End If

getaltekst = txt
End Function

Function spel$(n)
Dim t$, tmp$, b$, b1$, b2$
Dim i%, s%, hv%, dv%

t = CStr(n)
'blokje van 4 bij getal tm 9999
s = IIf(Len(t) = 4, 4, 3)
'met nullen vullen tot lengte een veelvoud is van 3
t = String((s - Len(t) Mod s) Mod s, "0") & t

For i = 1 To Len(t) Step s
tmp = Mid(t, i, s)
b1 = Left(tmp, Len(tmp) - 2)
hv = IIf(Right(b1, 1) = 0, 3, 2) 'duizend/honderd
b1 = IIf(Right(b1, 1) = 0, Left(b1, 1), b1) 'idem

b1 = xx(b1)
b1 = IIf(b1 = "een", " ", b1) 'geen eenhonderd
b1 = b1 & IIf(b1 = "", "", vv(hv)) 'plak veelvoud

b2 = Right(tmp, 2)
dv = Len(t) - i - (s - 1) 'duizendvoud
b2 = xx(b2)

'spatiëring
'optioneel EN voor getal tm 12
b2 = IIf(dv = 0 And b1 <> "" And _
Right(tmp, 2) > 0 And Right(tmp, 2) <= 12, _
"en " & b2, b2)
b = Trim(b1 & " " & b2) & " "
'geen spatie veelvoud duizend hfdtelwoord tm honderd
If (dv = 3 And Right(tmp, 2) = "00") Then b = Trim(b)
'geen spatie veelvoud honderd
If (dv = 3 And tmp < 100) Then b = Trim(b)

spel = Trim(spel & " " & b & IIf(tmp = "000", "", vv(dv)))
Next
End Function

Private Function xx$(n$)
'spelt tm 99
If eh(n) <> "" Then
xx = eh(n)
Else
xx = eh(Right(n, 1)) & _
IIf(Left(n, 1) = 1 Or Right(n, 1) = 0, "", _
IIf(Right(xx, 1) = "e", "ën", "en")) & _
IIf(eh(Left(n, 1) * 10) <> "", eh(Left(n, 1) * 10), _
eh(Left(n, 1)) & vv(1))
End If
xx = Trim(xx)
End Function

Private Sub vulArrays()
eh(0) = " "
eh(1) = "een"
eh(2) = "twee"
eh(3) = "drie"
eh(4) = "vier"
eh(5) = "vijf"
eh(6) = "zes"
eh(7) = "zeven"
eh(8) = "acht"
eh(9) = "negen"
eh(10) = "tien"
eh(11) = "elf"
eh(12) = "twaalf"
eh(13) = "dertien"
eh(14) = "veertien"
eh(20) = "twintig"
eh(30) = "dertig"
eh(40) = "veertig"
eh(80) = "tachtig"
vv(1) = "tig"
vv(2) = "honderd"
vv(3) = "duizend"
vv(6) = "miljoen"
vv(9) = "miljard"
vv(12) = "biljoen"
End Sub

Ber Visser

unread,
Sep 19, 2002, 5:03:23 AM9/19/02
to

Gefeliciteerd!!!!!!
Ber

"keepitcool" <xrrcv...@puryyb.ay> schreef in bericht
news:Xns928DF091B8F...@207.46.239.39...

eddy.st...@gmail.com

unread,
Jul 10, 2012, 8:04:13 PM7/10/12
to
Op dinsdag 17 september 2002 01:18:51 UTC+2 schreef Ber Visser het volgende:
> Wanneer het om geldbedragen gaat heb ik een macro die een bedrag
> in cijfers omzet naar tekst.
> 112,32 wordt dan &#39;eenhonderdtwaalf euro en tweeendertig eurocent&#39;
> en dit tot biljoenen euro dus dat is altijd handig om je bonus
> uit te rekenen ;)))
> Mail me maar als je hem wilt hebben.
>
> --
> Met vriendelijke groeten,
> Ber Visser
>
>
> &quot;H.C.M. Raaijmaakers&quot; &lt;be...@cuci.nl&gt; schreef in bericht
> news:3d862674$0$87559$8fcf...@news.wanadoo.nl...
> &gt; Kan ik in excel getallen laten omzetten naar tekst?
> &gt; Wie weet hier een voorbeeld van te vinden als het gaat?
> &gt;
> &gt;

heb je die omzetting van getallen naar letters nog beschikbaar?
graag een seintje.
bedankt!

Mon

unread,
Jul 15, 2012, 4:47:02 AM7/15/12
to

<eddy.st...@gmail.com> schreef in bericht
news:1cca8957-86dc-41ca...@googlegroups.com...
Is het dat wat gij zoekt?

Sub cijfer_letter()
'
' cijfer_letter Macro
' De macro is opgenomen op 5/05/2002 door ..............
Function SpelGetal(ByVal MyNumber)
Dim Euros, EuroCent, Temp
Dim DecimalPlace, Count

ReDim Place(9) As String
Place(2) = "duizend "
Place(3) = "miljoen "
Place(4) = "miljard "
Place(5) = "triljard "


MyNumber = Trim(Str(MyNumber))

DecimalPlace = InStr(MyNumber, ".")
If DecimalPlace > 0 Then
EuroCent = GetTens(Left(Mid(MyNumber, DecimalPlace + 1)
& -"00", 2))

MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If

Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then Euros = Temp & Place(Count) & Euros
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop

Select Case Euros
Case ""
Euros = "nul euro"
Case "One"
Euros = "één euro"
Case Else
Euros = Euros & " euro"
End Select

Select Case EuroCent
Case ""
EuroCent = " en nul eurocent"
Case "One"
EuroCent = " en één eurocent"
Case Else
EuroCent = " en " & EuroCent & " eurocent"
End Select

SpelGetal = Euros & EuroCent
End Function
Function GetHundreds(ByVal MyNumber)
Dim Result As String

If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)

If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & "honderd"
End If

If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If

GetHundreds = Result
End Function

Function GetTens(TensText)
Dim Result As String

Result = ""
If Val(Left(TensText, 1)) = 1 Then
Select Case Val(TensText)
Case 10: Result = "tien"
Case 11: Result = "elf"
Case 12: Result = "twaalf"
Case 13: Result = "dertien"
Case 14: Result = "veertien"
Case 15: Result = "vijftien"
Case 16: Result = "zestien"
Case 17: Result = "zeventien"
Case 18: Result = "achtien"
Case 19: Result = "negentien"
Case Else
End Select
Else
Select Case Val(Left(TensText, 1))
Case 2: Result = "twintig"
Case 3: Result = "dertig"
Case 4: Result = "veertig"
Case 5: Result = "vijftig"
Case 6: Result = "zestig"
Case 7: Result = "zeventig"
Case 8: Result = "tachtig"
Case 9: Result = "negentig"
Case Else
Result = GetDigit(Right(TensText, 1)) & Result
GetTens = Result
Exit Function
End Select
If GetDigit(Right(TensText, 1)) = "" Then
Result = Result
Else
Result = GetDigit(Right(TensText, 1)) & "en" & Result
End If
End If
GetTens = Result
End Function

Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "een"
Case 2: GetDigit = "twee"
Case 3: GetDigit = "drie"
Case 4: GetDigit = "vier"
Case 5: GetDigit = "vijf"
Case 6: GetDigit = "zes"
Case 7: GetDigit = "zeven"
Case 8: GetDigit = "acht"
Case 9: GetDigit = "negen"
Case Else: GetDigit = ""
End Select
End Function


Voorbeeld in excel
A B
Spelgetal(a1)geeft
1 1,20 een euro en twintig
eurocent



0 new messages