En excel como pongo el importe con letra de una cantidad con numero

quiero saber como convertir un importe o cantidad escrita en  numero a letra

1 respuesta

Respuesta

Encontré este código en la web, no es mía, pero lo coloco aquí y claro que pongo los créditos de quien la creo, espero te sirva.

Coloca este código en un módulo en VBA.

'========================================================================
' Función: Convertir números a letras
'
' Creado por Otto Javier González
' www.youtube.com/ottojaviergonzalez
' Finalizado el 4 de Julio de 2013
'
' Visual Basic Para Microsoft Excel 2013
' Lista de reproducción del curso en YouTube:
' http://www.youtube.com/playlist?list=PLFNWPvtjBMjtnYLCp8KJwD1Ref7WLCIVZ
'
'========================================================================
Option Explicit
Function cMoneda(num As Double) As String
    Dim nEntero As Long
    Dim nDecimal As Double
    Dim Texto As String
    nEntero = Int(num)
    nDecimal = Int(Round((num - nEntero) * 100)) 'Corrección de últimoo momento
    Texto = cNumero(nEntero)
' Agrega la moneda
    If nEntero = 1 Then
        Texto = Texto + " Peso"
       Else
            If (nEntero Mod 1000000) = 0 Then
                Texto = Texto + " De"
            End If
        Texto = Texto + " Pesos"
    End If
'Agrega los centavos
    If nDecimal <> 0 Then
        Texto = Texto + " Con " + cNumero(nDecimal)
            If nDecimal = 1 Then
                Texto = Texto + " Centavo"
            Else
                Texto = Texto + " Centavos"
            End If
    End If
cMoneda = Texto
End Function
Function cNumero(ByVal num As Long) As String
    Dim Texto As String
    Dim cUnidades, cDecenas, cCentenas
    Dim nUnidades, nDecenas, nCentenas As Byte
    Dim nMiles As Long
    Dim nMillones As Long
    CUnidades = Array("", "Un", "Dos", "Tres", "Cuatro", "Cinco", "Seis", "Siete", "Ocho", "Nueve", "Diez", "Once", "Doce", "Trece", "Catorce", "Quince", "Dieciseis", "Diecisite", "Dieciocho", "Diecinueve", "Veinte", "Veintiuno", "Veintidós", "Veintitrés", "Veitnicuatro", "Veinticinco", "Veintiseis", "Veintisiete", "Veintiocho", "Veintinueve")
    cDecenas = Array("", "Diez", "Veinte", "Treinta", "Cuarenta", "Cincuenta", "Sesenta", "Setenta", "Ochenta", "Noventa", "Cien")
    CCentenas = Array("", "Ciento", "Doscientos", "Trescientos", "Cuatrocientos", "Quinientos", "Seiscientos", "Setecientos", "Ochocientos", "Novecientos")
    nMillones = num \ 1000000
    nMiles = (num \ 1000) Mod 1000
    nCentenas = (num \ 100) Mod 10
    nDecenas = (num \ 10) Mod 10
    nUnidades = num Mod 10
 'Evaluación de Millones
            If nMillones = 1 Then
                Texto = "Un Millón" + IIf(num Mod 1000000 <> 0, " " + cNumero(num Mod 1000000), "")
                cNumero = Texto
                Exit Function
            ElseIf nMillones >= 2 And nMillones <= 999 Then
                Texto = cNumero(num \ 1000000) + " Millones" + IIf(num Mod 1000000 <> 0, " " + cNumero(num Mod 1000000), "")
                cNumero = Texto
                Exit Function
'Evaluación de Miles
            ElseIf nMiles = 1 Then
                Texto = "Mil" + IIf(num Mod 1000 <> 0, " " + cNumero(num Mod 1000), "")
                cNumero = Texto
                Exit Function
            ElseIf nMiles >= 2 And nMiles <= 999 Then
                Texto = cNumero(num \ 1000) + " Mil" + IIf(num Mod 1000 <> 0, " " + cNumero(num Mod 1000), "")
                cNumero = Texto
                Exit Function
            End If
'Evaluación desde 0 a 999
            'Casos Especiales
            If num = 100 Then
                Texto = cDecenas(10)
                cNumero = Texto
                Exit Function
            ElseIf num = 0 Then
                Texto = "Cero"
                cNumero = Texto
                Exit Function
            End If
            If nCentenas <> 0 Then
                Texto = cCentenas(nCentenas)
            End If
            If nDecenas <> 0 Then
                    If nDecenas = 1 Or nDecenas = 2 Then
                                If nCentenas <> 0 Then
                                    Texto = Texto + " "
                                End If
                        Texto = Texto + cUnidades(num Mod 100)
                        cNumero = Texto
                        Exit Function
                Else
                        If nCentenas <> 0 Then
                            Texto = Texto + " "
                        End If
                Texto = Texto + cDecenas(nDecenas)
            End If
            End If
            If nUnidades <> 0 Then
                    If nDecenas <> 0 Then
                        Texto = Texto + " y "
                    ElseIf nCentenas <> 0 Then
                        Texto = Texto + " "
                    End If
            Texto = Texto + cUnidades(nUnidades)
            End If
cNumero = Texto
End Function

Colocas el número en la celda "A1" y pones esta formula en la celda B1, "=cmoneda(A1)",te arroja el resultado en la "B1", si ocupas que sea en otra celda sólo cambia a que celda.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas