Conversion de chiffres en lettres
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

Conversion de chiffres en lettres



  1. #1
    Fanchigl

    Conversion de chiffres en lettres


    ------

    Bonjour,

    Je recherche pour word 2007 ou open office writer le moyen simple de convertir des chiffres en lettres.

    Par exemple convertir 1 144 231.18€ en "un million cent quarante quatre mille deux cent trente et un euros et dix huit centimes"

    Cardtext peut le faire mais seulement jusqu'à 999 999

    Merci

    Fanchigl

    -----

  2. #2
    ProgVal

    Re : Conversion de chiffres en lettres

    Bonjour,

    http://tinyurl.com/yhcq8y3
    Deuxième résultat.

    ProgVal

  3. #3
    sitalgo

    Re : Conversion de chiffres en lettres

    B'jour,

    Excellent le lien.
    Mais si t'as l'gosier, Qu'une armure d'acier, Matelasse. Brassens, Le bistrot.

  4. #4
    Fanchigl

    Re : Conversion de chiffres en lettres

    Citation Envoyé par ProgVal Voir le message
    Bonjour,

    http://tinyurl.com/yhcq8y3
    Deuxième résultat.

    ProgVal
    Bien sûr que j'avais déjà consulté Google. Si le problème était si simple, il n'y aurait pas tant de lien. Ce genre de réponse n'est pas très sympa.

  5. A voir en vidéo sur Futura
  6. #5
    chatelot16

    Re : Conversion de chiffres en lettres

    programmer cela en basic en python ou en c est assez facile

    ce que je ne maitrise pas c'est de le rendre disponible dans word ou open office writer

    cela fait pourtant longtemps que je cherche a integrer du calcul dans un traitement de texte : je trouve lamentable d'ecrire un calcul dans un traitement de texte , et de le réecrire dans la calculatrice pour avoir le resultat

    je ne sais le faire que d'une facon detourné : je decrete que chaque fois qu'il y a le signe === dans une ligne , ce qui precede est un calcul a faire

    chaque fois que je veux faire un calcul j'ecrit ce que je veux calculer , je ferme le traitement de texte , j'ouvre le meme fichier par le programme de calcul et il ajoute les resultat de calcul au fichier

    au passage il remplace les === par un simple = pour ne pas refaire une 2eme fois le meme calcul si je le relance une 2eme fois

    je pourait donc ajouter a ce genre de programme la conversion de chiffre en lettre

    reste a trouver une solution pour integrer proprement un programme a un traitement de texte

    qui a des idées ?

  7. #6
    SuperTux

    Re : Conversion de chiffres en lettres

    reste a trouver une solution pour integrer proprement un programme a un traitement de texte
    Avec une macro (sous OOo le python est possible je crois) tout betement, mais il ne faut pas s'attendre à des miracles en terme de performance je pense. Sinon en plus compliqué pour que ce soit un vrai programme compilé, j'ai déja vu sur un Windows / Office une solution à base de "lien OLE" : le programme d'une carte d'acquisition pouvais par ce biais mettre a jour toutes les secondes les cases d'un tableur.

  8. #7
    gaziel45

    Re : Conversion de chiffres en lettres

    Bonjour
    si j'ai bien compris , tu veux transformer un nombre en texte, directement sous word

    si tu maitrise VBA
    je te propose une macro (que j'ai adapté de celle proposée ici), a recopier dans un nouveau module vba:




    Code:
    Public Sub NombreEnText()
    Dim valeur  As String
    valeur = Selection
    Selection = (LesMilliers(valeur))
    End Sub
    
    Public Function LesMilliers(nombre As String) As String
    
    Dim i As Integer, e As Integer, Txt As String
    Dim ValNb(6) As Double
    Dim strResultat(6) As String
    Dim strTemp As String
    Dim a As String
        If val(nombre) < 1 Then LesMilliers = "Zéro": Exit Function
    reco:
         If Len(nombre) / 3 <> Int(Len(nombre) / 3) Then
               nombre = "0" & nombre
             GoTo reco
        End If
        e = (Len(nombre) / 3)
        For i = 0 To e - 1
            Txt = Mid(nombre, (i * 3) + 1, 3)
            ValNb(i) = val(Txt)
            strResultat(i) = Centaine(Txt)
        Next i
        i = 0
        If e > 4 Then 'téra
            strTemp = strResultat(0) & "téra "
            i = i + 1
        End If
        If e > 3 Then 'milliard
            If ValNb(i) = 1 Then a = "milliard " Else a = "milliards "
            strTemp = strTemp & strResultat(i) & "milliard "
            i = i + 1
        End If
        If e > 2 Then 'million
            If ValNb(i) = 1 Then a = "million " Else a = "millions "
            strTemp = strTemp & strResultat(i) & a
            i = i + 1
    
        End If
        If e > 1 Then 'millier
            If ValNb(i) = 1 Then
                strTemp = strTemp & "mille "
            Else
                strTemp = strTemp & strResultat(i) & "mille "
            End If
            i = i + 1
        End If
        If e > 0 Then 'les unités
            strTemp = strTemp & strResultat(i)
        Else 'pas de donnée
            strTemp = "Zéro"
        End If
        LesMilliers = strTemp
        
    End Function
    
    Public Function Centaine(nombre As String) As String
    Dim i As Integer, e(3) As Integer, a As String
    Dim strBuff As String
    Dim Unite(19) As String
    Dim Dixaines(2 To 9) As String
    Unite(0) = ""
    Unite(1) = "un "
    Unite(2) = "deux "
    Unite(3) = "trois "
    Unite(4) = "quatre "
    Unite(5) = "cinq "
    Unite(6) = "six "
    Unite(7) = "sept "
    Unite(8) = "huit "
    Unite(9) = "neuf "
    Unite(10) = "dix "
    Unite(11) = "onze "
    Unite(12) = "douze "
    Unite(13) = "treize "
    Unite(14) = "quatorze "
    Unite(15) = "quinze "
    Unite(16) = "seize "
    Unite(17) = "dix-sept "
    Unite(18) = "dix-huit "
    Unite(19) = "dix-neuf "
    
    Dixaines(2) = "vingt "
    Dixaines(3) = "trente "
    Dixaines(4) = "quarante "
    Dixaines(5) = "cinquante "
    Dixaines(6) = "soixante "
    Dixaines(7) = "soixante-dix "
    Dixaines(8) = "quatre-vingts "
    Dixaines(9) = "quatre-vingts-dix "
    
        For i = 3 To 1 Step -1
            e(i) = val(Mid(nombre, i, 1))
        Next i
        e(0) = val(Right(nombre, 2))
        
        If e(3) = 1 Then strBuff = "et un " Else strBuff = Unite(e(3))
        
        If e(0) < 20 Then
            strBuff = Unite(e(0))
        ElseIf e(0) < 70 Or (e(0) > 79 And e(0) < 90) Then
            strBuff = Dixaines(e(2)) & strBuff
        Else
            If e(0) > 89 Then i = 80 Else i = 60
            strBuff = Dixaines(e(2) - 1) & Unite(e(0) - i)
        End If
        
        'Centaine
        If e(1) = 1 Then
            strBuff = "Cent " & strBuff
        ElseIf e(1) >= 1 Then
            If e(0) = 0 Then a = "cents " Else a = "cent "
            strBuff = Unite(e(1)) & a & strBuff
        End If
        Centaine = strBuff
    End Function
    elle utilise de la façon suivante: tu surligne ton texte dans ton fichier, et tu lance la macro 'NombreEnText', elle te remplace ta sélection , par le nombre en toute lettre
    Tu peux affecter cette macro a un bouton et te faciliter la vie
    attention, cette macro ne prend pas en charge les nombres a virgule, ni les symboles monétaire, mais elle facilement modifiable(par tes soins-il faut bien s'y mettre) pour le faire

    bon courage
    Dernière modification par yoda1234 ; 02/11/2009 à 17h50. Motif: Mise en place de la balise code.

Discussions similaires

  1. conversion de lettres en nombres
    Par invite6beba559 dans le forum Logiciel - Software - Open Source
    Réponses: 9
    Dernier message: 24/08/2011, 22h22
  2. paint, lettres,chiffres
    Par Lycaon dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 11/01/2009, 16h33
  3. touche lettres transformé en chiffres ????
    Par inviteec0801f3 dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 22/12/2007, 18h17
  4. Des chiffres et surtout des lettres
    Par astrogene dans le forum Science ludique : la science en s'amusant
    Réponses: 5
    Dernier message: 02/08/2005, 17h02
Découvrez nos comparatifs produits sur l'informatique et les technologies.