Documentos de Académico
Documentos de Profesional
Documentos de Cultura
El cdigo fuente del programa Copie y pegue segmentos de cdigos para escribir sus propias macros de Excel Ejemplos de cdigos para aprender cmo escribir macros de Excel usando el lenguaje 'Visual Basic para Aplicaciones' (VBA)
Pgina
Si quiere usar este material para segmentos de cdigos o para aprender cmo escribir macros: Este material incluye cdigos usando el lenguaje 'Visual Basic para Aplicaciones' (VBA) que logran lo siguiente: Navegar de una hoja de clculo a otra que son agrupadas en un libro Insertar filas Eliminar filas Cambiar las posiciones decimales que se muestran en celdas de nmeros Manejar errores Mostrar un mensaje en un cuadro de dilogo
Copyright Copyright 2012 Rupert Parsons Algunos Derechos Reservados Haga clic en el enlace de abajo para ver los detalles de la licencia que se aplican a esta obra: http://creativecommons.org/licenses/by-nc-sa/3.0/deed.es_ES Importante: Puede copiar y pegar segmentos de cdigos que se incluyen en este material para sus propias hojas de clculo sin restriccin de copyright.
Pgina
La estructura del programa Calculadora de Salarios Nombre de la hoja Bienvenido VBA Ref. Nombre del botn VBA Ref. Pgina -
Men Principal
MP
6 7 8 9
Men Configuracin
MC
Nombre de su institucin Smbolo de su moneda Ao y Mes Centro de costos / Departamento Tipos de remuneraciones Nombres de empleados Aguinaldos Hora Ctedra Posiciones decimales: de 2 a 0 Posiciones decimales: de 0 a 2 Redondear Men Principal
MC01 MC02 MC03 MC04 MC05 MC06 MC07 MC08 MC09 MC10 MC11 MC12
10 11 12 13 14 15 16 17 18 26 34 35
Men Salarios
MS
Gastos anuales de salarios Aguinaldos Antigedad Indemnizacin Salarios Variables (pago por hora) Horas Extras Men Principal
36 37 38 39 40 41 42
Pgina 3
Nombre del botn Men Salarios Instrucciones (Configurar) Imprimir Detalles Imprimir Resumen Nuevo Empleado Eliminar Empleado Nueva Fila Eliminar Fila
VBA Ref. SGA01 SGA02 SGA03 SGA04 SGA05 SGA06 SGA07 SGA08
Pgina 43 44 46 48 50 52 55 58
SGAI
Salarios Aguinaldos
SAG
Men Salarios Instrucciones (Configurar) Imprimir Borrar Salarios Nuevo Empleado Eliminar Empleado Nueva Fila Eliminar Fila
61 62 64 66 68 70 73 75
Salarios Antigedad
SAN
78 79 80 82
SIN
85 86 87
Pgina
Pgina 89
SINI
Salarios Variables
SVA
Men Salarios Instrucciones (Configurar) Imprimir Borrar Datos Nueva Fila Eliminar Fila
91 92 93 95 97 99
SHE
Men Salarios Instrucciones (Configurar) Imprimir Borrar Datos Nueva Fila Eliminar Fila
Configuracin
CON
CON01 CON02 -
113 114 -
Listas
Pgina
Nombre del botn: Salarios (MP01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina
Nombre del botn: Configurar (MP02) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MC MC.Activate MC.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox Para ver todas las opciones del Men Configuracin desplcese hacia abajo en la planilla.,vbOKOnly + 64, "Men Configuracin" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina
Nombre del botn: Copyright (MP03) 'Funcin del botn: Abrir una pgina web 'Errores On Error GoTo Errores 'Mensaje MsgBox "Tiene que estar conectado al Internet para ver los detalles de la licencia que se aplican a este programa.", 0 + 64, "Manual" 'Abrir la pgina web ThisWorkbook.FollowHyperlink Address:="http://creativecommons.org/licenses/by-ncsa/3.0/deed.es_ES", NewWindow:=True Exit Sub 'Errores Errores: MsgBox "No se puede acceder al Sitio Web que tiene los detalles del copyright que se aplican a este programa. Probamente se debe a que su computadora no puede conectar al Internet. & Chr(13) & Chr(13) & _ Si su conexin de Internet funciona y, despus de usar este botn, an no puede ver la licencia del copyright en lnea, seleccione la pestaa Bienvenido y a continuacin, haga clic en el enlace que se ubica en la seccin Copyright.", vbOKOnly + vbCritical, "Error"
Pgina
Nombre del botn: Guardar / Salir (MP04) 'Funcin del botn: Guardar y salir 'Errores On Error GoTo Errores 'Guardar y salir ActiveWorkbook.Save ActiveWorkbook.Close Exit Sub 'Errores Errores: Select Case Err.Number Case 1004 MsgBox "Lo siento Excel no puede guardar / salir y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description, vbOKOnly + vbCritical, "Error" Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" End Select
Pgina
Nombre del botn: Nombre de su institucin (MC01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=0 CON.Range("B9").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 10
Nombre del botn: Smbolo de su moneda (MC02) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=6 CON.Range("B15").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 11
Nombre del botn: Ao y Mes (MC03) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=12 CON.Range("B21").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 12
Nombre del botn: Centro de costos / Departamentos (MC04) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=20 CON.Range("B30").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 13
Nombre del botn: Tipos de Remuneraciones (MC05) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=45 CON.Range("B55").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 14
Nombre del botn: Nombres de empleados (MC06) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=64 CON.Range("B74").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 15
Nombre del botn: Aguinaldos (MC07) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=269 CON.Range("B278").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 16
Nombre del botn: Hora Ctedra (MC08) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=296 CON.Range("B305").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 17
Nombre del botn: Posiciones Decimales de 2 a 0 (MC09) 'Funcin del botn: Cambiar los posiciones decimales de 2 a 0 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Celda As Range Dim Answer As Integer 'Errores On Error GoTo Errores 'Mensaje Answer = MsgBox("Est seguro que quiere cambiar las posiciones decimales que se muestran de 2 a 0 para las celdas de su moneda?", 48 + 4, "Posiciones Decimales") If Answer = 7 Then GoTo Salir1 'Mensaje MsgBox "Por favor espere unos segundos mientras el programa cambia las posiciones decimales que se muestran de 2 a 0 para las celdas de su moneda ", vbOKOnly + 64, "Posiciones Decimales" 'Desactivar pantalla parpadea Application.ScreenUpdating = False 'Cambiar cursor Application.Cursor = xlWait 'Mostrar barra que avisarle a usuario del progresso Application.DisplayStatusBar = True Application.StatusBar = "Cambiando las posiciones decimales..." -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SGA SGA.Activate
Pgina 18
'Seleccionar el rango de celdas para cambiar las posiciones decimales SGA.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="SAnuales_04" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SGA.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SGAI SGAI.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SGAI.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="SAnuales_05" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect
Pgina 19
'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SGAI.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SAG SAG.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SAG.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="Aguinaldos_06" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SAG.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect
Pgina 20
-------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SIN SIN.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SIN.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="Indemnizacin_01" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SIN.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SINI SINI.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SINI.Range("A1").Select CellRange1 = ActiveCell.Address
Pgina 21
Application.GoTo Reference:="Indemnizacin_02" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SINI.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SVA SVA.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SVA.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="SVariables_05" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SVA.Range(CellRange1 & ":" & CellRange2)
Pgina 22
If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SHE SHE.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SHE.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="HorasExtras_07" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 2 a 0 For Each Celda In SHE.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,##0.00;""Error"";""-""" Then Celda.NumberFormat = "#,###;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: MC
Pgina 23
MC.Activate 'Activar pantalla parpadea Application.ScreenUpdating = True 'Cambiar el cursor Application.Cursor = xlDefault 'Deshabilitar la barra que avisarle a usuario del progresso Application.StatusBar = False Mensaje MsgBox " Las posiciones decimales que se muestran han sido cambiadas de 2 a 0 para las celdas de su moneda.", 0 + 64, "Posiciones Decimales" 'Redondear al nmero entero CON.Activate CON.Range("B312").Select ActiveCell.Value = 0 'Mensaje MsgBox " Los montos calculados ahora se redondean al nmero entero. Si quiere, se puede cambiarlo.", 0 + 64, "Posiciones Decimales" Exit Sub 'Errores Salir1: Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect Application.ScreenUpdating = True
Pgina 24
Pgina 25
Nombre del botn: Posiciones Decimales de 0 a 2 (MC10) 'Funcin del botn: Cambiar los posiciones decimales de 0 a 2 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Celda As Range Dim Answer As Integer 'Errores On Error GoTo Errores 'Mensaje Answer = MsgBox("Est seguro que quiere cambiar las posiciones decimales que se muestran de 0 a 2 para las celdas de su moneda?", 48 + 4, "Posiciones Decimales") If Answer = 7 Then GoTo Salir1 'Mensaje MsgBox "Por favor espere unos segundos mientras el programa cambia las posiciones decimales que se muestran de 0 a 2 para las celdas de su moneda ", vbOKOnly + 64, "Posiciones Decimales" 'Desactivar pantalla parpadea Application.ScreenUpdating = False 'Cambiar cursor Application.Cursor = xlWait 'Mostrar barra que avisarle a usuario del progresso Application.DisplayStatusBar = True Application.StatusBar = "Cambiando las posiciones decimales..." -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SGA SGA.Activate
Pgina 26
'Seleccionar el rango de celdas para cambiar las posiciones decimales SGA.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="SAnuales_04" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SGA.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SGAI SGAI.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SGAI.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="SAnuales_05" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect
Pgina 27
'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SGAI.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SAG SAG.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SAG.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="Aguinaldos_06" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SAG.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect
Pgina 28
-------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SIN SIN.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SIN.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="Indemnizacin_01" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SIN.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SINI SINI.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SINI.Range("A1").Select CellRange1 = ActiveCell.Address
Pgina 29
Application.GoTo Reference:="Indemnizacin_02" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SINI.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SVA SVA.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SVA.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="SVariables_05" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SVA.Range(CellRange1 & ":" & CellRange2)
Pgina 30
If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: SHE SHE.Activate 'Seleccionar el rango de celdas para cambiar las posiciones decimales SHE.Range("A1").Select CellRange1 = ActiveCell.Address Application.GoTo Reference:="HorasExtras_07" CellRange2 = ActiveCell.Address 'Desproteger la hoja ActiveSheet.Unprotect 'Cambiar las posiciones decimales de 0 a 2 For Each Celda In SHE.Range(CellRange1 & ":" & CellRange2) If Celda.NumberFormat = "#,###;""Error"";""-""" Then Celda.NumberFormat = "#,##0.00;""Error"";""""" Next Celda 'Proteger la hoja ActiveSheet.Protect -------------------------------------------------------------------------------------------------------------------------------------'Ir a la hoja: MC
Pgina 31
MC.Activate 'Activar pantalla parpadea Application.ScreenUpdating = True 'Cambiar cursor Application.Cursor = xlDefault 'Deshabilitar la barra que avisarle a usuario del progresso Application.StatusBar = False Mensaje MsgBox " Las posiciones decimales que se muestran han sido cambiadas de 0 a 2 para las celdas de su moneda.", 0 + 64, "Posiciones Decimales" 'Redondear a 2 lugares decimales CON.Activate CON.Range("B312").Select ActiveCell.Value = 2 'Mensaje MsgBox " Los montos calculados ahora se redondean a 2 lugares decimales. Si quiere, se puede cambiarlo.", 0 + 64, "Posiciones Decimales" Exit Sub 'Errores Salir1: Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect Application.ScreenUpdating = True
Pgina 32
Pgina 33
Nombre del botn: Redondear (MC11) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: CON CON.Activate ActiveWindow.SmallScroll Up:=1000 ActiveWindow.SmallScroll Down:=302 CON.Range("B312").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 34
Nombre del botn: Men Principal (MC12) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MP MP.Activate MP.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 35
Nombre del botn: Gastos anuales de salarios (MS01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: SGA SGA.Activate ActiveWindow.SmallScroll Up:=1000 SGA.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Se puede cargar en las celdas amarillas y en las anaranjadas." & Chr(13) & Chr(13) _ & Para proteger las frmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja. & Chr(13) & Chr(13) _ & Si quiere calcular los gastos totales de salarios por slo un mes para un presupuesto mensual: & Chr(13) & Chr(13) _ & - por cada monto que se carga seleccione 1 (mes) en la celda del & Chr(13) _ & Intervalo del monto. , 0 + 64, "Gastos anuales de salarios" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 36
Nombre del botn: Aguinaldos (MS02) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: SAG SAG.Activate ActiveWindow.SmallScroll Up:=1000 SAG.Range("A1").Select SAG.Range("E9").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Se puede cargar tanto en las celdas que tienen bordes como en las celdas de los meses." & Chr(13) & Chr(13) _ & Para proteger las frmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja., 0 + 64, "Aguinaldos" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 37
Nombre del botn: Antigedad (MS03) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: SAN SAN.Activate ActiveWindow.SmallScroll Up:=1000 SAN.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Se puede cargar en las celdas amarillas." & Chr(13) & Chr(13) _ & Para proteger las frmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja., 0 + 64, "Antigedad" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 38
Nombre del botn: Indemnizacin (MS04) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: SIN SIN.Activate ActiveWindow.SmallScroll Up:=1000 SIN.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Se puede cargar en las celdas amarillas." & Chr(13) & Chr(13) _ & Para proteger las frmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja., 0 + 64, "Indemnizacin" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 39
Nombre del botn: Salarios Variables (MS05) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: SVA SVA.Activate ActiveWindow.SmallScroll Up:=1000 SVA.Range("A6").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Se puede cargar en las celdas que tienen bordes." & Chr(13) & Chr(13) _ & Para proteger las frmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja., 0 + 64, "Salarios Variables" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 40
Nombre del botn: Horas Extras (MS06) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: SHE SHE.Activate ActiveWindow.SmallScroll Up:=1000 SHE.Range("A6").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Se puede cargar en las celdas que tienen bordes." & Chr(13) & Chr(13) _ & Para proteger las frmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja., 0 + 64, "Horas Extras" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 41
Nombre del botn: Men Principal (MS07) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MP MP.Activate MP.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 42
Nombre del botn: Men Salarios (SGA01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 43
Nombre del botn: Instrucciones (SGA02) 'Funcin del botn: Mostrar Instrucciones 'Errores On Error GoTo Errores 'Mensaje (1) MsgBox Si necesita insertar ms empleados en la hoja: & Chr(13) & Chr(13) _ & - Pulse el botn Nuevo Empleado. & Chr(13) & Chr(13) _ & Si quiere eliminar todas las filas de un empleado:* & Chr(13) & Chr(13) _ & - Seleccione la celda del nombre del empleado. & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Empleado. & Chr(13) & Chr(13) _ & (*no se puede eliminar las filas del primer empleado) & Chr(13) & Chr(13) _ & Si necesita ms filas en las cuales registrar las remuneraciones de un empleado: & Chr(13) & Chr(13) _ & - Seleccione la celda del nombre del empleado. & Chr(13) & Chr(13) _ & - Pulse el botn Nueva Fila. & Chr(13) & Chr(13) _ & Si quiere menos filas en las cuales registrar las remuneraciones de un empleado: & Chr(13) & Chr(13) _ & -Seleccione una celda amarilla de la fila que quiere eliminar.** & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Fila. & Chr(13) & Chr(13) _ & (**no se puede eliminar la primera fila de cada empleado), _ vbOKOnly + 64, "Cmo Configurar la hoja y los informes (1) - Los Botones" 'Mensaje (2) MsgBox Vaya al Men Configuracin para lo siguiente: & Chr(13) & Chr(13) _ & Cargar el nombre de su institucin. & Chr(13) & Chr(13) _ & Cargar el smbolo de moneda para su pas. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un centro de costos. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar sus tipos de remuneraciones. & Chr(13) & Chr(13) _ & Cambiar las posiciones decimales que se muestran en las celdas de su moneda. & Chr(13) & Chr(13) _ & Cambiar cmo los montos calculados son redondeados., _ vbOKOnly + 64, "Cmo Configurar la hoja y los informes (2) - Men Configuracin" Exit Sub 'Errores
Pgina 44
Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 45
Nombre del botn: Imprimir Detalles (SGA03) 'Funcin del botn: Imprimir 'Errores On Error GoTo Errores 'Ir a la Columna W SGA.Range("W1").Select ActiveWindow.SmallScroll ToRight:=6 'Mensaje MsgBox Para imprimirlo pulse el botn Imprimir que aparece despus de pulsar Aceptar abajo. & Chr(13) & Chr(13) _ & Para mejorar la presentacin del informe: & Chr(13) & Chr(13) _ & Le recomiendo que inserte un salto de pgina arriba de cada empleado cuyos datos pasan a la siguiente pgina. El informe se ubica a partir de la columna W de esta hoja. & Chr(13) & Chr(13) _ & Tamao de papel: & Chr(13) & Chr(13) _ & El informe est configurado para papel Carta. & Chr(13) _ & Se puede usar papel A4. Si quiere usarlo, en vista preliminar antes de imprimir, pulse el botn Configurar (Excel 1997 2003) o Configurar pgina (Excel 2007 / 2010) y seleccione el tamao de papel A4., _ vbOKOnly + 64, "Imprimir" 'Imprimir ActiveWindow.SelectedSheets.PrintPreview 'Ir a la Columna A SGA.Range("A1").Select Exit Sub 'Errores Errores: Select Case Err.Number Case 1004
Pgina 46
MsgBox "Lo siento Excel no puede imprimirlo y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description & Chr(13) & Chr(13) _ & "Es posible que haya un problema con la configuracin de la pgina (verifique el tamao de papel que se seleccion) o el driver de su impresora.", _ vbOKOnly + vbCritical, "Error" Exit Sub Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" Exit Sub End Select
Pgina 47
Nombre del botn: Imprimir Resumen (SGA04) 'Funcin del botn: Imprimir 'Errores On Error GoTo Errores 'Ir a la Hoja: SGAI SGAI.Activate SGAI.Range("A1").Select 'Mensaje MsgBox Para imprimir el informe pulse el botn Imprimir que aparece despus de pulsar Aceptar abajo. & Chr(13) & Chr(13) _ & Tamao de papel: & Chr(13) & Chr(13) _ & El informe est configurado para papel Carta. & Chr(13) _ & Se puede usar papel A4. Si quiere usarlo, en vista preliminar antes de imprimir, pulse el botn Configurar (Excel 1997 2003) o Configurar pgina (Excel 2007 / 2010) y seleccione el tamao de papel A4., _ vbOKOnly + 64, "Imprimir" 'Imprimir ActiveWindow.SelectedSheets.PrintPreview 'Ir a la Hoja: SGA SGA.Activate SGA.Range("A1").Select Exit Sub 'Errores Errores: Select Case Err.Number Case 1004 MsgBox "Lo siento Excel no puede imprimirlo y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description & Chr(13) & Chr(13) _
Pgina 48
& "Es posible que haya un problema con la configuracin de la pgina (verifique el tamao de papel que se seleccion) o el driver de su impresora.", _ vbOKOnly + vbCritical, "Error" Exit Sub Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" Exit Sub End Select
Pgina 49
Nombre del botn: Nuevo Empleado (SGA05) 'Funcin del botn: Insertar, copiar y pegar filas 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Insertar 13 filas Application.GoTo Reference:="SAnuales_01" Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert 'Copiar las filas del empleado oculto Application.GoTo Reference:="SAnuales_02" Selection.Copy 'Pegar las filas del empleado oculto Application.GoTo Reference:="SAnuales_01" ActiveCell.Offset(-13, 0).Select ActiveSheet.Paste 'Proteger la hoja ActiveSheet.Protect
Pgina 50
'Mensaje MsgBox "Un nuevo empleado ha sido insertado.", 0 + 64, "Nuevo empleado" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 51
Nombre del botn: Eliminar Empleado (SGA06) 'Funcin del botn: Eliminar filas 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Desproteger la hoja ActiveSheet.Unprotect 'Errores On Error GoTo Errores 'Mensaje MsgBox "Seleccione la celda del nombre del empleado que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar el primer empleado.", 0 + 64, "Eliminar empleado 'Verificar que la celda que se seleccion es la celda del nombre de empleado Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> E And ActiveCell.Text <> PE Then GoTo Salir1 'Asegurarse de que el primer empleado no sea eliminado If ActiveCell.Text = PE Then GoTo Salir2 'Seleccionar las filas para eliminar ActiveCell.Offset(-2, 0).Select CellRange1 = ActiveCell.Address Do Until ActiveCell.Text = UF2 ActiveCell.Offset(1, 0).Select
Pgina 52
Loop CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Mensaje Answer = MsgBox("Est seguro que quiere eliminar todas las filas del empleado?", 48 + 4, "Eliminar Empleado") If Answer = 7 Then GoTo Salir3 'Eliminar las filas Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "El empleado ha sido eliminado.", 0 + 64, "Eliminar empleado" Range(CellRange1).Select Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar la celda del nombre del empleado que quiere eliminar.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar el primer empleado.", 0 + 16, "Error" ActiveSheet.Protect
Pgina 53
Exit Sub Salir3: ActiveSheet.Protect Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 54
Nombre del botn: Nueva Fila (SGA07) 'Funcin del botn: Insertar una fila 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox "Para insertar una nueva fila en la cual registrar una remuneracin de un empleado seleccione la celda del nombre del empleado.", 0 + 64, "Nueva Fila" 'Verificar que la celda que se seleccion es la celda del nombre de empleado Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> "E" And ActiveCell.Text <> "PE" Then GoTo Salir1 'Insertar una fila Do Until ActiveCell.Text = "UF1" ActiveCell.Offset(1, 0).Select Loop CellRange1 = ActiveCell.Address Selection.EntireRow.Insert 'Copiar la fila oculta
Pgina 55
Application.GoTo Reference:="SAnuales_03" Selection.Copy 'Pegar la fila oculta Range(CellRange1).Select ActiveSheet.Paste 'Introducir el vnculo correcto a la celda del centro de costos de la nueva fila (columna DN) ActiveCell.Offset(1, 0).Select Do Until ActiveCell.Text = "UF3" ActiveCell.Offset(0, 1).Select Loop ActiveCell.Offset(-2, -1).Select CellRange2 = ActiveCell.Formula ActiveCell.Offset(1, 0).Select ActiveCell.Formula = CellRange2 Range(CellRange1).Select 'Proteger la hoja ActiveSheet.Protect 'Mensaje ActiveCell.Offset(0, 5).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select MsgBox "Una nueva fila se ha insertado.", 0 + 64, "Nueva Fila" Exit Sub
Pgina 56
'Errores Salir1: MsgBox "Tiene que seleccionar la celda del nombre del empleado.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Errores: MsgBox "Lo siento - la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 57
Nombre del botn: Eliminar Fila (SGA08) 'Funcin del botn: Eliminar fila 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox " Seleccione una celda amarilla de la fila que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar la primera fila de cada empleado.", 0 + 64, "Eliminar Fila 'Verificar que la celda que se seleccion es la celda del nombre de empleado Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> F And ActiveCell.Text <> PF Then GoTo Salir1 If ActiveCell.Text = PF Then GoTo Salir2 'Seleccionar la fila para eliminar CellRange1 = ActiveCell.Address ActiveCell.Offset(0, 5).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Mensaje
Pgina 58
Answer = MsgBox("Est seguro que quiere eliminar la fila?", 48 + 4, "Eliminar Fila") If Answer = 7 Then GoTo Salir3 Eliminar la fila Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox " La fila se ha eliminado.", 0 + 64, "Eliminar Fila" Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar una celda de una fila que registra remuneracin.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar la primera fila del empleado.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir3: ActiveSheet.Protect Exit Sub Errores:
Pgina 59
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 60
Nombre del botn: Men Salarios (SAG01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 61
Nombre del botn: Instrucciones (SAG02) 'Funcin del botn: Mostrar Instrucciones 'Errores On Error GoTo Errores 'Mensaje (1) MsgBox Si necesita insertar ms empleados en la hoja: & Chr(13) & Chr(13) _ & - Pulse el botn Nuevo Empleado. & Chr(13) & Chr(13) _ & Si quiere eliminar todas las filas de un empleado:* & Chr(13) & Chr(13) _ & - Seleccione la celda del nombre del empleado. & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Empleado. & Chr(13) & Chr(13) _ & (*no se puede eliminar las filas del primer empleado) & Chr(13) & Chr(13) _ & Si necesita ms filas en las cuales registrar las remuneraciones de un empleado: & Chr(13) & Chr(13) _ & - Seleccione la celda del nombre del empleado. & Chr(13) & Chr(13) _ & - Pulse el botn Nueva Fila. & Chr(13) & Chr(13) _ & Si quiere menos filas en las cuales registrar las remuneraciones de un empleado: & Chr(13) & Chr(13) _ & -Seleccione una celda que tiene bordes de la fila que quiere eliminar.** & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Fila. & Chr(13) & Chr(13) _ & (**no se puede eliminar la primera fila de cada empleado), _ vbOKOnly + 64, "Cmo Configurar la hoja (1) - Los Botones" 'Mensaje (2) MsgBox Vaya al Men Configuracin para lo siguiente: & Chr(13) & Chr(13) _ & Cargar el nombre de su institucin. & Chr(13) & Chr(13) _ & Cargar el smbolo de moneda para su pas. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un centro de costos. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar sus tipos de remuneraciones. & Chr(13) & Chr(13) _ & Cambiar el nmero de los das de salarios que tiene que pagar para el aguinaldo. & Chr(13) & Chr(13) _ & Cambiar las posiciones decimales que se muestran en las celdas de su moneda. & Chr(13) & Chr(13) _ & Cambiar cmo los montos calculados son redondeados., _ vbOKOnly + 64, "Cmo Configurar la hoja (2) - Men Configuracin" 'Ir a una celda de meses
Pgina 62
Range("E9").Select Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 63
Nombre del botn: Imprimir (SAG03) 'Funcin del botn: Imprimir 'Errores On Error GoTo Errores 'Mensaje MsgBox Para imprimirlo pulse el botn Imprimir que aparece despus de pulsar Aceptar abajo. & Chr(13) & Chr(13) _ & Para mejorar la presentacin del informe: & Chr(13) & Chr(13) _ & Le recomiendo que inserte un salto de pgina arriba de cada empleado cuyos datos pasan a la siguiente pgina. & Chr(13) & Chr(13) _ & Tamao de papel: & Chr(13) & Chr(13) _ & El informe est configurado para papel Carta. & Chr(13) _ & Se puede usar papel A4. Si quiere usarlo, en vista preliminar antes de imprimir, pulse el botn Configurar (Excel 1997 2003) o Configurar pgina (Excel 2007 / 2010) y seleccione el tamao de papel A4., _ vbOKOnly + 64, "Imprimir" 'Imprimir ActiveWindow.SelectedSheets.PrintPreview 'Ir a la celda B15 SAG.Range("B15").Select Exit Sub 'Errores Errores: Select Case Err.Number Case 1004 MsgBox "Lo siento Excel no puede imprimirlo y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description & Chr(13) & Chr(13) _ & "Es posible que haya un problema con la configuracin de la pgina (verifique el tamao de papel que se seleccion) o el driver de su impresora.", _ vbOKOnly + vbCritical, "Error"
Pgina 64
Exit Sub Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" Exit Sub End Select
Pgina 65
Nombre del botn: Borrar Salarios (SAG04) 'Funcin del botn: Borrar contenidos 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Seleccionar el rango de celdas para borrar Application.GoTo Reference:="Aguinaldos_04" CellRange1 = ActiveCell.Address Application.GoTo Reference:="Aguinaldos_05" ActiveCell.Offset(-3, 0).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Mensaje Answer = MsgBox("Sern borradas solamente las remuneraciones que se cargaron en las columnas de meses." & Chr(13) & Chr(13) & "Est seguro que quiere borrarlas?", vbYesNo + vbExclamation, "Borrar") If Answer = 7 Then GoTo Exit1 'Borrar los contenidos Range(CellRange1 & ":" & CellRange2).ClearContents 'Proteger la hoja
Pgina 66
ActiveSheet.Protect 'Mensaje MsgBox "Todos las remuneraciones se han borrado.", vbOKOnly + vbInformation, "Borrar" Exit Sub 'Errores Exit1: Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 67
Nombre del botn: Nuevo Empleado (SAG05) 'Funcin del botn: Insertar, copiar y pegar filas 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Insertar 7 filas Application.GoTo Reference:="Aguinaldos_01" Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert Selection.EntireRow.Insert 'Copiar las filas del empleado oculto Application.GoTo Reference:="Aguinaldos_02" Selection.Copy 'Pegar las filas del empleado oculto Application.GoTo Reference:="Aguinaldos_01" ActiveCell.Offset(-7, 0).Select ActiveSheet.Paste 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "Un nuevo empleado ha sido insertado.", 0 + 64, "Nuevo empleado" Exit Sub
Pgina 68
'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 69
Nombre del botn: Eliminar Empleado (SAG06) 'Funcin del botn: Eliminar filas 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Desproteger la hoja ActiveSheet.Unprotect 'Errores On Error GoTo Errores 'Mensaje MsgBox "Seleccione la celda del nombre del empleado que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar el primer empleado.", 0 + 64, "Eliminar empleado 'Verificar que la celda que se seleccion es la celda del nombre de empleado Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> PF And ActiveCell.Text <> PE Then GoTo Salir1 'Asegurarse de que el primer empleado no sea eliminado If ActiveCell.Text = PE Then GoTo Salir2 'Seleccionar las filas para eliminar CellRange1 = ActiveCell.Address Do Until ActiveCell.Text = UF2 ActiveCell.Offset(1, 0).Select Loop
Pgina 70
CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Mensaje Answer = MsgBox("Est seguro que quiere eliminar todas las filas del empleado?", 48 + 4, "Eliminar Empleado") If Answer = 7 Then GoTo Salir3 'Eliminar las filas Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "El empleado ha sido eliminado.", 0 + 64, "Eliminar empleado" Range(CellRange1).Select Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar la celda del nombre del empleado que quiere eliminar.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar el primer empleado.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub
Pgina 71
Salir3: ActiveSheet.Protect Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 72
Nombre del botn: Nueva Fila (SAG07) 'Funcin del botn: Insertar una fila 'Declaraciones Dim CellRange1 As String 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox "Para insertar una nueva fila en la cual registrar una remuneracin de un empleado seleccione la celda del nombre del empleado.", 0 + 64, "Nueva Fila 'Verificar que la celda que se seleccion es la celda del nombre de empleado Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> PF And ActiveCell.Text <> PE Then GoTo Salir1 'Insertar una fila Do Until ActiveCell.Text = UF1 ActiveCell.Offset(1, 0).Select Loop CellRange1 = ActiveCell.Address Selection.EntireRow.Insert 'Copiar la fila oculta Application.GoTo Reference:="Aguinaldos_03"
Pgina 73
Selection.Copy 'Pegar la fila oculta Range(CellRange1).Select ActiveSheet.Paste 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "Una nueva fila se ha insertado.", 0 + 64, "Nueva Fila" Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar la celda del nombre del empleado.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 74
Nombre del botn: Eliminar Fila (SAG08) 'Funcin del botn: Eliminar fila 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox "Seleccione una celda de la fila que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar la primera fila de cada empleado.", 0 + 64, "Eliminar Fila 'Verificar que la celda que se seleccion es la celda del nombre de empleado Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> F And ActiveCell.Text <> PF And ActiveCell.Text <> PE Then GoTo Salir1 If ActiveCell.Text = PF Then GoTo Salir2 If ActiveCell.Text = PE Then GoTo Salir2 'Seleccionar la fila para eliminar CellRange1 = ActiveCell.Address ActiveCell.Offset(0, 34).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select
Pgina 75
'Mensaje Answer = MsgBox("Est seguro que quiere eliminar la fila?", 48 + 4, "Eliminar Fila") If Answer = 7 Then GoTo Salir3 Eliminar la fila Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox " La fila se ha eliminado.", 0 + 64, "Eliminar Fila" Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar una celda de una fila que registra remuneracin.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar la primera fila del empleado.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir3: ActiveSheet.Protect Exit Sub Errores:
Pgina 76
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 77
Nombre del botn: Men Salarios (SAN01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 78
Nombre del botn: Instrucciones (SAN02) 'Funcin del botn: Mostrar Instrucciones 'Errores On Error GoTo Errores 'Mensaje (1) MsgBox Si necesita ms filas en las cuales registrar la antigedad de sus empleados: & Chr(13) & Chr(13) _ & - Pulse el botn Nueva Fila. & Chr(13) & Chr(13) _ & Si quiere menos filas en las cuales registrar la antigedad de sus empleados: & Chr(13) & Chr(13) _ & -Seleccione una celda de la fila que quiere eliminar.* & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Fila. & Chr(13) & Chr(13) _ & (*no se puede eliminar la primera fila), _ vbOKOnly + 64, "Cmo Configurar la hoja (1) - Los Botones" 'Mensaje (2) MsgBox Vaya al Men Configuracin para lo siguiente: & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado., _ vbOKOnly + 64, "Cmo Configurar la hoja (2) - Men Configuracin" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 79
Nombre del botn: Nueva Fila (SAN03) 'Funcin del botn: Insertar fila 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Insertar una fila Application.GoTo Reference:="Antigedad_01" Selection.EntireRow.Insert 'Copiar la fila oculta Application.GoTo Reference:="Antigedad_02" Selection.Copy 'Pegar la fila oculta Application.GoTo Reference:= "Antigedad_01" ActiveCell.Offset(-1, 0).Select ActiveSheet.Paste 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "Una nueva fila se ha insertado.", 0 + 64, "Nueva Fila" Exit Sub 'Errores Errores:
Pgina 80
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 81
Nombre del botn: Eliminar Fila (SAN04) 'Funcin del botn: Eliminar fila 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox "Seleccione una celda amarilla de la fila que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar la primera fila.", 0 + 64, "Eliminar Fila 'Verificar que la celda que se seleccion es una fila registra detalles de antigedad Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> F And ActiveCell.Text <> PF Then GoTo Salir1 'Asegurarse de que la primera fila no sea eliminado If ActiveCell.Text = PF Then GoTo Salir2 'Seleccionar la fila para eliminar CellRange1 = ActiveCell.Address ActiveCell.Offset(0, 6).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select
Pgina 82
'Mensaje Answer = MsgBox("Est seguro que quiere eliminar la fila?", 48 + 4, "Eliminar Fila") If Answer = 7 Then GoTo Salir3 Eliminar la fila Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "La fila se ha eliminado.", 0 + 64, "Eliminar Fila" Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar una celda de una fila que registra detalles de antigedad.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar la primera fila.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir3: ActiveSheet.Protect Exit Sub Errores:
Pgina 83
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 84
Nombre del botn: Men Salarios (SIN01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 85
Nombre del botn: Instrucciones (SIN02) 'Funcin del botn: Mostrar Instrucciones 'Errores On Error GoTo Errores 'Mensaje MsgBox Vaya al Men Configuracin para lo siguiente: & Chr(13) & Chr(13) _ & Cargar el nombre de su institucin. & Chr(13) & Chr(13) _ & Cargar el smbolo de moneda para su pas. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar sus tipos de remuneraciones. & Chr(13) & Chr(13) _ & Cambiar las posiciones decimales que se muestran en las celdas de su moneda. & Chr(13) & Chr(13) _ & Cambiar cmo los montos calculados son redondeados., _ vbOKOnly + 64, "Cmo Configurar la hoja y el informe - Men Configuracin" Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 86
Nombre del botn: Imprimir Resultados (SIN03) 'Funcin del botn: Imprimir 'Errores On Error GoTo Errores 'Ir a la Hoja: SINI SINI.Activate SINI.Range("A1").Select 'Mensaje MsgBox Para imprimir el informe pulse el botn Imprimir que aparece despus de pulsar Aceptar abajo. & Chr(13) & Chr(13) _ & Tamao de papel: & Chr(13) & Chr(13) _ & El informe est configurado para papel Carta. & Chr(13) _ & Se puede usar papel A4. Si quiere usarlo, en vista preliminar antes de imprimir, pulse el botn Configurar (Excel 1997 2003) o Configurar pgina (Excel 2007 / 2010) y seleccione el tamao de papel A4., _ vbOKOnly + 64, "Imprimir" 'Imprimir ActiveWindow.SelectedSheets.PrintPreview 'Ir a la Hoja: SIN SIN.Activate SIN.Range("A1").Select Exit Sub 'Errores Errores: Select Case Err.Number Case 1004 MsgBox "Lo siento Excel no puede imprimirlo y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description & Chr(13) & Chr(13) _
Pgina 87
& "Es posible que haya un problema con la configuracin de la pgina (verifique el tamao de papel que se seleccion) o el driver de su impresora.", _ vbOKOnly + vbCritical, "Error" Exit Sub Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" Exit Sub End Select
Pgina 88
Nombre del botn: Borrar Datos (SIN04) 'Funcin del botn: Borrar contenidos 'Errores On Error GoTo Errores 'Mensaje Answer = MsgBox("Sern borrados los datos que se cargaron en las celdas amarillas." & Chr(13) & Chr(13) & "Est seguro que quiere borrarlos?", vbYesNo + vbExclamation, "Borrar") If Answer = 7 Then GoTo Exit1 'Borrar los contenidos Range("C15:F15").ClearContents Range("C17:F17").ClearContents Range("E22").ClearContents Range("B28:B31").ClearContents Range("D28:D31").ClearContents Range("E28").ClearContents Range("D35").ClearContents Range("E42").ClearContents Range("D50").ClearContents Range("D52").ClearContents Range("E63").ClearContents Range("E71").ClearContents Range("E74").ClearContents Range("E81").ClearContents 'Mensaje MsgBox "Todos los datos que se cargaron en las celdas amarillas se han borrado.", vbOKOnly + vbInformation, "Borrar" Exit Sub 'Errores Exit1: Exit Sub Errores:
Pgina 89
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 90
Nombre del botn: Men Salarios (SVA01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 91
Nombre del botn: Instrucciones (SVA02) 'Funcin del botn: Mostrar Instrucciones 'Errores On Error GoTo Errores 'Mensaje (1) MsgBox Si necesita ms filas en las cuales registrar las horas de entrada y las horas de salida: & Chr(13) & Chr(13) _ & - Pulse el botn Nueva Fila. & Chr(13) & Chr(13) _ & Si quiere menos filas en las cuales registrar las horas de entrada y las horas de salida: & Chr(13) & Chr(13) _ & -Seleccione una celda de la fila que quiere eliminar.* & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Fila. & Chr(13) & Chr(13) _ & (*no se puede eliminar la primera fila), _ vbOKOnly + 64, "Cmo Configurar la hoja (1) - Los Botones" 'Mensaje (2) MsgBox Vaya al Men Configuracin para lo siguiente: & Chr(13) & Chr(13) _ & Cargar el nombre de su institucin. & Chr(13) & Chr(13) _ & Cargar el smbolo de moneda para su pas. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un departamento. & Chr(13) & Chr(13) _ & (para cambiar cmo los tiempos calculados en decimales son redondeados ubquese en la celda J13), _ vbOKOnly + 64, "Cmo Configurar la hoja (2) - Men Configuracin" 'Ir a la celda de redondear Range("J13").Select Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 92
Nombre del botn: Imprimir (SVA03) 'Funcin del botn: Imprimir 'Errores On Error GoTo Errores 'Mensaje MsgBox Para imprimirlo pulse el botn Imprimir que aparece despus de pulsar Aceptar abajo. & Chr(13) & Chr(13) _ & Tamao de papel: & Chr(13) & Chr(13) _ & El informe est configurado para papel Carta. & Chr(13) _ & Se puede usar papel A4. Si quiere usarlo, en vista preliminar antes de imprimir, pulse el botn Configurar (Excel 1997 2003) o Configurar pgina (Excel 2007 / 2010) y seleccione el tamao de papel A4., _ vbOKOnly + 64, "Imprimir" 'Imprimir ActiveWindow.SelectedSheets.PrintPreview 'Ir a la Celda B15 Range("B15").Select Exit Sub 'Errores Errores: Select Case Err.Number Case 1004 MsgBox "Lo siento Excel no puede imprimirlo y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description & Chr(13) & Chr(13) _ & "Es posible que haya un problema con la configuracin de la pgina (verifique el tamao de papel que se seleccion) o el driver de su impresora.", _ vbOKOnly + vbCritical, "Error" Exit Sub
Pgina 93
Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" Exit Sub End Select
Pgina 94
Nombre del botn: Borrar Datos (SVA04) 'Funcin del botn: Borrar contenidos 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Seleccionar el rango de celdas para borrar Application.GoTo Reference:="SVariables_03" CellRange1 = ActiveCell.Address Application.GoTo Reference:="SVariables_04" ActiveCell.Offset(-1, 0).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Mensaje Answer = MsgBox("Sern borradas solamente las fechas y horas." & Chr(13) & Chr(13) & "Est seguro que quiere borrarlas?", vbYesNo + vbExclamation, "Borrar") If Answer = 7 Then GoTo Exit1 'Borrar los contenidos Range(CellRange1 & ":" & CellRange2).ClearContents 'Mensaje MsgBox "Todos las fechas y horas se han borrado.", vbOKOnly + vbInformation, "Borrar" Exit Sub 'Errores
Pgina 95
Exit1: Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 96
Nombre del botn: Nueva Fila (SVA05) 'Funcin del botn: Insertar fila 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Insertar una fila Application.GoTo Reference:="SVariables_01" Selection.EntireRow.Insert 'Copiar la fila oculta Application.GoTo Reference:="SVariables_02" Selection.Copy 'Pegar fila la fila oculta Application.GoTo Reference:= "SVariables_01" ActiveCell.Offset(-1, 0).Select ActiveSheet.Paste 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "Una nueva fila se ha insertado.", 0 + 64, "Nueva Fila" Exit Sub 'Errores Errores:
Pgina 97
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 98
Nombre del botn: Eliminar Fila (SVA06) 'Funcin del botn: Eliminar fila 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox "Seleccione una celda de la fila que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar la primera fila.", 0 + 64, "Eliminar Fila 'Verificar que la celda que se seleccion es una fila que registra los detalles de antigedad Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> F And ActiveCell.Text <> PF Then GoTo Salir1 'Asegurarse de que la primera fila no est eliminado If ActiveCell.Text = PF Then GoTo Salir2 'Seleccionar la fila para eliminar CellRange1 = ActiveCell.Address ActiveCell.Offset(0, 7).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select
Pgina 99
'Mensaje Answer = MsgBox("Est seguro que quiere eliminar la fila?", 48 + 4, "Eliminar Fila") If Answer = 7 Then GoTo Salir3 Eliminar la fila Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "La fila se ha eliminado.", 0 + 64, "Eliminar Fila" Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar una celda de una fila que registra una hora de entrada y una de salida.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar la primera fila.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir3: ActiveSheet.Protect Exit Sub Errores:
Pgina 100
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 101
Nombre del botn: Men Salarios (SHE01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MS MS.Activate MS.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 102
Nombre del botn: Instrucciones (SHE02) 'Funcin del botn: Mostrar Instrucciones 'Errores On Error GoTo Errores 'Mensaje (1) MsgBox Si necesita ms filas en las cuales registrar las horas de entrada y las horas de salida: & Chr(13) & Chr(13) _ & - Pulse el botn Nueva Fila. & Chr(13) & Chr(13) _ & Si quiere menos filas en las cuales registrar las horas de entrada y las horas de salida: & Chr(13) & Chr(13) _ & -Seleccione una celda de la fila que quiere eliminar.* & Chr(13) & Chr(13) _ & - Pulse el botn Eliminar Fila. & Chr(13) & Chr(13) _ & (*no se puede eliminar la primera fila), _ vbOKOnly + 64, "Cmo Configurar la hoja (1) - Los Botones" 'Mensaje (2) MsgBox Vaya al Men Configuracin para lo siguiente: & Chr(13) & Chr(13) _ & Cargar el nombre de su institucin. & Chr(13) & Chr(13) _ & Cargar el smbolo de moneda para su pas. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado. & Chr(13) & Chr(13) _ & Llenar la lista desplegable que aparece donde tiene que cargar un departamento. & Chr(13) & Chr(13) _ & (para cambiar cmo los tiempos calculados en decimales son redondeados ubquese en la celda L15), _ vbOKOnly + 64, "Cmo Configurar la hoja (2) - Men Configuracin" 'Ir a la celda de redondear Range("L15").Select Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 103
Nombre del botn: Imprimir (SHE03) 'Funcin del botn: Imprimir 'Errores On Error GoTo Errores 'Mensaje MsgBox Para imprimirlo pulse el botn Imprimir que aparece despus de pulsar Aceptar abajo. & Chr(13) & Chr(13) _ & Tamao de papel: & Chr(13) & Chr(13) _ & El informe est configurado para papel Carta. & Chr(13) _ & Se puede usar papel A4. Si quiere usarlo, en vista preliminar antes de imprimir, pulse el botn Configurar (Excel 1997 2003) o Configurar pgina (Excel 2007 / 2010) y seleccione el tamao de papel A4., _ vbOKOnly + 64, "Imprimir" 'Imprimir ActiveWindow.SelectedSheets.PrintPreview 'Ir a la Celda B17 Range("B17").Select Exit Sub 'Errores Errores: Select Case Err.Number Case 1004 MsgBox "Lo siento Excel no puede imprimirlo y devuelve el siguiente mensaje de error:" & Chr(13) & Chr(13) _ & Err.Description & Chr(13) & Chr(13) _ & "Es posible que haya un problema con la configuracin de la pgina (verifique el tamao de papel que se seleccion) o el driver de su impresora.", _ vbOKOnly + vbCritical, "Error" Exit Sub
Pgina 104
Case Else MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" Exit Sub End Select
Pgina 105
Nombre del botn: Borrar Datos (SHE04) 'Funcin del botn: Borrar contenidos 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Mensaje Answer = MsgBox("Sern borradas solamente las fechas, las horas, y las justificaciones de las horas extras." & Chr(13) & Chr(13) & "Est seguro que quiere borrarlas?", vbYesNo + vbExclamation, "Borrar") If Answer = 7 Then GoTo Exit1 'Seleccionar el rango de celdas para borrar (justificacin de las horas extras) Application.GoTo Reference:="HorasExtras_05" CellRange1 = ActiveCell.Address Application.GoTo Reference:="HorasExtras_06" ActiveCell.Offset(-1, 0).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Borrar los contenidos Range(CellRange1 & ":" & CellRange2).ClearContents 'Seleccionar el rango de celdas para borrar (las fechas y horas) Application.GoTo Reference:="HorasExtras_03" CellRange1 = ActiveCell.Address
Pgina 106
Application.GoTo Reference:="HorasExtras_04" ActiveCell.Offset(-1, 0).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select 'Borrar los contenidos Range(CellRange1 & ":" & CellRange2).ClearContents 'Mensaje MsgBox "Todas las fechas, las horas y las justificaciones de las horas extras se han borrado.", vbOKOnly + vbInformation, "Borrar" Exit Sub 'Errores Exit1: Exit Sub Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 107
Nombre del botn: Nueva Fila (SHE05) 'Funcin del botn: Insertar fila 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Insertar una fila Application.GoTo Reference:="HorasExtras_01" Selection.EntireRow.Insert 'Copiar la fila oculta Application.GoTo Reference:="HorasExtras_02" Selection.Copy 'Pegar la fila oculta Application.GoTo Reference:= "HorasExtras_01" ActiveCell.Offset(-1, 0).Select ActiveSheet.Paste 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "Una nueva fila se ha insertado.", 0 + 64, "Nueva Fila" Exit Sub 'Errores Errores:
Pgina 108
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 109
Nombre del botn: Eliminar Fila (SHE06) 'Funcin del botn: Eliminar fila 'Declaraciones Dim CellRange1 As String Dim CellRange2 As String Dim Answer As Integer 'Errores On Error GoTo Errores 'Desproteger la hoja ActiveSheet.Unprotect 'Mensaje MsgBox "Seleccione una celda de la fila que quiere eliminar. & Chr(13) & Chr(13) _ & No se puede eliminar la primera fila.", 0 + 64, "Eliminar Fila 'Verificar que la celda que se seleccion es una fila que registra los detalles de antigedad Do Until Mid(ActiveCell.Address, 2, 2) = "A$" ActiveCell.Offset(0, -1).Select Loop If ActiveCell.Text <> F And ActiveCell.Text <> PF Then GoTo Salir1 'Asegurarse de que la primera fila no est eliminado If ActiveCell.Text = PF Then GoTo Salir2 'Seleccionar la fila para eliminar CellRange1 = ActiveCell.Address ActiveCell.Offset(0, 9).Select CellRange2 = ActiveCell.Address Range(CellRange1 & ":" & CellRange2).Select
Pgina 110
'Mensaje Answer = MsgBox("Est seguro que quiere eliminar la fila?", 48 + 4, "Eliminar Fila") If Answer = 7 Then GoTo Salir3 Eliminar la fila Selection.EntireRow.Delete 'Proteger la hoja ActiveSheet.Protect 'Mensaje MsgBox "La fila se ha eliminado.", 0 + 64, "Eliminar Fila" Exit Sub 'Errores Salir1: MsgBox "Tiene que seleccionar una celda de una fila que registra una hora de entrada y una de salida.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir2: MsgBox "No se puede eliminar la primera fila.", 0 + 16, "Error" ActiveSheet.Protect Exit Sub Salir3: ActiveSheet.Protect Exit Sub Errores:
Pgina 111
MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 112
Nombre del botn: Men Configuracin (CON01) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MC MC.Activate MC.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 113
Nombre del botn: Men Principal (CON02) 'Funcin del botn: Ir a otra hoja 'Errores On Error GoTo Errores 'Ir a la hoja: MP MP.Activate MP.Range("A1").Select 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error" ActiveSheet.Protect
Pgina 114
Cuando el programa se abre 'Funcin del cdigo: Mostrar copyright 'Errores On Error GoTo Errores 'Ir al Men Principal MP.Activate 'Asegurarse de que la otra hoja est protegida ActiveSheet.Protect 'Mensaje MsgBox "Calculadora de Salarios Versin 2" & Chr(13) & Chr(13) _ & "Copyright 2012 Rupert Parsons Algunos Derechos Reservados" & Chr(13) & Chr(13) _ & "No puede utilizar esta obra para fines comerciales." & Chr(13) & Chr(13) _ & "Esta obra est bajo una licencia de Reconocimiento-NoComercial-CompartirIgual bajo la misma licencia 3.0 de Creative Commons o versiones avanzadas." & Chr(13) & Chr(13) _ & "Para ver los detalles de la licencia que se aplican a esta obra pulse el botn Copyright.", _ 0 + 64, "Copyright" 'Ir a la celda A5 de la hoja MP.Range("A1").Select Exit Sub 'Errores Errores: MsgBox "Lo siento la operacin asociada con este botn no funciona correctamente. Es posible que la estructura / diseo de la hoja del clculo o el cdigo del programa haya sido cambiado. Le recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"
Pgina 115
Deshabilitar cortar y pegar Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Application.CutCopyMode = xlCut Then Application.CutCopyMode = False Application.CellDragAndDrop = False End If End Sub Private Sub Workbook_Deactivate() Application.CellDragAndDrop = True End Sub
Pgina 116