116
Página 1 Excel Macros / VBA Calculadora de Salarios El código fuente del programa Copie y pegue segmentos de códigos para escribir sus propias macros de Excel Ejemplos de códigos para aprender cómo escribir macros de Excel usando el lenguaje 'Visual Basic para Aplicaciones' (VBA)

Excel Macros VBA (Calculadora de Salarios)

Embed Size (px)

DESCRIPTION

El código fuente del programa.Copie y pegue segmentos de códigos para escribir sus propias macros de Excel.Ejemplos de códigos para aprender cómo escribir macros de Excel usando el lenguaje 'Visual Basic para Aplicaciones' (VBA).

Citation preview

Page 1: Excel Macros VBA (Calculadora de Salarios)

Página 1

Excel Macros / VBA

Calculadora de Salarios

El código fuente del programa

Copie y pegue segmentos de códigos para escribir

sus propias macros de Excel

Ejemplos de códigos para aprender cómo escribir

macros de Excel usando el lenguaje 'Visual Basic

para Aplicaciones' (VBA)

Page 2: Excel Macros VBA (Calculadora de Salarios)

Página 2

Si quiere usar este material para segmentos de códigos o para aprender cómo escribir macros:

Este material incluye códigos usando el lenguaje 'Visual Basic para Aplicaciones' (VBA) que logran lo

siguiente:

• Navegar de una hoja de cálculo a otra que son agrupadas en un libro

• Insertar filas

• Eliminar filas

• Cambiar las posiciones decimales que se muestran en celdas de números

• Manejar errores

• Mostrar un mensaje en un cuadro de diálogo

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 códigos que se incluyen en este material para sus propias hojas

de cálculo sin restricción de copyright.

Page 3: Excel Macros VBA (Calculadora de Salarios)

Página 3

La estructura del programa “Calculadora de Salarios”

Nombre de la hoja VBA Ref. Nombre del botón VBA Ref. Página

Bienvenido - - - -

Menú Principal MP Salarios MP01 6

Configurar MP02 7

Copyright MP03 8

Guardar / Salir MP04 9

Menú Configuración MC Nombre de su institución MC01 10

Símbolo de su moneda MC02 11

Año y Mes MC03 12

Centro de costos / Departamento MC04 13

Tipos de remuneraciones MC05 14

Nombres de empleados MC06 15

Aguinaldos MC07 16

Hora Cátedra MC08 17

Posiciones decimales: de 2 a 0 MC09 18

Posiciones decimales: de 0 a 2 MC10 26

Redondear MC11 34

Menú Principal MC12 35

Menú Salarios MS Gastos anuales de salarios MS01 36

Aguinaldos MS02 37

Antigüedad MS03 38

Indemnización MS04 39

Salarios Variables (pago por hora) MS05 40

Horas Extras MS06 41

Menú Principal MS07 42

Page 4: Excel Macros VBA (Calculadora de Salarios)

Página 4

Nombre de la hoja VBA Ref. Nombre del botón VBA Ref. Página

Salarios Gastos Anuales (1) SGA Menú Salarios SGA01 43

Instrucciones (Configurar) SGA02 44

Imprimir Detalles SGA03 46

Imprimir Resumen SGA04 48

Nuevo Empleado SGA05 50

Eliminar Empleado SGA06 52

Nueva Fila SGA07 55

Eliminar Fila SGA08 58

Salarios Gastos Anuales (2) SGAI - - -

Salarios Aguinaldos SAG Menú Salarios SAG01 61

Instrucciones (Configurar) SAG02 62

Imprimir SAG03 64

Borrar Salarios SAG04 66

Nuevo Empleado SAG05 68

Eliminar Empleado SAG06 70

Nueva Fila SAG07 73

Eliminar Fila SAG08 75

Salarios Antigüedad SAN Menú Salarios SAN01 78

Instrucciones (Configurar) SAN02 79

Nueva Fila SAN03 80

Eliminar Fila SAN04 82

Salarios Indemnización (1) SIN Menú Salarios SIN01 85

Instrucciones (Configurar) SIN02 86

Imprimir Resultados SIN03 87

Page 5: Excel Macros VBA (Calculadora de Salarios)

Página 5

Nombre de la hoja VBA Ref. Nombre del botón VBA Ref. Página

Salarios Indemnización (1) SIN Borrar Datos SIN04 89

Salarios Indemnización (2) SINI - - -

Salarios Variables SVA Menú Salarios SVA01 91

Instrucciones (Configurar) SVA02 92

Imprimir SVA03 93

Borrar Datos SVA04 95

Nueva Fila SVA05 97

Eliminar Fila SVA06 99

Salarios Horas Extras SHE Menú Salarios SHE01 102

Instrucciones (Configurar) SHE02 103

Imprimir SHE03 104

Borrar Datos SHE04 106

Nueva Fila SHE05 108

Eliminar Fila SHE06 110

Configuración CON Menú Configuración CON01 113

Menú Principal CON02 114

Listas - - - -

Page 6: Excel Macros VBA (Calculadora de Salarios)

Página 6

Nombre del botón: Salarios (MP01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 7: Excel Macros VBA (Calculadora de Salarios)

Página 7

Nombre del botón: Configurar (MP02)

'Función del botón: 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ú Configuración’ desplácese hacia abajo en la

planilla.”,vbOKOnly + 64, "Menú Configuración"

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 8: Excel Macros VBA (Calculadora de Salarios)

Página 8

Nombre del botón: Copyright (MP03)

'Función del botón: Abrir una página 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 página web

ThisWorkbook.FollowHyperlink Address:="http://creativecommons.org/licenses/by-nc-

sa/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 conexión de Internet funciona y, después de usar este botón, aún no puede ver la licencia del

copyright en línea, seleccione la pestaña ‘Bienvenido’ y a continuación, haga clic en el enlace que se

ubica en la sección ‘Copyright’.", vbOKOnly + vbCritical, "Error"

Page 9: Excel Macros VBA (Calculadora de Salarios)

Página 9

Nombre del botón: Guardar / Salir (MP04)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

End Select

Page 10: Excel Macros VBA (Calculadora de Salarios)

Página 10

Nombre del botón: Nombre de su institución (MC01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 11: Excel Macros VBA (Calculadora de Salarios)

Página 11

Nombre del botón: Símbolo de su moneda (MC02)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 12: Excel Macros VBA (Calculadora de Salarios)

Página 12

Nombre del botón: Año y Mes (MC03)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 13: Excel Macros VBA (Calculadora de Salarios)

Página 13

Nombre del botón: Centro de costos / Departamentos (MC04)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 14: Excel Macros VBA (Calculadora de Salarios)

Página 14

Nombre del botón: Tipos de Remuneraciones (MC05)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 15: Excel Macros VBA (Calculadora de Salarios)

Página 15

Nombre del botón: Nombres de empleados (MC06)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 16: Excel Macros VBA (Calculadora de Salarios)

Página 16

Nombre del botón: Aguinaldos (MC07)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 17: Excel Macros VBA (Calculadora de Salarios)

Página 17

Nombre del botón: Hora Cátedra (MC08)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 18: Excel Macros VBA (Calculadora de Salarios)

Página 18

Nombre del botón: Posiciones Decimales de 2 a 0 (MC09)

'Función del botón: 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

Page 19: Excel Macros VBA (Calculadora de Salarios)

Página 19

'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

Page 20: Excel Macros VBA (Calculadora de Salarios)

Página 20

'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

Page 21: Excel Macros VBA (Calculadora de Salarios)

Página 21

‘--------------------------------------------------------------------------------------------------------------------------------------

'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:="Indemnización_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

Page 22: Excel Macros VBA (Calculadora de Salarios)

Página 22

Application.GoTo Reference:="Indemnización_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)

Page 23: Excel Macros VBA (Calculadora de Salarios)

Página 23

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

Page 24: Excel Macros VBA (Calculadora de Salarios)

Página 24

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 número entero

CON.Activate

CON.Range("B312").Select

ActiveCell.Value = 0

'Mensaje

MsgBox " Los montos calculados ahora se redondean al número entero. Si quiere, se puede

cambiarlo.", 0 + 64, "Posiciones Decimales"

Exit Sub

'Errores

Salir1:

Exit Sub

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Application.ScreenUpdating = True

Page 25: Excel Macros VBA (Calculadora de Salarios)

Página 25

Application.Cursor = xlDefault

Application.StatusBar = False

Page 26: Excel Macros VBA (Calculadora de Salarios)

Página 26

Nombre del botón: Posiciones Decimales de 0 a 2 (MC10)

'Función del botón: 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

Page 27: Excel Macros VBA (Calculadora de Salarios)

Página 27

'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

Page 28: Excel Macros VBA (Calculadora de Salarios)

Página 28

'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

Page 29: Excel Macros VBA (Calculadora de Salarios)

Página 29

‘--------------------------------------------------------------------------------------------------------------------------------------

'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:="Indemnización_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

Page 30: Excel Macros VBA (Calculadora de Salarios)

Página 30

Application.GoTo Reference:="Indemnización_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)

Page 31: Excel Macros VBA (Calculadora de Salarios)

Página 31

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

Page 32: Excel Macros VBA (Calculadora de Salarios)

Página 32

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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Application.ScreenUpdating = True

Page 33: Excel Macros VBA (Calculadora de Salarios)

Página 33

Application.Cursor = xlDefault

Application.StatusBar = False

Page 34: Excel Macros VBA (Calculadora de Salarios)

Página 34

Nombre del botón: Redondear (MC11)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 35: Excel Macros VBA (Calculadora de Salarios)

Página 35

Nombre del botón: Menú Principal (MC12)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 36: Excel Macros VBA (Calculadora de Salarios)

Página 36

Nombre del botón: Gastos anuales de salarios (MS01)

'Función del botón: 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 fórmulas 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 sólo 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 37: Excel Macros VBA (Calculadora de Salarios)

Página 37

Nombre del botón: Aguinaldos (MS02)

'Función del botón: 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 fórmulas 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 38: Excel Macros VBA (Calculadora de Salarios)

Página 38

Nombre del botón: Antigüedad (MS03)

'Función del botón: 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 fórmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja.”, 0

+ 64, "Antigüedad"

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 39: Excel Macros VBA (Calculadora de Salarios)

Página 39

Nombre del botón: Indemnización (MS04)

'Función del botón: 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 fórmulas y los formatos de las celdas no se puede cortar y pegar en esta hoja.”, 0

+ 64, "Indemnización"

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 40: Excel Macros VBA (Calculadora de Salarios)

Página 40

Nombre del botón: Salarios Variables (MS05)

'Función del botón: 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 fórmulas 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 41: Excel Macros VBA (Calculadora de Salarios)

Página 41

Nombre del botón: Horas Extras (MS06)

'Función del botón: 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 fórmulas 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 42: Excel Macros VBA (Calculadora de Salarios)

Página 42

Nombre del botón: Menú Principal (MS07)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 43: Excel Macros VBA (Calculadora de Salarios)

Página 43

Nombre del botón: Menú Salarios (SGA01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 44: Excel Macros VBA (Calculadora de Salarios)

Página 44

Nombre del botón: Instrucciones (SGA02)

'Función del botón: Mostrar Instrucciones

'Errores

On Error GoTo Errores

'Mensaje (1)

MsgBox “Si necesita insertar más empleados en la hoja:” & Chr(13) & Chr(13) _

& “- Pulse el botón ‘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 botón ‘Eliminar Empleado’.” & Chr(13) & Chr(13) _

& “(*no se puede eliminar las filas del primer empleado)” & Chr(13) & Chr(13) _

& “Si necesita más 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 botón ‘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 botón ‘Eliminar Fila’.” & Chr(13) & Chr(13) _

& “(**no se puede eliminar la primera fila de cada empleado)”, _

vbOKOnly + 64, "Cómo Configurar la hoja y los informes (1) - Los Botones"

'Mensaje (2)

MsgBox “Vaya al Menú Configuración para lo siguiente:” & Chr(13) & Chr(13) _

& “Cargar el nombre de su institución.” & Chr(13) & Chr(13) _

& “Cargar el símbolo de moneda para su país.” & 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 cómo los montos calculados son redondeados.”, _

vbOKOnly + 64, "Cómo Configurar la hoja y los informes (2) - Menú Configuración"

Exit Sub

'Errores

Page 45: Excel Macros VBA (Calculadora de Salarios)

Página 45

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 46: Excel Macros VBA (Calculadora de Salarios)

Página 46

Nombre del botón: Imprimir Detalles (SGA03)

'Función del botón: 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 botón ‘Imprimir’ que aparece después de pulsar ‘Aceptar’ abajo.” &

Chr(13) & Chr(13) _

& “Para mejorar la presentación del informe:” & Chr(13) & Chr(13) _

& “Le recomiendo que inserte un salto de página arriba de cada empleado cuyos datos pasan a la

siguiente página. El informe se ubica a partir de la columna W de esta hoja.” & Chr(13) & Chr(13) _

& “Tamaño 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 botón

‘Configurar…’ (Excel 1997 – 2003) o ‘Configurar página…’ (Excel 2007 / 2010) y seleccione el tamaño

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

Page 47: Excel Macros VBA (Calculadora de Salarios)

Página 47

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 configuración de la página (verifique el tamaño de papel

que se seleccionó) o el ‘driver’ de su impresora.", _

vbOKOnly + vbCritical, "Error"

Exit Sub

Case Else

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Exit Sub

End Select

Page 48: Excel Macros VBA (Calculadora de Salarios)

Página 48

Nombre del botón: Imprimir Resumen (SGA04)

'Función del botón: 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 botón ‘Imprimir’ que aparece después de pulsar ‘Aceptar’

abajo.” & Chr(13) & Chr(13) _

& “Tamaño 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 botón

‘Configurar…’ (Excel 1997 – 2003) o ‘Configurar página…’ (Excel 2007 / 2010) y seleccione el tamaño

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) _

Page 49: Excel Macros VBA (Calculadora de Salarios)

Página 49

& "Es posible que haya un problema con la configuración de la página (verifique el tamaño de papel

que se seleccionó) o el ‘driver’ de su impresora.", _

vbOKOnly + vbCritical, "Error"

Exit Sub

Case Else

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Exit Sub

End Select

Page 50: Excel Macros VBA (Calculadora de Salarios)

Página 50

Nombre del botón: Nuevo Empleado (SGA05)

'Función del botón: 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

Page 51: Excel Macros VBA (Calculadora de Salarios)

Página 51

'Mensaje

MsgBox "Un nuevo empleado ha sido insertado.", 0 + 64, "Nuevo empleado"

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 52: Excel Macros VBA (Calculadora de Salarios)

Página 52

Nombre del botón: Eliminar Empleado (SGA06)

'Función del botón: 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

Page 53: Excel Macros VBA (Calculadora de Salarios)

Página 53

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

Page 54: Excel Macros VBA (Calculadora de Salarios)

Página 54

Exit Sub

Salir3:

ActiveSheet.Protect

Exit Sub

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 55: Excel Macros VBA (Calculadora de Salarios)

Página 55

Nombre del botón: Nueva Fila (SGA07)

'Función del botón: 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 remuneración 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

Page 56: Excel Macros VBA (Calculadora de Salarios)

Página 56

Application.GoTo Reference:="SAnuales_03"

Selection.Copy

'Pegar la fila oculta

Range(CellRange1).Select

ActiveSheet.Paste

'Introducir el vínculo 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

Page 57: Excel Macros VBA (Calculadora de Salarios)

Página 57

'Errores

Salir1:

MsgBox "Tiene que seleccionar la celda del nombre del empleado.", 0 + 16, "Error"

ActiveSheet.Protect

Exit Sub

Errores:

MsgBox "Lo siento - la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 58: Excel Macros VBA (Calculadora de Salarios)

Página 58

Nombre del botón: Eliminar Fila (SGA08)

'Función del botón: 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

Page 59: Excel Macros VBA (Calculadora de Salarios)

Página 59

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 remuneración.", 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:

Page 60: Excel Macros VBA (Calculadora de Salarios)

Página 60

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 61: Excel Macros VBA (Calculadora de Salarios)

Página 61

Nombre del botón: Menú Salarios (SAG01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 62: Excel Macros VBA (Calculadora de Salarios)

Página 62

Nombre del botón: Instrucciones (SAG02)

'Función del botón: Mostrar Instrucciones

'Errores

On Error GoTo Errores

'Mensaje (1)

MsgBox “Si necesita insertar más empleados en la hoja:” & Chr(13) & Chr(13) _

& “- Pulse el botón ‘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 botón ‘Eliminar Empleado’.” & Chr(13) & Chr(13) _

& “(*no se puede eliminar las filas del primer empleado)” & Chr(13) & Chr(13) _

& “Si necesita más 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 botón ‘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 botón ‘Eliminar Fila’.” & Chr(13) & Chr(13) _

& “(**no se puede eliminar la primera fila de cada empleado)”, _

vbOKOnly + 64, "Cómo Configurar la hoja (1) - Los Botones"

'Mensaje (2)

MsgBox “Vaya al Menú Configuración para lo siguiente:” & Chr(13) & Chr(13) _

& “Cargar el nombre de su institución.” & Chr(13) & Chr(13) _

& “Cargar el símbolo de moneda para su país.” & 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 número de los días 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 cómo los montos calculados son redondeados.”, _

vbOKOnly + 64, "Cómo Configurar la hoja (2) - Menú Configuración"

'Ir a una celda de meses

Page 63: Excel Macros VBA (Calculadora de Salarios)

Página 63

Range("E9").Select

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 64: Excel Macros VBA (Calculadora de Salarios)

Página 64

Nombre del botón: Imprimir (SAG03)

'Función del botón: Imprimir

'Errores

On Error GoTo Errores

'Mensaje

MsgBox “Para imprimirlo pulse el botón ‘Imprimir’ que aparece después de pulsar ‘Aceptar’ abajo.” &

Chr(13) & Chr(13) _

& “Para mejorar la presentación del informe:” & Chr(13) & Chr(13) _

& “Le recomiendo que inserte un salto de página arriba de cada empleado cuyos datos pasan a la

siguiente página.” & Chr(13) & Chr(13) _

& “Tamaño 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 botón

‘Configurar…’ (Excel 1997 – 2003) o ‘Configurar página…’ (Excel 2007 / 2010) y seleccione el tamaño

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 configuración de la página (verifique el tamaño de papel

que se seleccionó) o el ‘driver’ de su impresora.", _

vbOKOnly + vbCritical, "Error"

Page 65: Excel Macros VBA (Calculadora de Salarios)

Página 65

Exit Sub

Case Else

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Exit Sub

End Select

Page 66: Excel Macros VBA (Calculadora de Salarios)

Página 66

Nombre del botón: Borrar Salarios (SAG04)

'Función del botón: 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("Serán 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

Page 67: Excel Macros VBA (Calculadora de Salarios)

Página 67

ActiveSheet.Protect

'Mensaje

MsgBox "Todos las remuneraciones se han borrado.", vbOKOnly + vbInformation, "Borrar"

Exit Sub

'Errores

Exit1:

Exit Sub

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 68: Excel Macros VBA (Calculadora de Salarios)

Página 68

Nombre del botón: Nuevo Empleado (SAG05)

'Función del botón: 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

Page 69: Excel Macros VBA (Calculadora de Salarios)

Página 69

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 70: Excel Macros VBA (Calculadora de Salarios)

Página 70

Nombre del botón: Eliminar Empleado (SAG06)

'Función del botón: 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

Page 71: Excel Macros VBA (Calculadora de Salarios)

Página 71

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

Page 72: Excel Macros VBA (Calculadora de Salarios)

Página 72

Salir3:

ActiveSheet.Protect

Exit Sub

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 73: Excel Macros VBA (Calculadora de Salarios)

Página 73

Nombre del botón: Nueva Fila (SAG07)

'Función del botón: 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 remuneración 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"

Page 74: Excel Macros VBA (Calculadora de Salarios)

Página 74

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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 75: Excel Macros VBA (Calculadora de Salarios)

Página 75

Nombre del botón: Eliminar Fila (SAG08)

'Función del botón: 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

Page 76: Excel Macros VBA (Calculadora de Salarios)

Página 76

'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 remuneración.", 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:

Page 77: Excel Macros VBA (Calculadora de Salarios)

Página 77

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 78: Excel Macros VBA (Calculadora de Salarios)

Página 78

Nombre del botón: Menú Salarios (SAN01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 79: Excel Macros VBA (Calculadora de Salarios)

Página 79

Nombre del botón: Instrucciones (SAN02)

'Función del botón: Mostrar Instrucciones

'Errores

On Error GoTo Errores

'Mensaje (1)

MsgBox “Si necesita más filas en las cuales registrar la antigüedad de sus empleados:” & Chr(13) &

Chr(13) _

& “- Pulse el botón ‘Nueva Fila’.” & Chr(13) & Chr(13) _

& “Si quiere menos filas en las cuales registrar la antigüedad de sus empleados:” & Chr(13) & Chr(13)

_

& “-Seleccione una celda de la fila que quiere eliminar.*” & Chr(13) & Chr(13) _

& “- Pulse el botón ‘Eliminar Fila’.” & Chr(13) & Chr(13) _

& “(*no se puede eliminar la primera fila)”, _

vbOKOnly + 64, "Cómo Configurar la hoja (1) - Los Botones"

'Mensaje (2)

MsgBox “Vaya al ‘Menú Configuración’ para lo siguiente:” & Chr(13) & Chr(13) _

& “Llenar la lista desplegable que aparece donde tiene que cargar un nombre de empleado.”, _

vbOKOnly + 64, "Cómo Configurar la hoja (2) - Menú Configuración"

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 80: Excel Macros VBA (Calculadora de Salarios)

Página 80

Nombre del botón: Nueva Fila (SAN03)

'Función del botón: Insertar fila

'Errores

On Error GoTo Errores

'Desproteger la hoja

ActiveSheet.Unprotect

'Insertar una fila

Application.GoTo Reference:="Antigüedad_01"

Selection.EntireRow.Insert

'Copiar la fila oculta

Application.GoTo Reference:="Antigüedad_02"

Selection.Copy

'Pegar la fila oculta

Application.GoTo Reference:= "Antigüedad_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:

Page 81: Excel Macros VBA (Calculadora de Salarios)

Página 81

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 82: Excel Macros VBA (Calculadora de Salarios)

Página 82

Nombre del botón: Eliminar Fila (SAN04)

'Función del botón: 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 antigüedad

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

Page 83: Excel Macros VBA (Calculadora de Salarios)

Página 83

'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 antigüedad.", 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:

Page 84: Excel Macros VBA (Calculadora de Salarios)

Página 84

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 85: Excel Macros VBA (Calculadora de Salarios)

Página 85

Nombre del botón: Menú Salarios (SIN01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 86: Excel Macros VBA (Calculadora de Salarios)

Página 86

Nombre del botón: Instrucciones (SIN02)

'Función del botón: Mostrar Instrucciones

'Errores

On Error GoTo Errores

'Mensaje

MsgBox “Vaya al Menú Configuración para lo siguiente:” & Chr(13) & Chr(13) _

& “Cargar el nombre de su institución.” & Chr(13) & Chr(13) _

& “Cargar el símbolo de moneda para su país.” & 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 cómo los montos calculados son redondeados.”, _

vbOKOnly + 64, "Cómo Configurar la hoja y el informe - Menú Configuración"

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 87: Excel Macros VBA (Calculadora de Salarios)

Página 87

Nombre del botón: Imprimir Resultados (SIN03)

'Función del botón: 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 botón ‘Imprimir’ que aparece después de pulsar ‘Aceptar’

abajo.” & Chr(13) & Chr(13) _

& “Tamaño 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 botón

‘Configurar…’ (Excel 1997 – 2003) o ‘Configurar página…’ (Excel 2007 / 2010) y seleccione el tamaño

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) _

Page 88: Excel Macros VBA (Calculadora de Salarios)

Página 88

& "Es posible que haya un problema con la configuración de la página (verifique el tamaño de papel

que se seleccionó) o el ‘driver’ de su impresora.", _

vbOKOnly + vbCritical, "Error"

Exit Sub

Case Else

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Exit Sub

End Select

Page 89: Excel Macros VBA (Calculadora de Salarios)

Página 89

Nombre del botón: Borrar Datos (SIN04)

'Función del botón: Borrar contenidos

'Errores

On Error GoTo Errores

'Mensaje

Answer = MsgBox("Serán 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:

Page 90: Excel Macros VBA (Calculadora de Salarios)

Página 90

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 91: Excel Macros VBA (Calculadora de Salarios)

Página 91

Nombre del botón: Menú Salarios (SVA01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 92: Excel Macros VBA (Calculadora de Salarios)

Página 92

Nombre del botón: Instrucciones (SVA02)

'Función del botón: Mostrar Instrucciones

'Errores

On Error GoTo Errores

'Mensaje (1)

MsgBox “Si necesita más filas en las cuales registrar las horas de entrada y las horas de salida:” &

Chr(13) & Chr(13) _

& “- Pulse el botón ‘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 botón ‘Eliminar Fila’.” & Chr(13) & Chr(13) _

& “(*no se puede eliminar la primera fila)”, _

vbOKOnly + 64, "Cómo Configurar la hoja (1) - Los Botones"

'Mensaje (2)

MsgBox “Vaya al Menú Configuración para lo siguiente:” & Chr(13) & Chr(13) _

& “Cargar el nombre de su institución.” & Chr(13) & Chr(13) _

& “Cargar el símbolo de moneda para su país.” & 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 cómo los tiempos calculados en decimales son redondeados ubíquese en la celda

J13)”, _

vbOKOnly + 64, "Cómo Configurar la hoja (2) - Menú Configuración"

'Ir a la celda de redondear

Range("J13").Select

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 93: Excel Macros VBA (Calculadora de Salarios)

Página 93

Nombre del botón: Imprimir (SVA03)

'Función del botón: Imprimir

'Errores

On Error GoTo Errores

'Mensaje

MsgBox “Para imprimirlo pulse el botón ‘Imprimir’ que aparece después de pulsar ‘Aceptar’ abajo.” &

Chr(13) & Chr(13) _

& “Tamaño 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 botón

‘Configurar…’ (Excel 1997 – 2003) o ‘Configurar página…’ (Excel 2007 / 2010) y seleccione el tamaño

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 configuración de la página (verifique el tamaño de papel

que se seleccionó) o el ‘driver’ de su impresora.", _

vbOKOnly + vbCritical, "Error"

Exit Sub

Page 94: Excel Macros VBA (Calculadora de Salarios)

Página 94

Case Else

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Exit Sub

End Select

Page 95: Excel Macros VBA (Calculadora de Salarios)

Página 95

Nombre del botón: Borrar Datos (SVA04)

'Función del botón: 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("Serán 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

Page 96: Excel Macros VBA (Calculadora de Salarios)

Página 96

Exit1:

Exit Sub

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 97: Excel Macros VBA (Calculadora de Salarios)

Página 97

Nombre del botón: Nueva Fila (SVA05)

'Función del botón: 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:

Page 98: Excel Macros VBA (Calculadora de Salarios)

Página 98

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 99: Excel Macros VBA (Calculadora de Salarios)

Página 99

Nombre del botón: Eliminar Fila (SVA06)

'Función del botón: 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 antigüedad

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

Page 100: Excel Macros VBA (Calculadora de Salarios)

Página 100

'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:

Page 101: Excel Macros VBA (Calculadora de Salarios)

Página 101

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 102: Excel Macros VBA (Calculadora de Salarios)

Página 102

Nombre del botón: Menú Salarios (SHE01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 103: Excel Macros VBA (Calculadora de Salarios)

Página 103

Nombre del botón: Instrucciones (SHE02)

'Función del botón: Mostrar Instrucciones

'Errores

On Error GoTo Errores

'Mensaje (1)

MsgBox “Si necesita más filas en las cuales registrar las horas de entrada y las horas de salida:” &

Chr(13) & Chr(13) _

& “- Pulse el botón ‘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 botón ‘Eliminar Fila’.” & Chr(13) & Chr(13) _

& “(*no se puede eliminar la primera fila)”, _

vbOKOnly + 64, "Cómo Configurar la hoja (1) - Los Botones"

'Mensaje (2)

MsgBox “Vaya al Menú Configuración para lo siguiente:” & Chr(13) & Chr(13) _

& “Cargar el nombre de su institución.” & Chr(13) & Chr(13) _

& “Cargar el símbolo de moneda para su país.” & 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 cómo los tiempos calculados en decimales son redondeados ubíquese en la celda

L15)”, _

vbOKOnly + 64, "Cómo Configurar la hoja (2) - Menú Configuración"

'Ir a la celda de redondear

Range("L15").Select

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 104: Excel Macros VBA (Calculadora de Salarios)

Página 104

Nombre del botón: Imprimir (SHE03)

'Función del botón: Imprimir

'Errores

On Error GoTo Errores

'Mensaje

MsgBox “Para imprimirlo pulse el botón ‘Imprimir’ que aparece después de pulsar ‘Aceptar’ abajo.” &

Chr(13) & Chr(13) _

& “Tamaño 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 botón

‘Configurar…’ (Excel 1997 – 2003) o ‘Configurar página…’ (Excel 2007 / 2010) y seleccione el tamaño

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 configuración de la página (verifique el tamaño de papel

que se seleccionó) o el ‘driver’ de su impresora.", _

vbOKOnly + vbCritical, "Error"

Exit Sub

Page 105: Excel Macros VBA (Calculadora de Salarios)

Página 105

Case Else

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Exit Sub

End Select

Page 106: Excel Macros VBA (Calculadora de Salarios)

Página 106

Nombre del botón: Borrar Datos (SHE04)

'Función del botón: Borrar contenidos

'Declaraciones

Dim CellRange1 As String

Dim CellRange2 As String

Dim Answer As Integer

'Errores

On Error GoTo Errores

'Mensaje

Answer = MsgBox("Serán 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 (justificación 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

Page 107: Excel Macros VBA (Calculadora de Salarios)

Página 107

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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 108: Excel Macros VBA (Calculadora de Salarios)

Página 108

Nombre del botón: Nueva Fila (SHE05)

'Función del botón: 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:

Page 109: Excel Macros VBA (Calculadora de Salarios)

Página 109

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 110: Excel Macros VBA (Calculadora de Salarios)

Página 110

Nombre del botón: Eliminar Fila (SHE06)

'Función del botón: 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 antigüedad

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

Page 111: Excel Macros VBA (Calculadora de Salarios)

Página 111

'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:

Page 112: Excel Macros VBA (Calculadora de Salarios)

Página 112

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 113: Excel Macros VBA (Calculadora de Salarios)

Página 113

Nombre del botón: Menú Configuración (CON01)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 114: Excel Macros VBA (Calculadora de Salarios)

Página 114

Nombre del botón: Menú Principal (CON02)

'Función del botón: 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 operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

ActiveSheet.Protect

Page 115: Excel Macros VBA (Calculadora de Salarios)

Página 115

Cuando el programa se abre

'Función del código: 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 Versión 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 botón ‘Copyright’.", _

0 + 64, "Copyright"

'Ir a la celda “A5” de la hoja

MP.Range("A1").Select

Exit Sub

'Errores

Errores:

MsgBox "Lo siento – la operación asociada con este botón no funciona correctamente. Es posible que

la estructura / diseño de la hoja del cálculo o el código del programa haya sido cambiado. Le

recomiendo que descargue el programa de nuevo.", vbOKOnly + vbCritical, "Error"

Page 116: Excel Macros VBA (Calculadora de Salarios)

Página 116

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

---------------------------------------------------------------------------------------------------------------------------------------

Fin del documento