Si requieres aprender a manejar o profundizar tus conocimientos en Excel hazlo con los mejores click acá, si quieres aprender sobre Excel en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet, te lo recomiendo no te arrepentirás.
En el vídeo verás la macro en acción con una explicación más detallada de su codificación y funcionamiento, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestro canal de You Tube, mira el playlist con vídeos relacionados donde podrás ver la macro en acción con una explicación en forma visual que ayudará a entender el ejemplo en forma más fácil.
Private Function Unidades(num, UNO)
Dim U
Dim Cad
U = Array(«un», «dos», «tres», «cuatro», «cinco», «seis», «siete», «ocho», «nueve»)
Cad = «»
If num = 1 Then
If UNO = 1 Then
Cad = Cad & «uno»
Else
Cad = Cad & «un»
End If
Else
Cad = Cad & U(num – 1)
End If
Unidades = Cad
End Function
Private Function Decenas(num1, res)
Dim D1
D1 = Array(«once», «doce», «trece», «catorce», «quince», «dieciseis», «diecisiete», _
«dieciocho», «diecinueve»)
D2 = Array(«diez», «veint», «treinta», «cuarenta», «cincuenta», «sesenta», _
«setenta», «ochenta», «noventa»)
If num1 > 10 And num1 < 20 Then
Cad1 = D1(num1 – 10 – 1)
Else
Cad1 = D2((num1 10) – 1)
If (num1 10) <> 2 Then
If res > 0 Then
Cad1 = Cad1 & » y »
Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
End If
Else
If res = 0 Then
Cad1 = Cad1 & «e»
Else
Cad1 = Cad1 & «i»
Cad1 = Cad1 & Unidades(num1 Mod 10, 0)
End If
End If
End If
Decenas = Cad1
End Function
Private Function Cientos(num2)
num3 = num2 100
Select Case num3
Case 1
If num2 = 100 Then
cad2 = «cien »
Else
cad2 = «ciento »
End If
Case 5
cad2 = «quinientos »
Case 7
cad2 = «setecientos »
Case 9
cad2 = «novecientos »
Case Else
cad2 = Unidades(num3, 0) & «cientos »
End Select
num2 = num2 Mod 100
If num2 > 0 Then
If num2 < 10 Then
cad2 = cad2 & Unidades(num2, num2)
Else
cad2 = cad2 & Decenas(num2, num2 Mod 10)
End If
End If
Cientos = cad2
End Function
Private Function Miles(num4)
If (num4 >= 100) Then
cad3 = Cientos(num4)
Else
If (num4 >= 10) Then
cad3 = Decenas(num4, num4 Mod 10)
Else
cad3 = Unidades(num4, 0)
End If
End If
cad3 = cad3 & » mil »
Miles = cad3
End Function
Private Function Millones(cant)
If cant = 1 Then
ter = » »
Else
ter = «es »
End If
If (cant >= 1000) Then
cantl = cantl & Miles(cant 1000)
cant = cant Mod 1000
End If
If cant > 0 Then
If cant >= 100 Then
cantl = cantl & Cientos(cant)
Else
If cant >= 10 Then
cantl = cantl & Decenas(cant, cant Mod 10)
Else
cantl = cantl & Unidades(cant, 0)
End If
End If
End If
Millones = cantl & » millon» & ter
End Function
Private Function decimales(numero As Single) As Integer
Dim iaux As Integer
iaux = numero – Application.Round(numero, 2)
decimales = iaux
End Function
Function NumeroLetra(IngreseValor As Variant) As String
Dim cants1 As String, num1 As Variant, num2 As Variant
num1 = IngreseValor 1000000
num2 = IngreseValor – (num1 * 1000000)
cents = (num2 * 100) Mod 100
If cents = 0 Then
cents1 = «00»
Else
cents1 = Format(cents)
End If
IngreseValor = IngreseValor – (cents / 100)
If IngreseValor >= 1000000 Then
cantlm = Millones(IngreseValor 1000000)
IngreseValor = IngreseValor Mod 1000000
End If
If IngreseValor > 0 Then
If (IngreseValor >= 1000) Then
cantlm = cantlm & Miles(IngreseValor 1000)
IngreseValor = IngreseValor Mod 1000
End If
End If
If IngreseValor > 0 Then
If IngreseValor >= 100 Then
cantlm = cantlm & Cientos(IngreseValor)
Else
If IngreseValor >= 10 Then
cantlm = cantlm & Decenas(IngreseValor, IngreseValor Mod 10)
Else
cantlm = cantlm & Unidades(IngreseValor, 1)
End If
End If
End If
NumeroLetra = cantlm & » con » & cents1 & «/100 centavos»
End Function
Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.
If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.
Donate:
Cuenta Paypal: https://paypal.me/programarexcel
Cuenta Bitcoin: 1KBGGb8fyDzyR3X1Rie6m7VguzaAfngNbd
Cuenta Ether: 0x41Bbd24556914C83a31217eBb3BC49789b66e407