Recibos de sueldos
Necesito ayuda para crear con excel recibos de sueldo tipo tango si alguien puede ayudarme desde ya gracias
1 Respuesta
Respuesta de christianace
1
1
christianace, Christian Acevedo Apablaza Dpto
A que te refieres "tipo tango".. favor explicar y te ayudo
Osea quisiera armar algo para no tener que estar cambiando todas las quincenas todos los datos de los obreros horas fecha y los importes en texto en cada recibo y en cada parte del libro osea cargar todo de una sola vez no cortando y copiando el mismo texto muchas veces y ese tipo de cosas no se si me entiendes
OK. Es super sencillo lo que debes realizar, lo que aprenderás es hacer una macro, lo cual después solo con un paso Excel recordara todo lo que grabaste en cuya MACRO.
Por lo cual te enseñare con ejemplo como lo debes hacer:
http://es.geocities.com/christian_acevedo_a/Ejemplos/Macros.doc
Ve a esta dirección y puedes descargar manual que te envío... suerte.. no olvides en calificar
Por lo cual te enseñare con ejemplo como lo debes hacer:
http://es.geocities.com/christian_acevedo_a/Ejemplos/Macros.doc
Ve a esta dirección y puedes descargar manual que te envío... suerte.. no olvides en calificar
¿Pero y cuales son los códigos para armar las macros? Ah! Y el tema del numero que lo pasa a texto me pone el texto en pesetas, minúsculas y sin contemplar los centavos me redondea y por ahí no me sirve el código que le puse al visual es Declare Sub Recibo Lib "dlltcast.dll" (cifra As Long, ByVal _
Texto As String)
Function letras(minumero)
Dim texto As String * 255
Dim cifra As Long
texto = String(255, 0)
cifra = CLng(minumero)
Call Recibo(cifra, texto)
letras = texto
End Function
Este código yo no lo se armar lo copie me haría falta que me expliques como se hacen los códigos así no tengo que molestarte más ya conociendo los códigos me las debería arreglar para hacer las macros que necesite muchas gracias
Texto As String)
Function letras(minumero)
Dim texto As String * 255
Dim cifra As Long
texto = String(255, 0)
cifra = CLng(minumero)
Call Recibo(cifra, texto)
letras = texto
End Function
Este código yo no lo se armar lo copie me haría falta que me expliques como se hacen los códigos así no tengo que molestarte más ya conociendo los códigos me las debería arreglar para hacer las macros que necesite muchas gracias
La idea de este foro es amprender, y me parece excelente que estés en es plano.
En esta dirección puedes bajar un curso muy interesante en macros y códigos, que a mi en mis incios me ayudo bastante,
http://es.geocities.com/christian_acevedo_a/Ejemplos/Excel.pdf
Ahora el código que transforma de numero a texto, osea (25000= Veinticinco mil)
Es el siguiente :
'Funciones para convertir de números a letras
'Llamada : PsDls(Número,Formato) - Formato 1-Pesos, 2-Dólares
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
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
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
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
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
Function decimales(numero As Single) As Integer
Dim iaux As Integer
iaux = numero - Application.Round(numero, 2)
decimales = iaux
End Function
Function PsDls(cantm As Variant, ByVal mon As Integer) As String
Dim cants1 As String, num1 As Variant, num2 As Variant
num1 = cantm \ 1000000
num2 = cantm - (num1 * 1000000)
cents = (num2 * 100) Mod 100
If cents = 0 Then
cents1 = "00"
Else
cents1 = Format(cents)
End If
cantm = cantm - (cents / 100)
If cantm >= 1000000 Then
cantlm = Millones(cantm \ 1000000)
cantm = cantm Mod 1000000
End If
If cantm > 0 Then
If (cantm >= 1000) Then
cantlm = cantlm & Miles(cantm \ 1000)
cantm = cantm Mod 1000
End If
End If
If cantm > 0 Then
If cantm >= 100 Then
cantlm = cantlm & Cientos(cantm)
Else
If cantm >= 10 Then
cantlm = cantlm & Decenas(cantm, cantm Mod 10)
Else
cantlm = cantlm & Unidades(cantm, 1)
End If
End If
End If
If mon = 1 Then
PsDls = "" & cantlm & " PESOS " & "//"
Else
PsDls = "(" & cantlm & " DOLARES " & cents1 & "/100 U.S.D.)"
End If
End Function
Sub prueba()
Dim res As String, num As Single
num = 50899697.51
res = PsDls(num, 1)
End Sub
Para activar este código en la celda que desees debes hacerlo a través de :PEGAR FUNCIÓN--en categoría de función---DEFINIDAS POR EL USUARIO, Y AHÍ SELECCIONAS LA QUE DESEES
En esta dirección puedes bajar un curso muy interesante en macros y códigos, que a mi en mis incios me ayudo bastante,
http://es.geocities.com/christian_acevedo_a/Ejemplos/Excel.pdf
Ahora el código que transforma de numero a texto, osea (25000= Veinticinco mil)
Es el siguiente :
'Funciones para convertir de números a letras
'Llamada : PsDls(Número,Formato) - Formato 1-Pesos, 2-Dólares
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
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
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
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
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
Function decimales(numero As Single) As Integer
Dim iaux As Integer
iaux = numero - Application.Round(numero, 2)
decimales = iaux
End Function
Function PsDls(cantm As Variant, ByVal mon As Integer) As String
Dim cants1 As String, num1 As Variant, num2 As Variant
num1 = cantm \ 1000000
num2 = cantm - (num1 * 1000000)
cents = (num2 * 100) Mod 100
If cents = 0 Then
cents1 = "00"
Else
cents1 = Format(cents)
End If
cantm = cantm - (cents / 100)
If cantm >= 1000000 Then
cantlm = Millones(cantm \ 1000000)
cantm = cantm Mod 1000000
End If
If cantm > 0 Then
If (cantm >= 1000) Then
cantlm = cantlm & Miles(cantm \ 1000)
cantm = cantm Mod 1000
End If
End If
If cantm > 0 Then
If cantm >= 100 Then
cantlm = cantlm & Cientos(cantm)
Else
If cantm >= 10 Then
cantlm = cantlm & Decenas(cantm, cantm Mod 10)
Else
cantlm = cantlm & Unidades(cantm, 1)
End If
End If
End If
If mon = 1 Then
PsDls = "" & cantlm & " PESOS " & "//"
Else
PsDls = "(" & cantlm & " DOLARES " & cents1 & "/100 U.S.D.)"
End If
End Function
Sub prueba()
Dim res As String, num As Single
num = 50899697.51
res = PsDls(num, 1)
End Sub
Para activar este código en la celda que desees debes hacerlo a través de :PEGAR FUNCIÓN--en categoría de función---DEFINIDAS POR EL USUARIO, Y AHÍ SELECCIONAS LA QUE DESEES
- Compartir respuesta
- Anónimo
ahora mismo