Función para obtener la cantidad con letra de un número en LibreOffice

Estuve buscando una función para convertir una cantidad de un número a su equivalente con letra en LibreOffice. Para Excel existen varias pero para Calc son un poco más difíciles de encontrar.

Luego me acordé del proyecto Factura Libre que ya incluye una función para hacerlo. Sólo necesitaba buscar el código y pegarlo en un proyecto nuevo.

Tabla de contenidos

Para lograrlo hay que seguir estas instrucciones o descargar el ejemplo.

Dónde agregar el código de la función.

Vamos al menú Herramientas >> Macros >> Organizar macros >> BASIC…

Agregar una macro nueva en BASIC.
Esta es una función macro en BASIC.

Seleccionamos la hoja de cálculo actual, presionamos el botón Nuevo y le ponemos un nombre a nuestro módulo.

Agregamos un módulo nuevo.
Agregamos un módulo nuevo.

Luego en la ventana que aparece pegamos el código de la función.

El código de la función para obtener la cantidad en letra.

Es importante eliminar el código por default del módulo.

REM  *****  BASIC  *****

Sub Main

End Sub

Ahora podemos copiar y pegar el código de la función en el módulo que acabamos de crear.

Option Explicit
'*************************************************************************************************
'	FUNCION PARA CONVERTIR NUMEROS A LETRAS
'
'	Copyright (C) 2005 Mauricio Baeza Servin
'	Este programa es software libre. Puede redistribuirlo y/o modificarlo bajo los términos de la
'	Licencia Pública General de GNU según es publicada por la Free Software Foundation, bien de la
'	versión 2 de dicha Licencia o bien (según su elección) de cualquier versión posterior.
'
'	Este programa se distribuye con la esperanza de que sea útil, pero SIN NINGUNA GARANTÍA, incluso
'	sin la garantía MERCANTIL implícita o sin garantizar la CONVENIENCIA PARA UN PROPÓSITO PARTICULAR.
'	Véase la Licencia Pública General de GNU para más detalles.
'
'	Debería haber recibido una copia de la Licencia Pública General junto con este programa. Si no ha
'	sido así, escriba a la Free Software Foundation, Inc., en 675 Mass Ave, Cambridge, MA 02139, EEUU.
'
'	Mauricio Baeza	-	mauricio@correolibre.net
'
'*************************************************************************************************
'Hago uso de variables bastante explicitas para facilitar la lectura del codigo
'Los comentarios cumplen y complementan la misma funcion

'Ultima modificacion Octubre del 2002
'Argumentos:
'Numero = Valor que deseamos convertir en texto
'Moneda = es el nombre de la moneda a mostrar
'Fraccion_Letras = Verdadero para que la fraccion de la moneda
'                 tambien la convierta a letras
'Fraccion = Es el nombre de la fraccion de la moneda
'Texto_Inicial = Cualquier texto que quieras al principio del resultado
'Texto_Final = Cualquier texto que quieras al finla del resultado
'Estilo = Formato de salida
'           1 = MAYUSCULAS
'           2 = minusculas
'           3 = Tipo Titulo
'Los valores negativos los convierte a positivos
'El valor minimo en 0, el valor maximo es  9,999,999,999,999.99

Function Numeros_Letras(ByVal Numero As Double, _
                    ByVal Moneda As String, _
                    ByVal Fraccion_Letras As Boolean , _
                    ByVal Fraccion As String, _
                    ByVal Texto_Inicial As String, _
                    ByVal Texto_Final As String, _
                    ByVal Estilo As Integer) As String
Dim strLetras As String
Dim NumTmp As String
Dim intFraccion As Integer

  strLetras = Texto_Inicial
  'Convertimos a positivo si es negativo
  Numero = Abs(Numero)
  NumTmp = Format(Numero, "000000000000000.00")
  If Numero < 1 Then
    strLetras = strLetras & "cero " & Plural(Moneda) & " "
  Else
    strLetras = strLetras & NumLet(Val(Left(NumTmp, 15)))
    If Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
      strLetras = strLetras & Moneda & " "
    ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid(NumTmp, 10, 6)) = 0 Then
      strLetras = strLetras & "de " & Plural(Moneda) & " "
    Else
      strLetras = strLetras & Plural(Moneda) & " "
    End If
  End If
  If Fraccion_Letras Then
    intFraccion = Val(Right(NumTmp, 2))
    Select Case intFraccion
      Case 0
        strLetras = strLetras & "con cero " & Plural(Fraccion)
      Case 1
        strLetras = strLetras & "con un " & Fraccion
      Case Else
        strLetras = strLetras & "con " & NumLet(Val(Right(NumTmp, 2))) & Plural(Fraccion)
    End Select
  Else
    strLetras = strLetras & Right(NumTmp, 2)
  End If
  strLetras = strLetras & Texto_Final
  Select Case Estilo
    Case 1
      strLetras = UCase(strLetras)
    Case 2
      strLetras = LCase(strLetras)
    Case 3
      strLetras = strLetras          'StrConv(strLetras, vbProperCase)
  End Select

  Numeros_Letras = strLetras

End Function


Function NumLet(ByVal Numero As Double) As String
  Dim NumTmp As String
  Dim co1 As Integer
  Dim co2 As Integer
  Dim pos As Integer
  Dim dig As Integer
  Dim cen As Integer
  Dim dec As Integer
  Dim uni As Integer
  Dim letra1 As String
  Dim letra2 As String
  Dim letra3 As String
  Dim Leyenda As String
  Dim TFNumero As String

  NumTmp = Format(Numero, "000000000000000")        'Le da un formato fijo
  co1 = 1
  pos = 1
  TFNumero = ""
  'Para extraer tres digitos cada vez
  Do While co1 <= 5
    co2 = 1
    Do While co2 <= 3
      'Extrae un digito cada vez de izquierda a derecha
      dig = Val(Mid(NumTmp, pos, 1))
      Select Case co2
        Case 1: cen = dig
        Case 2: dec = dig
        Case 3: uni = dig
      End Select
      co2 = co2 + 1
      pos = pos + 1
    Loop
    letra3 = Centena(uni, dec, cen)
    letra2 = Decena(uni, dec)
    letra1 = Unidad(uni, dec)

    Select Case co1
      Case 1
        If cen + dec + uni = 1 Then
          Leyenda = "billon "
        ElseIf cen + dec + uni > 1 Then
          Leyenda = "billones "
        End If
      Case 2
        If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
          Leyenda = "mil millones "
        ElseIf cen + dec + uni >= 1 Then
          Leyenda = "mil "
        End If
      Case 3
        If cen + dec = 0 And uni = 1 Then
          Leyenda = "millon "
        ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
          Leyenda = "millones "
        End If
      Case 4
        If cen + dec + uni >= 1 Then
          Leyenda = "mil "
        End If
      Case 5
        If cen + dec + uni >= 1 Then
          Leyenda = ""
        End If
      End Select

      co1 = co1 + 1
      TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda

      Leyenda = ""
      letra1 = ""
      letra2 = ""
      letra3 = ""
  Loop

  NumLet = TFNumero

End Function


Function Centena(ByVal uni As Integer, ByVal dec As Integer, _
                         ByVal cen As Integer) As String
Dim cTexto As String

  Select Case cen
    Case 1
      If dec + uni = 0 Then
        cTexto = "cien "
      Else
        cTexto = "ciento "
      End If
    Case 2: cTexto = "doscientos "
    Case 3: cTexto = "trescientos "
    Case 4: cTexto = "cuatrocientos "
    Case 5: cTexto = "quinientos "
    Case 6: cTexto = "seiscientos "
    Case 7: cTexto = "setecientos "
    Case 8: cTexto = "ochocientos "
    Case 9: cTexto = "novecientos "
    Case Else: cTexto = ""
  End Select
  Centena = cTexto

End Function


Function Decena(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String

  Select Case dec
    Case 1:
      Select Case uni
        Case 0: cTexto = "diez "
        Case 1: cTexto = "once "
        Case 2: cTexto = "doce "
        Case 3: cTexto = "trece "
        Case 4: cTexto = "catorce "
        Case 5: cTexto = "quince "
        Case 6 To 9: cTexto = "dieci"
      End Select
    Case 2:
      If uni = 0 Then
        cTexto = "veinte "
      ElseIf uni > 0 Then
        cTexto = "veinti"
      End If
    Case 3: cTexto = "treinta "
    Case 4: cTexto = "cuarenta "
    Case 5: cTexto = "cincuenta "
    Case 6: cTexto = "sesenta "
    Case 7: cTexto = "setenta "
    Case 8: cTexto = "ochenta "
    Case 9: cTexto = "noventa "
    Case Else: cTexto = ""
  End Select

  If uni > 0 And dec > 2 Then cTexto = cTexto + "y "

  Decena = cTexto

End Function


Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
Dim cTexto As String

  If dec <> 1 Then
    Select Case uni
      Case 1: cTexto = "un "
      Case 2: cTexto = "dos "
      Case 3: cTexto = "tres "
      Case 4: cTexto = "cuatro "
      Case 5: cTexto = "cinco "
    End Select
  End If
  Select Case uni
    Case 6: cTexto = "seis "
    Case 7: cTexto = "siete "
    Case 8: cTexto = "ocho "
    Case 9: cTexto = "nueve "
  End Select

  Unidad = cTexto

End Function


'Funcion que convierte al plural el argumento pasado
Private Function Plural(ByVal Palabra As String) As String
Dim pos As Integer
Dim strPal As String

  If Len(Trim(Palabra)) > 0 Then
    pos = InStr(1, "aeiou", Right(Palabra, 1), 1)
    If pos > 0 Then
      strPal = Palabra & "s"
    Else
      strPal = Palabra & "es"
    End If
  End If
  Plural = strPal

End Function
Código de la función ¡Listo!

Ajustando la cantidad con letra para México

La función tiene 7 parámetros.

  • Numero = Valor que deseamos convertir en texto
  • Moneda = es el nombre de la moneda a mostrar
  • Fraccion_Letras = Para que la fracción de la moneda tambien la convierta a letras. 1 es VERDADERO, 0 (cero) es FALSO.
  • Fraccion = Es el nombre de la fraccion de la moneda
  • Texto_Inicial = Cualquier texto que quieras al principio del resultado
  • Texto_Final = Cualquier texto que quieras al final del resultado
  • Estilo = Formato de salida 1 = MAYÚSCULAS, 2 = minúsculas , 3 = Tipo Titulo

Los valores negativos los convierte a positivos. El valor minimo es 0, el valor maximo es 9,999,999,999,999.99

Veamos, una fórmula como está dará el siguiente resultado:

=NUMEROS_LETRAS(B4, "peso",0, "centavos", "Cantidad: ", "/100 M.N.",1)

CANTIDAD: UN MIL DOSCIENTOS TREINTA Y CINCO PESOS 15/100 M.N.

Descarga una hoja de cálculo de ejemplo.

Si lo desean pueden descargar esta hoja de cálculo que muestra como se usa la función LibreOffice Números a Letras.ods

La función muestra la cantidad con letra con diferentes opciones de personalización.
La función muestra la cantidad con letra con diferentes opciones de personalización.

Revisando las opciones de seguridad

Un detalle final, si descarga el archivo de ejemplo, es probable que reciba una alerta de seguridad.

Alerta de seguridad sobre macros en LibreOffice.

Es normal porque es cierto, el archivo contiene una macro. Solo tiene que presionar el botón de Activar macros para que funcione o si es usted muy desconfiado, pues a copiar y pegar el código.

Si vas a usar frecuentemente el archivo este mensaje puede parecer un poco molesto. Puedes ir a OpcionesLibreOfficeSeguridadSeguridad de macros y tienes dos opciones. Bajar el nivel de seguridad o lo que yo hago, agregar una carpeta a las Ubicaciones de archivos de confianza.

Esta es mi solución favorita.

Muchas Gracias a Mauricio Baeza por liberar este código bajo la licencia GPL.

49 comentarios en “Función para obtener la cantidad con letra de un número en LibreOffice”

  1. En excel se puede crear un complemento (archivo xla) para que siempre este disponible en cualquier documento, ¿Alquien sabe si se puede hacer los mismo en Libreoffice? salu2 a to2

    Responder
  2. Buenas amigo, alguien sabria como configurar este macro para que en la primera linea de letras me aparezca la palabra “con” justo antes de los decimales… Y como hago para quitar el simbolo de la moneda ($) que aparece automaticamente al presionar enter luego de introducir la cantidad…

    Responder
  3. Hola César, para quitar el símbolo de moneda sólo tienes que quitarle el formato de moneda, es parecido a excel. Sólo dale formato a la celda.

    Con respecto al “con” creo que es como en el tercer ejemplo que aparece en la imagen. ¿Podrías decirme exactamente como lo quieres?

    Saludos.

    Responder
  4. Buena funcion, creo que podria se muy util pues en documentos como pagares, letras de cambio o recibos generalmente se escribe el numero en palabras. seria inteesante pasar el codigo a PHP paa poder ofrecer esta funcion en un sitio web

    Gracias.

    Responder
  5. Si, el detalle es que la necesito para varios archivos que tengo para mi trabajo… y tengo una base de datos bastante extensa.

    Agradecido de antemano

    Linuxman

    Amigo, no necesitas instalar la macro, el archivo de descarga ya la tiene integrada.

    ¿Que error te da?

    Hermano por mas que intento instalar dicha macro (Numeros a Letras) en mi computadora, siguiendo todos los pasos y procedimientos que indicas, la misma me da un error.

    Responder
    • Hola Victor,

      Solo para revisar si había alguna adaptación en el texto de este artículo, seguí estos mismos pasos en una instalación nueva que tengo de Libreoffice y funciona perfectamente.

      Creo que con esta es la tercera vez que te pregunto ¿Qué error te muestra? y no me dices cual es o en su defecto comparte una captura de pantalla con el error. Sin más información no puedo ayudarte.

      Saludos.

      Responder
    • Fe de errata…repito la solicitud

      Ej. 2350,25= se lee DOS MIL TRECIENTOS CINCUENTA CON 25/100 ; Es decir quiero combinar el prefijo “con” y la expresion decimal 00/100…Así suele hacerse en Venezuela..

      Agradecido

      Responder
      • Hola Victor,

        Ya ve, no era tan difícil decir exactamente lo que quieres, porque no era un error.

        Tendrías que modificar el código para que muestre la cantidad con letra exactamente como lo deseas.

        Saludos.

        Responder
        • Muchas gracias hermano, ese es el detalle de todo el problema… No logro identificar en la codificación del lenguaje la forma para colocar el prefijo “con” antes de 00/100.

          Responder
      • FUNCIÓN:

        =NUMEROS_LETRAS(I39; “bolívar”;0; “centimo”; ” “; “/100 centimos “;1)

        CODIGO:

        Function Numeros_Letras(ByVal Numero As Double, _
        ByVal Moneda As String, _
        ByVal Fraccion_Letras As Boolean , _
        ByVal Fraccion As String, _
        ByVal Texto_Inicial As String, _
        ByVal Texto_Final As String, _
        ByVal Estilo As Integer) As String
        Dim strLetras As String
        Dim NumTmp As String
        Dim intFraccion As Integer

        strLetras = Texto_Inicial
        ‘Convertimos a positivo si es negativo
        Numero = Abs(Numero)
        NumTmp = Format(Numero, “000000000000000.00”)
        If Numero < 1 Then
        strLetras = strLetras & “cero ” & Plural(Moneda) & ” ”
        Else
        strLetras = strLetras & NumLet(Val(Left(NumTmp, 15)))
        If Val(NumTmp) = 1 Or Val(NumTmp) < 2 Then
        strLetras = strLetras & Moneda & ” ”
        ElseIf Val(Mid(NumTmp, 4, 12)) = 0 Or Val(Mid(NumTmp, 10, 6)) = 0 Then
        strLetras = strLetras & “de ” & Plural(Moneda) & ” ”
        Else
        strLetras = strLetras & Plural(Moneda) & ” ”
        End If
        End If
        If Fraccion_Letras Then
        intFraccion = Val(Right(NumTmp, 2))
        Select Case intFraccion
        Case 0
        strLetras = strLetras & “con cero ” & Plural(Fraccion)
        Case 1
        strLetras = strLetras & “con un ” & Fraccion
        Case Else
        strLetras = strLetras & “con ” & NumLet(Val(Right(NumTmp, 2))) & Plural(Fraccion)
        End Select
        Else
        strLetras = strLetras & Right(NumTmp, 2)
        End If
        strLetras = strLetras & Texto_Final
        Select Case Estilo
        Case 1
        strLetras = UCase(strLetras)
        Case 2
        strLetras = LCase(strLetras)
        Case 3
        strLetras = strLetras ‘StrConv(strLetras, vbProperCase)
        End Select

        Numeros_Letras = strLetras

        End Function

        Function NumLet(ByVal Numero As Double) As String
        Dim NumTmp As String
        Dim co1 As Integer
        Dim co2 As Integer
        Dim pos As Integer
        Dim dig As Integer
        Dim cen As Integer
        Dim dec As Integer
        Dim uni As Integer
        Dim letra1 As String
        Dim letra2 As String
        Dim letra3 As String
        Dim Leyenda As String
        Dim TFNumero As String

        NumTmp = Format(Numero, “000000000000000”) ‘Le da un formato fijo
        co1 = 1
        pos = 1
        TFNumero = “”
        ‘Para extraer tres digitos cada vez
        Do While co1 <= 5
        co2 = 1
        Do While co2 <= 3
        ‘Extrae un digito cada vez de izquierda a derecha
        dig = Val(Mid(NumTmp, pos, 1))
        Select Case co2
        Case 1: cen = dig
        Case 2: dec = dig
        Case 3: uni = dig
        End Select
        co2 = co2 + 1
        pos = pos + 1
        Loop
        letra3 = Centena(uni, dec, cen)
        letra2 = Decena(uni, dec)
        letra1 = Unidad(uni, dec)

        Select Case co1
          Case 1
            If cen + dec + uni = 1 Then
              Leyenda = "billon "
            ElseIf cen + dec + uni > 1 Then
              Leyenda = "billones "
            End If
          Case 2
            If cen + dec + uni >= 1 And Val(Mid(NumTmp, 7, 3)) = 0 Then
              Leyenda = "mil millones "
            ElseIf cen + dec + uni >= 1 Then
              Leyenda = "mil "
            End If
          Case 3
            If cen + dec = 0 And uni = 1 Then
              Leyenda = "millon "
            ElseIf cen > 0 Or dec > 0 Or uni > 1 Then
              Leyenda = "millones "
            End If
          Case 4
            If cen + dec + uni >= 1 Then
              Leyenda = "mil "
            End If
          Case 5
            If cen + dec + uni >= 1 Then
              Leyenda = ""
            End If
          End Select
        
          co1 = co1 + 1
          TFNumero = TFNumero + letra3 + letra2 + letra1 + Leyenda
        
          Leyenda = ""
          letra1 = ""
          letra2 = ""
          letra3 = ""
        

        Loop

        NumLet = TFNumero

        End Function

        Function Centena(ByVal uni As Integer, ByVal dec As Integer, _
        ByVal cen As Integer) As String
        Dim cTexto As String

        Select Case cen
        Case 1
        If dec + uni = 0 Then
        cTexto = “cien ”
        Else
        cTexto = “ciento ”
        End If
        Case 2: cTexto = “doscientos ”
        Case 3: cTexto = “trescientos ”
        Case 4: cTexto = “cuatrocientos ”
        Case 5: cTexto = “quinientos ”
        Case 6: cTexto = “seiscientos ”
        Case 7: cTexto = “setecientos ”
        Case 8: cTexto = “ochocientos ”
        Case 9: cTexto = “novecientos ”
        Case Else: cTexto = “”
        End Select
        Centena = cTexto

        End Function

        Function Decena(ByVal uni As Integer, ByVal dec As Integer) As String
        Dim cTexto As String

        Select Case dec
        Case 1:
        Select Case uni
        Case 0: cTexto = “diez ”
        Case 1: cTexto = “once ”
        Case 2: cTexto = “doce ”
        Case 3: cTexto = “trece ”
        Case 4: cTexto = “catorce ”
        Case 5: cTexto = “quince ”
        Case 6 To 9: cTexto = “dieci”
        End Select
        Case 2:
        If uni = 0 Then
        cTexto = “veinte ”
        ElseIf uni > 0 Then
        cTexto = “veinti”
        End If
        Case 3: cTexto = “treinta ”
        Case 4: cTexto = “cuarenta ”
        Case 5: cTexto = “cincuenta ”
        Case 6: cTexto = “sesenta ”
        Case 7: cTexto = “setenta ”
        Case 8: cTexto = “ochenta ”
        Case 9: cTexto = “noventa ”
        Case Else: cTexto = “”
        End Select

        If uni > 0 And dec > 2 Then cTexto = cTexto + “y “

        Decena = cTexto

        End Function

        Function Unidad(ByVal uni As Integer, ByVal dec As Integer) As String
        Dim cTexto As String

        If dec <> 1 Then
        Select Case uni
        Case 1: cTexto = “un ”
        Case 2: cTexto = “dos ”
        Case 3: cTexto = “tres ”
        Case 4: cTexto = “cuatro ”
        Case 5: cTexto = “cinco ”
        End Select
        End If
        Select Case uni
        Case 6: cTexto = “seis ”
        Case 7: cTexto = “siete ”
        Case 8: cTexto = “ocho ”
        Case 9: cTexto = “nueve ”
        End Select

        Unidad = cTexto

        End Function

        ‘Funcion que convierte al plural el argumento pasado
        Private Function Plural(ByVal Palabra As String) As String
        Dim pos As Integer
        Dim strPal As String

        If Len(Trim(Palabra)) > 0 Then
        pos = InStr(1, “aeiou”, Right(Palabra, 1), 1)
        If pos > 0 Then
        strPal = Palabra & “s”
        Else
        strPal = Palabra & “es con”
        End If
        End If
        Plural = strPal

        End Function

        Sub Macro1

        End Sub

        Responder
  6. amigo buenos días, estoy utilizando libre office 5 en sistema canaima, por mas que intento que la formula funcione me da error.
    Se produjo un error de entorno al ejecutar la secuencia de órdenes Standard.numeroALetras.NumLet escrita en Basic.

    Mensaje: wrong number of parameters!

    quisiera saber si cuentan con la hoja de ejemplo que ustedes colocaron o si me podeis ayudar. un abrazo y que la fuerza los acompañe.

    Responder
    • Buenos días Victor,

      Hice una corrección al artículo y ya es posible descargar la hoja de cálculo. Esta en un archivo zip. Lo acabo de revisar y funciona sin problemas en la última versión de LibreOffice.

      Saludos 🙂

      Responder
  7. Buen día
    he intentado instalar esta función pero no logro que me funcione, este es el error que me sale, agradecería mucho la ayuda

    Se produjo un error de entorno al ejecutar la secuencia de órdenes Standard.NUMEROALETRA.Centena escrita en Basic.

    Mensaje: wrong number of parameters!

    Responder
    • Hola Nora,

      La función utiliza 7 parámetros separados por comas. Mira este ejemplo:

      Ejemplo de uso de la función.

      También puedes descargar la hoja de cálculo al final de este artículo para que veas como funciona.

      Saludos.

      Responder
  8. Muchisimas gracias por este código! Soy contador y no sabés lo que es agregar a mano 500 numeros a letras de cada bono de sueldo!

    Ya mismo agrego la página en favoritos!

    Bendiciones desde Mendoza Argentina

    Responder
  9. Hola, solo agradecer por compartir esta macro, yo lo he adecuado para usarlo para convertir montos en letras y que me agregue tanto los colones como los centimos, y ha sido una maravilla. intentaré compartir aquí como ha quedado el código
    (código … mucho código)

    Responder
  10. hola, segui tus instrucciones para pegar el codigo pero me aparece un error, asi que me descargue el archivo numeros-a-letras.ods , sin embargo no me aparecio la cantidad en letra

    Función para convertir de número a cantidad con letra.

    $1,235.15

    #VALOR!

    #VALOR!

    #VALOR!

    Si lo desean, pueden consultar
    https://linuxmanr4.com/2011/11/29/funcion-para-convertir-de-numero-a-cantidad-con-letra-en-libreoffice-calc/

    me podrias ayudar? estoy utilizando openoffice4.1.5

    Responder
  11. Pasa lo mismo:
    —-Quote—-
    Función para convertir de número a cantidad con letra.

    $1,235.15

    #VALOR!

    #VALOR!

    #VALOR!
    —-Unquote—-
    No es cosa de Oper o LibreOffice. Yo uso libre office.
    Puse las macros en el nivel de seguridad más bajo y ni asi.
    ¿Puedes dar una respuesta a este problema?
    Saludos

    Responder
    • me pasaba lo mismo, hice los cambios de seguridad a medio, y reinicie el programa, ya me apareció ventana de si quiero habilitar macros… le di Yes.. y ya funciono a la perfección,…

      Responder
  12. Pues me gustaría ayudarte, pero no se que es lo que esta pasando en tu equipo. Lo acabo de revisar con la versión que tengo y descargando el mismo archivo de ejemplo y funciona.

    Numero a Letra Funcionando , Julio 2019

    ¿Copiaste el código? ¿O bajaste el archivo de ejemplo?.

    Responder
    • Hola! es muy util. solo que no me funciona. Es como que no reconoce la nueva funcion. El archivo que descargué sale con error ¡VALOR! quizás esté copiando mal el codigo

      Responder
      • Hola Yamila,

        Primero y antes que nada. Gracias por comentar.

        Vámonos por pasos. ¿Descargaste el archivo de ejemplo y activaste las macros?. Si no activas las macros te va a aparecer el error de VALOR al llamar la función.

        Acabo acabo de descargar el archivo de ejemplo para revisar si hay algún problema con las nuevas versiones de LibreOffice y funciona muy bien.

        Saludos !!!

        Responder
  13. este es el primer código de macros para esta función que realmente me funciono. Probé con muchos de otras paginas web y nunca me funcionaban, asi que a mi me sirvio mucho. Muchas gracias!!! 🙂

    Responder

¡Me encantaría saber que opinas!

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.