Conversión de números a letras en Excel 2016

Resuelto
gturkmen Mensajes publicados 117 Estado Miembro -  
 BIBO -
Hola,
Tengo Excel 2016 y quisiera convertir números en letras, como por ejemplo 112,20€ = ciento doce euros y veinte céntimos. He probado varios módulos, pero no funcionan en Excel 2016. ¿Tienes alguna idea?

Configuración: Windows / Firefox 55.0

4 respuestas

  1. mchotard Mensajes publicados 474 Fecha de registro   Estado Miembro Última intervención   44
     
    Hola
    Intenta copiar esta macro en tu archivo (en Visual Basic). Luego, dentro de tu archivo, copia la fórmula "=chiffrelettre(referencia de la celda de número).
    Yo utilizo esta función y funciona. Si necesitas, envíame un archivo.
    Buena suerte

    Function chiffrelettre(chiffre) ' Youky Dim a As Variant, gros As Variant a = Array("", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", _ "ocho", "nueve", "diez", "once", "doce", "trece", "catorce", "quince", "dieciséis", "diecisiete", _ "dieciocho", "diecinueve", "veinte", "veintiuno", "veintidós", "veintitrés", "veinticuatro", _ "veinticinco", "veintiséis", "veintisiete", "veintiocho", "veintinueve", "treinta", "treinta y uno", _ "treinta y dos", "treinta y tres", "treinta y cuatro", "treinta y cinco", "treinta y seis", "treinta y siete", _ "treinta y ocho", "treinta y nueve", "cuarenta", "cuarenta y uno", "cuarenta y dos", "cuarenta y tres", _ "cuarenta y cuatro", "cuarenta y cinco", "cuarenta y seis", "cuarenta y siete", "cuarenta y ocho", _ "cuarenta y nueve", "cincuenta", "cincuenta y uno", "cincuenta y dos", "cincuenta y tres", _ "cincuenta y cuatro", "cincuenta y cinco", "cincuenta y seis", "cincuenta y siete", "cincuenta y ocho", _ "cincuenta y nueve", "sesenta", "sesenta y uno", "sesenta y dos", "sesenta y tres", _ "sesenta y cuatro", "sesenta y cinco", "sesenta y seis", "sesenta y siete", "sesenta y ocho", _ "sesenta y nueve", "sesenta", "sesenta y diez", "sesenta y once", "sesenta y doce", _ "sesenta y trece", "sesenta y catorce", "sesenta y quince", "sesenta y dieciséis", _ "sesenta y diecisiete", "sesenta y dieciocho", "sesenta y diecinueve", "ochenta", "ochenta y uno", _ "ochenta y dos", "ochenta y tres", "ochenta y cuatro", "ochenta y cinco", _ "ochenta y seis", "ochenta y siete", "ochenta y ocho", "ochenta y nueve", _ "ochenta y diez", "ochenta y once", "ochenta y doce", "ochenta y trece", _ "ochenta y catorce", "ochenta y quince", "ochenta y dieciséis", "ochenta y diecisiete", _ "ochenta y dieciocho", "ochenta y diecinueve") gros = Array("", "billones", "mil millones", "millones", "mil", "euros", "billón", _ "mil millones", "millón", "mil", "euro") sp = Space(1) chaine = "00000000000000" centime = chiffre * 100 - (Int(chiffre) * 100) chiffre = Str(Int(chiffre)): lg = Len(chiffre) - 1: chiffre = Right(chiffre, lg): lg = Len(chiffre) If lg < 15 Then chaine = Mid(chaine, 1, (15 - lg)) Else chaine = "" chiffre = chaine + chiffre 'billones a las centenas gp = 1 For k = 1 To 5 x = Mid(chiffre, gp, 1): c = a(Val(x)) x = Mid(chiffre, 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 = "uno" Then mydz = "un euro" & sp: GoTo fin If t <> "" And t2 = "" And c & d = "" Then mydz = "de 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 <> "uno" Then mydz = c & sp & "centavos " & gros(k) & sp: GoTo fin If d = "" And c = "uno" Then mydz = "centavo " & gros(k) & sp: GoTo fin If d = "uno" And c = "" Then myct = IIf(k = 4, gros(k) & sp, "un " & gros(k + 5) & sp): GoTo fin If d <> "" And c = "uno" Then mydz = "cent" & sp If d <> "" And c <> "" And c <> "uno" 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, " centavo", " centavos") If t = "" Then myct = IIf(centime = 1, " centavo de euro", " centavos de euro") If centime = 0 Then d = "": myct = "" chiffrelettre = t & d & myct End Function
    35
    1. LBO
       
      Super !!! ¡Funciona para mí en EXCEL 2016! Pero, ¿cómo modificar el código para conversión sin símbolo monetario o cambiar el símbolo del euro por el franco CFA?
      0
    2. taoufiq73 Mensajes publicados 1 Estado Miembro
       
      Está bien, muchas gracias.
      0