IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Excel Discussion :

Convertir nombre en texte


Sujet :

Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut Convertir nombre en texte
    Bonjour a tous

    Dans un tableau excel j'ai creer la somme d'une colonne et je voudrais convertir le resultat numerique en texte.j'ai donc ouvert une fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =NUMTEXTE(G22;2;"Euros;Centime;FAUX;;VRAI)
    mai cela me donne un message d'erreur #NOM? j'ai bien appeler l'aide mais sans succes.

    Merci de votre aide

    CORDIALEMENT

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 642
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 642
    Points : 34 349
    Points
    34 349
    Par défaut
    bonjour, chez moi numtexte n'existe pas...
    tu utilises le texte comment par la suite ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    C'est ce que je pense (mauvaise info) par quoi doit je remplacer NUMTEXTE.

    C'est comptable plus bas dans la feuille le resutat est ecrit aussi en texte (comparaison en chiffre et texte.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Napitia,

    Je ne sais pas si c'est ce que vous cherchez mais essayez :


  5. #5
    Membre éprouvé
    Avatar de ouisansdoute
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    931
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 931
    Points : 1 079
    Points
    1 079
    Par défaut
    Il me semble que la fonction numtexte est disponible en utilisant des macros complémentaires... je vais voir pour vous apporter plus de précisions

  6. #6
    Membre averti Avatar de Tdeny
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 287
    Points : 311
    Points
    311
    Par défaut
    ça aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =CONCATENER(CTXT(ref;0);" euros")

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Ciao

    Toutes vos reponses sont juste mais ce n'est pas le resultat que je vloulais obtenir car je me suis peut etre mal exprimer.

    Alors voici ce que je voudrais obtenir:

    25
    25
    Total 50


    Montant en lettres: Cinquante euros

    Voila le resultat que je voudrait obtenir c'est le passage du total en chiffre en montant en lettres

    Merci de votre aide

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 147
    Points
    20 147
    Par défaut
    bonsoir


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    'transforme les entiers et les décimales en lettres
    'Denis Michon
    Function chiffrelettre(s)
    Dim a As Variant, gros As Variant
    a = Array("", "un", "deux", "trois", "quatre", "cinq", "six", "sept", _
    "huit", "neuf", "dix", "onze", "douze", "treize", "quatorze", "quinze", "seize", "dix sept", _
    "dix huit", "dix neuf", "vingt", "vingt et un", "vingt deux", "vingt trois", "vingt quatre", _
    "vingt cinq", "vingt six", "vingt sept", "vingt huit", "vingt neuf", "trente", "trente et un", _
    "trente deux", "trente trois", "trente quatre", "trente cinq", "trente six", "trente sept", _
    "trente huit", "trente neuf", "quarante", "quarante et un", "quarante deux", "quarante trois", _
    "quarante quatre", "quarante cinq", "quarante six", "quarante sept", "quarante huit", _
    "quarante neuf", "cinquante", "cinquante et un", "cinquante deux", "cinquante trois", _
    "cinquante quatre", "cinquante cinq", "cinquante six", "cinquante sept", "cinquante huit", _
    "cinquante neuf", "soixante", "soixante et un", "soixante deux", "soixante trois", _
    "soixante quatre", "soixante cinq", "soixante six", "soixante sept", "soixante huit", _
    "soixante neuf", "soixante dix", "soixante et onze", "soixante douze", "soixante treize", _
    "soixante quatorze", "soixante quinze", "soixante seize", "soixante dix sept", _
    "soixante dix huit", "soixante dix neuf", "quatre-vingts", "quatre-vingt un", _
    "quatre-vingt deux", "quatre-vingt trois", "quatre-vingt quatre", "quatre-vingt cinq", _
    "quatre-vingt six", "quatre-vingt sept", "quatre-vingt huit", "quatre-vingt neuf", _
    "quatre-vingt dix", "quatre-vingt onze", "quatre-vingt douze", "quatre-vingt treize", _
    "quatre-vingt quatorze", "quatre-vingt quinze", "quatre-vingt seize", "quatre-vingt dix sept", _
    "quatre-vingt dix huit", "quatre-vingt dix neuf")
    gros = Array("", "billions", "milliards", "millions", "mille", "euros", "billion", _
    "milliard", "million", "mille", "euro")
    sp = Space(1)
    chaine = "00000000000000"
    centime = s * 100 - (Int(s) * 100)
    s = Str(Int(s)): lg = Len(s) - 1: s = Right(s, lg): lg = Len(s)
    If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = ""
    s = chaine + s
    'billions au centaines
    gp = 1
    For k = 1 To 5
    x = Mid(s, gp, 1): c = a(Val(x))
    x = Mid(s, gp + 1, 2): d = a(Val(x))
    If k = 5 Then
    If t2 <> "" And c & d = "" Then mydz = "Euros" & sp: GoTo Fin
    If t <> "" And c = "" And d = "un" Then mydz = "un euros" & sp: GoTo Fin
    If t <> "" And t2 = "" And c & d = "" Then mydz = "d'euros" & sp: GoTo Fin
    If t & c & d = "" Then myct = "": mydz = "": GoTo Fin
    End If
    If c & d = "" Then GoTo Fin
    If d = "" And c <> "" And c <> "un" Then mydz = c & sp & "cents " & gros(k) & sp: GoTo Fin
    If d = "" And c = "un" Then mydz = "cent " & gros(k) & sp: GoTo Fin
    If d = "un" And c = "" Then myct = IIf(k = 4, gros(k) & sp, "un " & gros(k + 5) & sp): GoTo Fin
    If d <> "" And c = "un" Then mydz = "cent" & sp
    If d <> "" And c <> "" And c <> "un" Then mydz = c & sp & "cent" + sp
    myct = d & sp & gros(k) & sp
    Fin:
    t2 = mydz & myct
    t = t & mydz & myct
    mydz = "": myct = ""
    gp = gp + 3
    Next
    d = a(centime)
    If t <> "" Then myct = IIf(centime = 1, " centime", " centimes")
    If t = "" Then myct = IIf(centime = 1, " centime d'euro", " centimes d'euro")
    If centime = 0 Then d = "": myct = ""
    chiffrelettre = t & d & myct
    End Function

    bonne soirée
    michel

  9. #9
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Une autre fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
     
    Public Function NombreEnTexte(Nb As Double, monnaie As String) As String
    Dim varnum, varnumD, varnumU, varlet, résultat
    'varnum : pour stocker les parties du nombre que l'on va découper
    'varlet : pour stocker la conversion en lettres d'une partie du nombre
    'varnumD : pour stocker la partie dizaine d'un nombre à 2 chiffres
    'varnumU : pour stocker la partie unité d'un nombre à 2 chiffres
    'résultat : pour stocker les résultats intermédiaires des différentes
    'étapes
    Static chiffre(1 To 19) '*** tableau contenant le nom des 19 premiers
    'nombres en lettres
        chiffre(1) = "un"
        chiffre(2) = "deux"
        chiffre(3) = "trois"
        chiffre(4) = "quatre"
        chiffre(5) = "cinq"
        chiffre(6) = "six"
        chiffre(7) = "sept"
        chiffre(8) = "huit"
        chiffre(9) = "neuf"
        chiffre(10) = "dix"
        chiffre(11) = "onze"
        chiffre(12) = "douze"
        chiffre(13) = "treize"
        chiffre(14) = "quatorze"
        chiffre(15) = "quinze"
        chiffre(16) = "seize"
        chiffre(17) = "dix-sept"
        chiffre(18) = "dix-huit"
        chiffre(19) = "dix-neuf"
    Static dizaine(1 To 9) '*** tableau contenant les noms des dizaines
        dizaine(1) = "dix"
        dizaine(2) = "vingt"
        dizaine(3) = "trente"
        dizaine(4) = "quarante"
        dizaine(5) = "cinquante"
        dizaine(6) = "soixante"
        dizaine(7) = "soixante-dix"
        dizaine(8) = "quatre-vingt"
        dizaine(9) = "quatre-vingt-dix"
    '*** Traitement du cas zéro
    If Nb >= 1 Then
        résultat = ""
    Else
        résultat = "zéro"
        GoTo FinTraitement
    End If
    '*** Traitement des millions
    varnum = Int(Nb / 1000000)
    If varnum > 0 Then
        GoSub CentaineDizaine
        résultat = varlet + " million"
        If varlet <> "un" Then résultat = résultat '+ "s"
    End If
    '*** Traitement des milliers
    varnum = Int(Nb) Mod 1000000
    varnum = Int(varnum / 1000)
    If varnum > 0 Then
        GoSub CentaineDizaine
        If varlet <> "un" Then résultat = résultat + " " + varlet
        résultat = résultat + " mille"
    End If
    '*** Traitement des centaines et dizaines
    varnum = Int(Nb) Mod 1000
    If varnum > 0 Then
        GoSub CentaineDizaine
        résultat = résultat + " " + varlet
    End If
    résultat = LTrim(résultat)
    varlet = Right$(résultat, 4)
    '*** Traitement du "s" final pour vingt et cent et du "de" pour million
    Select Case varlet
        Case "cent", "ingt"
            résultat = résultat + "s"
        Case "lion", "ions"
            résultat = résultat + " de"
    End Select
     
    FinTraitement:
    '*** Indication du terme dollar
    résultat = résultat + " " + monnaie
    If Nb >= 2 Then résultat = résultat '+ "s"
    '*** Traitement des cents
    varnum = Int((Nb - Int(Nb)) * 100 + 0.5)   '*** On additionne 0,5 afin de
    'compenser
                                                                        '***
    'les erreurs de calcul dues aux arrondis
    If varnum > 0 Then
        GoSub CentaineDizaine
        résultat = résultat + " et " + varlet + " cent"
        If varnum > 1 Then résultat = résultat '+ "s"
    End If
    '*** Conversion 1ère lettre en majuscule
    résultat = UCase(Left(résultat, 1)) + Right(résultat, Len(résultat) - 1)
    '*** Renvoie du résultat de la fonction et fin de la fonction
    NombreEnTexte = résultat
    Exit Function
     
    CentaineDizaine:
    varlet = ""
    '*** Traitement des centaines
    If varnum >= 100 Then
        varlet = chiffre(Int(varnum / 100))
        varnum = varnum Mod 100
        If varlet = "un" Then
            varlet = "cent "
        Else
            varlet = varlet + " cent "
        End If
    End If
    '*** Traitement des dizaines
    If varnum <= 19 Then '*** Cas où la dizaine est <20
        If varnum > 0 Then varlet = varlet + chiffre(varnum)
    Else
        varnumD = Int(varnum / 10) '*** chiffre des dizaines
        varnumU = varnum Mod 10    '*** chiffre des unités
        Select Case varnumD             '*** génération des dizaines en lettres
            Case Is <= 5
                varlet = varlet + dizaine(varnumD)
            Case 6, 7
                varlet = varlet + dizaine(6)
            Case 8, 9
                varlet = varlet + dizaine(8)
        End Select
        '*** traitement du séparateur des dizaines et unités
        If varnumU = 1 And varnumD < 8 Then
            varlet = varlet + " et "
        Else
            If varnumU <> 0 Or varnumD = 7 Or varnumD = 9 Then
                varlet = varlet + "-"
            End If
        End If
        '*** génération des unités
        If varnumD = 7 Or varnumD = 9 Then varnumU = varnumU + 10
        If varnumU <> 0 Then varlet = varlet + chiffre(varnumU)
    End If
    '*** Suppression des espaces à gauche et retour
    varlet = RTrim(varlet)
    Return
    End Function

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Merci pour les codes

    Mais comment est il possible d'affecter ces codes a une cellule precise dans une feuille exel (car j'ai d'autres code)


  11. #11
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 59
    Points
    59
    Par défaut La solution à ton problème
    Bonsoir napitia,

    Je pense que j'ai une solution à ton problème.
    Le 31 octobre j'ai trouvé une fonction VBA sur la "toile".
    Tout est expliqué, y a ka...
    Voir pièce jointe (un fichier *.zip)!
    Chuss
    Toison

  12. #12
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 124
    Points : 55 905
    Points
    55 905
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par napitia Voir le message
    Merci pour les codes

    Mais comment est il possible d'affecter ces codes a une cellule precise dans une feuille exel (car j'ai d'autres code)

    Ce sont des fonctions qui t'ont été proposées ici. Tu en choisis une, tu la colles dans un module standard vba du classeur concerné, puis tu l'utilises comme une fonction native d'Excel.

    Ok? Si pas ok, reviens, on t'expliquera en détails.

    Bonne continuation

  13. #13
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 8
    Points : 6
    Points
    6
    Par défaut
    Bonjour a tous

    Bonne annee 2008

    Desole pour ma reponse tardive

    ouisansdoute avait raison numtext est bien une fonction lier a une macro complementaire.

    Merci pour les codes ca marche et merci a pierre fauconnier pour l'explication.

    Resolu


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Convertir nombre en texte avec Excel
    Par detail17 dans le forum Excel
    Réponses: 8
    Dernier message: 20/07/2016, 09h25
  2. [XL-2010] supprimer l'espace , convertir le format text en nombre
    Par ghazi.hlioui dans le forum Excel
    Réponses: 1
    Dernier message: 06/03/2014, 14h01
  3. Convertir une zone Texte en nombre ds 1 Requète
    Par gilles91000 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 08/06/2012, 20h19
  4. Convertir d'un texte dynamique à un nombre
    Par slim.bouzrati dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 08/05/2012, 00h23
  5. Convertir des nombres en texte
    Par BEKH_ dans le forum Excel
    Réponses: 4
    Dernier message: 11/06/2008, 14h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo