Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 5 van 5

Onderwerp: Cijfers naar Tekst

  • Vraag is opgelost
  1. #1
    Senior Member etri's avatar
    Geregistreerd
    20 juli 2007
    Locatie
    Leeuwarden
    Afstand tot server
    ±100 km

    Cijfers naar Tekst

    Naar aanleiding van de handtekening van WilliamXXX werd ik getriggerd voor het volgende.
    Dit lid schrijft cijfers om tekst (tot 1 miljard), dus 12345 als "twaalfduizenddriehonderdvijfenveertig".

    Ik heb geprobeerd in VBA (in Excel) een programmaatje te maken dat automatisch cijfers omzet in teksten. Graag jullie reactie op mijn code die ik hieronder heb staan, en voor het gemak in een voorbeeldbestand heb bijgesloten (zie reactie hieronder...).

    Be kind...

    Code:
    Option Explicit
    
    Public Array1, Array1e1, Array20, Array1e2, Array1e3, Array1e6, Array1e9
    
    Public Function CijferNaarTekst(ByVal cijfer As Long) As String
        On Error GoTo ErrHandler
        
        Array1 = Array("", "een", "twee", "drie", "vier", "vijf", "zes", "zeven", "acht", "negen")
        Array1e1 = Array("", "tien", "twintig", "dertig", "veertig", "vijftig", "zestig", "zeventig", "tachtig", "negentig")
        Array20 = Array("", "elf", "twaalf", "dertien", "veertien", "vijftien", "zestien", "zeventien", "achttien", "negentien")
        Array1e2 = Array("honderd")
        Array1e3 = Array("duizend")
        Array1e6 = Array("miljoen")
        Array1e9 = Array("miljard")
    
        'Cijfer = 112311
        If cijfer < 1000 Then
            CijferNaarTekst = CNT3(cijfer)
        ElseIf cijfer < 1000000# Then
            CijferNaarTekst = CNT6(cijfer)
        ElseIf cijfer < 1000000000# Then
            CijferNaarTekst = CNT9(cijfer)
        ElseIf cijfer < 1000000000000# Then
            CijferNaarTekst = CNT12(cijfer)
        End If
        
        Exit Function
        
    ErrHandler:
        MsgBox "Een fout is opgetreden:" & vbCrLf & Err.Description
    
    End Function
    
    Private Function CNT2(ByVal cijfer As Long) As String
        If cijfer < 10 Then
            CNT2 = Array1(cijfer)
        ElseIf cijfer < 20 Then
            CNT2 = Array20(cijfer - 10)
        ElseIf cijfer < 100# Then
            CNT2 = Array1(cijfer Mod 10) & "en" & Array1e1(cijfer \ 10)
        End If
    End Function
    
    Private Function CNT3(ByVal cijfer As Long) As String
        If Len(Array1(cijfer \ 100)) > 0 Then
            CNT3 = Array1(cijfer \ 100) & Array1e2(0) & CNT2(Right(cijfer, 2))
        Else
            CNT3 = CNT2(Right(cijfer, 2))
        End If
    End Function
    
    Private Function CNT6(ByVal cijfer As Long) As String
        CNT6 = CNT3(cijfer \ 1000) & Array1e3(0) & CNT3(Right(cijfer, 3))
    End Function
    
    Private Function CNT9(ByVal cijfer As Long) As String
        CNT9 = CNT3(cijfer \ 1000000) & Array1e6(0) & CNT6(Right(cijfer, 6))
    End Function
    
    Private Function CNT12(ByVal cijfer As Long) As String
        CNT12 = CNT3(cijfer \ 1000000000) & Array1e9(0) & CNT9(Right(cijfer, 9))
    End Function
    Laatst aangepast door etri : 30 juli 2007 om 17:57
    Happiness is nothing more than good health and a bad memory.
    Is je vraag opgelost? Klik dan op "Vraag is opgelost" onder in beeld.

  2. #2
    Senior Member etri's avatar
    Geregistreerd
    20 juli 2007
    Locatie
    Leeuwarden
    Afstand tot server
    ±100 km
    Omdat niemand reageert heb ik zelf maar twee aanpassingen gemaakt
    • "een" wordt als "één" weergegeven
    • "eenhonderd" en "eenduizend" worden als resp. "honderd" en "duizend" weergegeven


    De code is wederom bijgevoegd.
    Attached Files Attached Files
    Happiness is nothing more than good health and a bad memory.
    Is je vraag opgelost? Klik dan op "Vraag is opgelost" onder in beeld.

  3. #3
    LOL, nou ben ik wat sneller klaar, alleen speel ik nu vals
    Met Vriendelijk Groeten, WilliamX

  4. #4
    Giga Honourable Senior Member
    Geregistreerd
    6 april 2006
    Locatie
    Mechelen
    Afstand tot server
    ±190 km
    Zie hier bij Ingrid Baplue.

  5. #5
    Senior Member etri's avatar
    Geregistreerd
    20 juli 2007
    Locatie
    Leeuwarden
    Afstand tot server
    ±100 km
    Quote Origineel gepost door Wigi Bekijk Bericht
    Zie hier bij Ingrid Baplue.
    Zie er goed uit. Gaat net ook even verder met decimalen.
    Ik vind mijn code wel wat leesbaarder...
    Happiness is nothing more than good health and a bad memory.
    Is je vraag opgelost? Klik dan op "Vraag is opgelost" onder in beeld.

Berichtenregels

  • U mag geen nieuwe discussies starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • Umag niet uw berichten bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren
Linkpartners
Aanbiedingen