Sei sulla pagina 1di 20

Capítulo III

Automatización de tareas repetitivas con Macros

Andrea Urgilez, MSc.


Activar pestaña Desarrollador

2
3

4
1
Grabar y detener una Macro
1 Limitaciones del grabador de macros
Los siguientes acciones no se graban:
2
• La apertura de ventanas.
• las acciones realizadas en ventanas
3 distintas de aquella en que se inició el
grabador.
4 • Cambio de ventana.
5 • No se graban las acciones no
relacionadas con el contenido del
documento; por ejemplo, los cambios
realizados en los cuadros de diálogo
6 Opciones, Organizador de macros y
Personalizar.
• Las selecciones se graban solamente si se
7 realizan a través del teclado, pero no
cuando se utiliza el ratón.
Cambia el estado del botón del paso 2. Pasa de
Grabar macro a Detener macro
Depurar una Macro
1
2

• Para ejecutar paso a paso el código se utiliza la tecla F8 y para ejecutar todo el
código completo el botón
• Para detener se utiliza el botón
Captura de datos desde un
rango de celdas o User Form
Diseño de formulario

• Tipo identificación
Tipo identificación
No. Cédula
Primer nombre
• Número de cédula Segundo nombre
Primer apellido

• Primer nombre Segundo apellido

• Segundo nombre
• Primer apellido
• Segundo apellido

1
• Se insertarán dos botones: Ingresar datos
2 y Cancelar
• Al insertar el botón aparecerá la ventana
de Asignar macro únicamente debe
3 pulsar Aceptar

4
Captura de datos desde un
rango de celdas o User Form
Tendremos un formulario similar al siguiente:
Captura de datos desde un
rango de celdas o User Form
Grabar Macro para Ingreso de datos
• En la Hoja 2 copiar los valores Tipo identificación, Número de
cédula, Primer nombre, Segundo nombre, Primer apellido,
Segundo apellido en la celada A1 utilizando la opción Pegado
especial. Elegir la opción Valores y Transponer.

1 Seleccionar y copiar
Captura de datos desde un
rango de celdas o User Form
Grabar Macro para Ingreso de datos
Clic derecho

4
5

RESULTADO:
Captura de datos desde un
rango de celdas o User Form
• En la Hoja 2 ubicarse en la celda A2 y luego dirigirse a la Hoja
1 y ubicarse en la celda adyacente a Tipo de identificación.

• A continuación comenzamos a grabar la Macro.


1
2

5
Captura de datos desde un
rango de celdas o User Form
• Seleccionar las casillas en blanco con el teclado (tecla hacia
abajo ) y copiar

Seleccionar y copiar

• Pasar a la Hoja 2 y ubicarse una fila más abajo del número de


registros totales. Es decir si va a ingresar 20 registros deberá
ubicarse en la fila 21. Luego hacer clic derecho elegir Pegado
Especial y seleccionar Valores y Transponer Este paso simula
la copia de los datos ingresados en el formulario a la Hoja 2 que
sería una especie de base de datos.
Captura de datos desde un
rango de celdas o User Form
• En la misma hoja 2, ahora ordenaremos alfabéticamente la
tabla. Seleccionar las columnas desde la A – G y bajar hasta la
fila 21. Luego ir a la pestaña inicio y buscar la opción Ordenar
y Filtrar, elegir la opción Personalizar y en columna
seleccionar la columna por la que desea que se ordene la tabla.
Activar la casilla Mis datos tienen encabezado.

• Ubicarse en la posición A2 de la Hoja 2 y regresar nuevamente


a la Hoja 1.

• Seleccione nuevamente las casillas en blanco y pulso la tecla


Suprimir con el teclado y luego hacer clic en el espacio en
blanco que se encuentra el frente de Tipo de Identificación.

• Detener la grabación de la Macro.


Captura de datos desde un
rango de celdas o User Form
Asignar la Macro al botón Ingresar datos

• Clic derecho sobre el botón ingresar datos. Elegir la opción


Asignar macro

1
3
Captura de datos desde un
rango de celdas o User Form
Asignar la Macro al botón Ingresar datos

• Clic derecho sobre el botón ingresar datos. Elegir la opción


Asignar macro

1
3
Captura de datos desde un
rango de celdas o User Form
Macro del botón Cancelar

• Guardar macro.
• Seleccionar las casillas de fondo blanco y presionar la tecla
Suprimir.
• Detener la macro.
• Asignar la macro creada al botón
Ejercicios
Crear un formulario que recoja los siguientes datos:

• Id Producto
• Descripción
• Precio Unitario
• Cantidad

Crear dos botones: Guarda y cancelar.


Al presionar el botón guardar los datos deberán guardarse en una
hoja de Excel que contendrá los mismos encabezados que el
formulario. Además los datos ingresados deben ordenarse
alfabéticamente según la descripción del producto.

Al presionar el botón guardar se eliminarán los datos ingresados


hasta ese momento.
Visual Basic - User Form

cboGenero.AddItem ("Femenino")
cboGenero.AddItem ("Masculino")
Visual Basic - User Form
Dim iRow As Long
Dim ws As Worksheet
Set ws = Worksheets("Hoja1")

'encuentra la primera fila vacía en la base de datos Botón Aceptar


iRow = ws.Cells.Find(What:="*", SearchOrder:=xlRows, _
SearchDirection:=xlPrevious, LookIn:=xlValues).Row + 1

'verifica el ingreso de datos

If Trim(Me.txtNombre.Value) = "" Then


Me.txtNombre.SetFocus
MsgBox "Por favor ingrese la información solicitada"
Exit Sub
End If

'copia la información a la base de datos (hoja en excel)


ws.Cells(iRow, 1).Value = Me.txtNombre.Value
ws.Cells(iRow, 2).Value = Me.txtApellido.Value
ws.Cells(iRow, 3).Value = Me.txtEdad.Value
ws.Cells(iRow, 4).Value = Me.cboGenero.Value

MsgBox "Data added", vbOKOnly + vbInformation, "La información ha sido agregada correctamente"

'limpia los campos


Me.txtNombre.Value = ""
Me.txtApellido.Value = ""
Me.txtEdad.Value = ""
Me.cboGenero.Value = ""
Me.txtNombre.SetFocus
Visual Basic - User Form
Botón Cancelar
Unload Me

MACRO

Sub CargarFormulario()
UserForm1.Show
End Sub
Ejercicio
Crear un formulario que recoja los siguientes datos:

• Id Producto
• Descripción
• Categoría (lista desplegable)
• Precio Unitario
• Iva
• Precio con IVA (calculado)
Crear dos botones: Guardar y Cancelar.
Al presionar el botón guardar los datos deberán guardarse en una
hoja de Excel que contendrá los mismos encabezados que el
formulario. Si no ha ingresado ningún dato mostrar un mensaje
que indique lo anterior.
Al presionar el botón Cancelar saldrá automáticamente de la
aplicación.
Crear un botón en la hoja de Excel. Al hacer clic en el botón debe
cargar directamente el formulario .

Potrebbero piacerti anche