JDMA
Publicado por Juan (5 intervenciones) el 20/11/2004 23:13:20
HOLA AMIGOS, COMO ESCRIBO EN PALABRAS UN TOTAL, SI TIENEN EL CODIGO ???? GRACIAS
Valora esta pregunta


0
Function ConvertirEnPalabras(ByVal Numero As Double) As String
Dim Unidades As Variant
Dim Decenas As Variant
Dim Centenas As Variant
Dim StrNumero As String
Dim i As Integer
Unidades = Array("", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve", "diez", "once", "doce", "trece", "catorce", "quince", "dieciséis", "diecisiete", "dieciocho", "diecinueve")
Decenas = Array("", "", "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", "ochenta", "noventa")
Centenas = Array("", "ciento", "doscientos", "trescientos", "cuatrocientos", "quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos")
StrNumero = Format(Numero, "0.00")
i = InStr(StrNumero, ".")
If i > 0 Then
ConvertirEnPalabras = ConvertirParteEntera(Mid(StrNumero, 1, i - 1)) & " pesos con " & ConvertirParteDecimal(Mid(StrNumero, i + 1))
Else
ConvertirEnPalabras = ConvertirParteEntera(StrNumero) & " pesos"
End If
End Function
Function ConvertirParteEntera(ByVal ParteEntera As String) As String
Dim Numero As Integer
Dim StrNumero As String
Numero = CInt(ParteEntera)
StrNumero = ""
If Numero < 20 Then
StrNumero = Unidades(Numero)
ElseIf Numero < 100 Then
StrNumero = Decenas(Val(Left(ParteEntera, 1)))
If Right(ParteEntera, 1) <> "0" Then
StrNumero = StrNumero & " y " & Unidades(Val(Right(ParteEntera, 1)))
End If
Else
StrNumero = Centenas(Val(Left(ParteEntera, 1)))
If Val(Mid(ParteEntera, 2)) <> 0 Then
StrNumero = StrNumero & " " & ConvertirParteEntera(Mid(ParteEntera, 2))
End If
End If
ConvertirParteEntera = StrNumero
End Function
Function ConvertirParteDecimal(ByVal ParteDecimal As String) As String
Dim Numero As Integer
Dim StrNumero As String
Numero = CInt(ParteDecimal)
StrNumero = ""
If Numero < 20 Then
StrNumero = Unidades(Numero)
ElseIf Numero < 100 Then
StrNumero = Decenas(Val(Left(ParteDecimal, 1)))
If Right(ParteDecimal, 1) <> "0" Then
StrNumero = StrNumero & " y " & Unidades(Val(Right(ParteDecimal, 1)))
End If
End If
ConvertirParteDecimal = StrNumero
End Function