Consultoría tecnológica a tu alcance
Ver todos nuestros servicios

Llámanos: (051) 904 652 161
Lunes - Viernes | 8 a 5 pm

Correo para información
ventas@vrsolutionstec.com

Av. Arica 1271
Lima - Breña

Convertir números a letras en Excel

Tabla de contenidos

Número a letras

Convertir números a letras en Excel es una tarea que muchos usuarios emplean, pero la herramienta aún no tiene una función que nos permita hacer esto fácilmente, por lo que necesitamos crear una función personalizada para hacerlo.
Está función que se mostrará es soportado para la mayoría de países, al final de este artículo te mostraré cómo cambiar la función para mostrar el nombre de la moneda de su país, porque la función predeterminada es mostrar «Sol», que es la moneda que corresponde a Perú.

Mostrar pestaña programador

La pestaña Programador no se muestra de forma predeterminada, pero puede agregarla a la cinta de opciones.

  • En la pestaña Archivo, vaya a Opciones> Personalizar cinta de opciones.
  • En Personalizar la cinta de opciones y Pestañas principales, active la casilla Programador.

Después de mostrar la pestaña, la pestaña Programador permanece visible, a menos que desactive la casilla o tenga que volver a instalar Microsoft Office programa.

La pestaña Desarrollador es el lugar al que puede ir cuando quiera hacer o usar lo siguiente:

  • Escribir macros.
  • Ejecutar macros previamente grabadas.
  • Usar comandos XML.
  • Usar controles ActiveX.
  • Crear aplicaciones para usar con programas de Microsoft Office.
  • Usar controles de formularios en Microsoft Excel.
  • Trabajar con ShapeSheet en Microsoft Visio.
  • Crear nuevas formas y galerías de símbolos en Microsoft Visio.


Numero Letras En Excel - 1

Accediendo visual basic en Excel

Una vez que activamos la pestaña de programador, nos dirigimos a la opción Visual Basic, dentro de ello ubicamos nuestro proyecto en el caso que tenga varios, para nuestro caso se llama Proverbio 1 Luxor.xlsm, añadimos un nuevo modulo, pude renombrarlo o dejarlo por defecto.

Es importante considerar que una vez culminado el archivo Excel se tiene que guardar con extensión para macros.

Código de número a letras

En el módulo nuevo que creo, dentro de ella emplear el siguiente código, luego le damos en guardar.

Se está empleando una función llamado LuxorLetras que pide 3 parámetros unos obligatoria y 2 opcionales, el primero es el valor del número, las otras 2 son la descripción de la moneda del país en singular o plural.

				
					Function LuxorLetras(Valor As Currency, Optional MonSin As String = "SOL", Optional MonPlu As String = "SOLES") As String
Dim Cantidad As Currency
Dim Centimos As Currency
Dim Digito As Byte
Dim PrimerDigito As Byte
Dim SegundoDigito As Byte
Dim TercerDigito As Byte
Dim Bloque As String
Dim NroBloque As Byte
Dim Unidades As Variant
Dim Decenas As Variant
Dim Centenas As Variant
Dim X As Variant
Dim ValorEntero As Long
Dim ValorOriginal As Double

    BloqueCero = 0
    Valor = Round(Valor, 2)
    Cantidad = Int(Valor)
    ValorEntero = Cantidad
    Centimos = (Valor - Cantidad) * 100
    Unidades = Array("UN", "DOS", "TRES", "CUATRO", "CINCO", "SEIS", "SIETE", "OCHO", "NUEVE", "DIEZ", "ONCE", "DOCE", "TRECE", "CATORCE", "QUINCE", "DIECISEIS", "DIECISIETE", "DIECIOCHO", "DIECINUEVE", "VEINTE", "VEINTIUN", "VEINTIDOS", "VEINTITRES", "VEINTICUATRO", "VEINTICINCO", "VEINTISEIS", "VEINTISIETE", "VEINTIOCHO", "VEINTINUEVE")
    Decenas = Array("DIEZ", "VEINTE", "TREINTA", "CUARENTA", "CINCUENTA", "SESENTA", "SETENTA", "OCHENTA", "NOVENTA")
    Centenas = Array("CIENTO", "DOSCIENTOS", "TRESCIENTOS", "CUATROCIENTOS", "QUINIENTOS", "SEISCIENTOS", "SETECIENTOS", "OCHOCIENTOS", "NOVECIENTOS")
    NroBloque = 1
 
    Do
        PrimerDigito = 0
        SegundoDigito = 0
        TercerDigito = 0
        Bloque = ""
        BloqueCero = 0
        For X = 1 To 3
            Digito = Cantidad Mod 10
            If Digito <> 0 Then
                Select Case X
                Case 1
                    Bloque = " " & Unidades(Digito - 1)
                    PrimerDigito = Digito
                Case 2
                    If Digito <= 2 Then
                        Bloque = " " & Unidades((Digito * 10) + PrimerDigito - 1)
                    Else
                        Bloque = " " & Decenas(Digito - 1) & IIf(PrimerDigito <> 0, " Y", Null) & Bloque
                    End If
                    SegundoDigito = Digito
                Case 3
                    Bloque = " " & IIf(Digito = 1 And PrimerDigito = 0 And SegundoDigito = 0, "CIEN", Centenas(Digito - 1)) & Bloque
                    TercerDigito = Digito
                End Select
            Else
                BloqueCero = BloqueCero + 1
            End If
            Cantidad = Int(Cantidad / 10)
            If Cantidad = 0 Then
                Exit For
            End If
        Next X
        Select Case NroBloque
            Case 1
                LuxorLetras = Bloque
            Case 2
                LuxorLetras = Bloque & IIf(BloqueCero = 3, Null, " MIL") & LuxorLetras
            Case 3
                LuxorLetras = Bloque & IIf(PrimerDigito = 1 And SegundoDigito = 0 And TercerDigito = 0, " MILLON", " MILLONES") & LuxorLetras
        End Select
        NroBloque = NroBloque + 1
    Loop Until Cantidad = 0
 
 
    If Valor >= 1000000000 Then
        Dim millardos As Currency
        Dim millarodsInt As Integer
        Dim letras_Millardos As String
        millarodsInt = Int(Valor / 1000000000)
        millardos = millarodsInt
     
        letras_Millardos = Replace(Trim(LuxorLetras(millardos)), "00/100", IIf(millarodsInt = 1, "MIL MILLONES", "MIL MILLONES"))
        LuxorLetras = letras_Millardos & LuxorLetras
    End If
 
    LuxorLetras = Trim(LuxorLetras) & " " & Format(Str(Centimos), "00") & "/100 " & IIf(ValorEntero = 1, MonSin, MonPlu)
End Function


				
			
Empleando función en la hoja de Excel

Una vez de realizar en el módulo que se creo y lo guardamos, nos dirigimos a la hoja de Excel y simplemente cómo una formula mas introducimos la función de la siguiente manera, en la celda donde desea visualizar el texto ingresamos =LuxorLetras(Tu número) le das enter y te mostrará tu número convertido en letras.

Numero Letras En Excel - 2

Descargar ejemplo

En el siguiente enlace puede descargar el ejemplo que se efectuó. Proverbio 1 Luxor

En caso de argumentar o consultar emplear los comentarios para una mejor experiencia y seguir aprendiendo entre todos, recuerda que en VR Solutions Tec manejamos diversos tipos de servicios que está a tu disposición, esperemos que este contenido sea de apoyo.

Compartir artículo en redes sociales:
Acerca del autor
Picture of Victor Ramirez

Victor Ramirez

Ing. De Sistemas, consultor TI

Cuento con posgrados en España, MBA de Big Data y Master de Business Intelligence. Me gusta compartir conocimientos y experiencias.

Puede que esto te interese...
Artículos Relacionados
Comentarios

2 respuestas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *