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
Respuesta de Paulo Pantoja
0
0
Paulo Pantoja, Ingeniería en Gestión Empresarial Especialidad en desarrollo de...
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.
- Compartir respuesta
- Anónimo
ahora mismo