SlideShare una empresa de Scribd logo
1 de 51
APUNTES DE MACROS
DATO
Es todo representación de una entidad y que es susceptible de tratamiento ya sea en un programa o proceso
informático. Por ejemplo: nombre, apellido, precio, edad, valor unitario.
Los datos por si solo no permiten la toma de decisiones (esto es posible cuando se tiene un grupo de datos
coherente).
INFORMACIÓN
Conjunto de datos relacionados entre si, que de alguna forma permite la toma de decisiones. Soporta un
análisis.
PROCESO DE DATOS
COMPUTADOR
Máquina capaz de aceptar datos de entrada, procesarlos y entregar resultados de salida (información).
ESTRUCTURA GENERAL DE UN COMPUTADOR
ALGORITMO
Los algoritmos son procedimientos específicos que señalan paso a paso la solución de un problema y que
garantizan el logro de una solución.
Un procedimientos algorítmico es una sucesión de acciones que hay que realizar, completamente prefijada. Su
correcta ejecución lleva a una solución segura del problema.
PROGRAMA
Conjunto de instrucciones escritas en un lenguaje de alto nivel (por ejemplo Visual Basic) que en una secuencia
lógica puede entregar un resultado esperado.
Apuntes preparado por : Rebeca Cartagena Jessen 2
CONCEPTOS GENERALES
ENTRADA
(datos +
instrucciones)
Secuencia lógica
de operaciones
SALIDA
(información)
REGLAS
VARIABLE
Son elementos que contienen información que se encuentran almacenados en la memoria principal
del computador. Pueden contener información alfabética, numérica o alfanumérica. Las variables
deben tener nombres nemotécnicos ( representativos a la información que se está almacenando ).
Es necesario en un programa el uso de variables porque toda información debe tener una
representación en la memoria para luego poder utilizarla.
Ejemplos
AREA=”RRHH” la variable Area tiene almacenado el valor RRHH, y esta información se encuentra
en la memoria principal del computador y mientras no se apague esa información permanece.
Suma=0 La variable suma, tiene un valor 0, este valor puede ir cambiando en la medida que se
ejecuta el programa donde se encuentra esta variable.
DEFINICION : Se entiende por Macro a la automatización de aplicaciones que manipulan de una u otra
forma una planilla electrónica. Uno de los puntos fuertes de la herramienta excel es su lenguaje para macros.
AUTOMATIZACIÓN
Aunque Excel contiene dentro a Visual Basic, este lenguaje no tiene ningún vínculo especial que lo amarre a
Excel. De hecho Excel utiliza una biblioteca de objetos a la cual se comunica Visual Basic.
MACRO DE TECLADO
Una primera aproximación a las macros son la creación de Macros de teclado. Estas consisten en Grabar
todas las pulsaciones manuales que realizamos sobre una planilla y luego aplicamos esta secuencia
sobre cualquier parte de ella.
Estando en Excel:
1. Activar la barra de herramientas de Visual Basic con:
Menú VER - opción BARRA DE HERRAMIENTAS - opción VISUAL BASIC
Apuntes preparado por : Rebeca Cartagena Jessen 3
MACROS DE TECLADO
Ejecutar grabar reanudar editor de cuadro de modo
Macro macro macro Visual Basic controles diseño
Excel
Librería de
Objetos
Visual Basic
2. Hacer un clic en botón GRABAR MACRO. Se desplegará la siguiente ventana
• En ella se debe indicar el nombre de la macro (por defecto es Macro1)
• Método abreviado es para asociar la ejecución de una macro con pulsaciones de
teclas (en este caso será siempre la tecla CTRL con otra). Se sugiere que la letra
asociada sea mayúscula.
• Guardar Macro en: es para definir si loa macro estará disponible sólo para el libro
actual (por defecto) o para otros libros (opción macro personal).
3. Realizar manualmente la operación requerida.
4. Detener la grabación con el botón
PROCESO PARA EJECUTAR LA MACRO
1. Menú HERRAMIENTAS - opción MACRO - opción MACROS. Se desplegará la siguiente
ventana:
Otras formas de Ejecutar una Macro
Para realizar esta operación disponemos de tres formas: una por medio de los menús, la otra por
un botón de la barra de herramientas y por último por el teclado
Método 1
1. Abra el menú Macro y seleccione la opción Macro... y seleccione el botón Ejecutar
Método 2
1. Realice un clic sobre el botón asignado a la macro desde la Barra de Herramientas.
Método 3
Apuntes preparado por : Rebeca Cartagena Jessen 4
Elegir de la lista el nombre de la macro
y luego el botón Ejecutar
1. Pulse la tecla F5 o clic en el botón ejecutar
EJECUTAR INTERRUMPIR
RESTABLECER
EJERCICIOS PROPUESTOS
Crear la siguiente planilla llamada EMPLEADOS
Crear las siguientes macros de teclado:
1. Macro Fondo_amarillo, para aplicar color de relleno amarillo.
2. Macro signo_peso para aplicar formato monetario $.
3. Macro ARIAL, para aplicar letra arial tamaño 12.
4. Macro BORDES para aplicar bordes de color azul.
Apuntes preparado por : Rebeca Cartagena Jessen 5
ELIMINAR UNA MACRO
Menú Herramientas – opción Macro – opción Macros.
Se despliega la ventana
VER EL CODIGO DE UNA MACRO
En la ventana anterior, seleccione la macro y haga un clic en el botón Modificar, Ud. visualizará el código
(instrucciones que componen la macro) en la siguiente ventana:
Las líneas que comienzan con la comilla simple (‘) son comentarios. Ud. podría agregar los comentarios
que desee (digite la comilla primero y luego escriba el texto requerido).
Las líneas en color negro son las instrucciones que al ejecutar el computador realiza la operación.
INTEGRAR DOS MACROS
Si se desea que una macro realice además las operaciones que están en otra macro se debe:
Apuntes preparado por : Rebeca Cartagena Jessen 6
Seleccione con un clic la macro a eliminar y
luego haga un clic en botón Eliminar
1. Abrir la macro (de la cual se desee obtener el código) y seleccionar las líneas negras que son las
instrucciones en código Visual Basic , luego hacer un clic en Copiar. Cerrar la macro.
2. Abrir la otra macro. Ubicar el cursor en una línea en blanco, después de la última instrucción, y
realice la operación de Pegar.
ASOCIAR UN BOTÓN A UNA MACRO
Ud. puede asociar un elemento gráfico a una macro, de tal forma que al hacer un clic en ese botón se ejecute
la macro.
1. Dibuje la figura, con los elementos de la barra de dibujo.
2. Sobre el elemento dibujado haga un clic con el botón derecho del mouse y elija la opción
Asignar Macro
Se despliega la siguiente ventana:
3. Al desmarcar el elemento y ubicarse con el cursor sobre el aparece la típica mano, la cual si hace un
clic ejecuta la macro.
ELIMINAR EL ELEMENTO ASOCIADO A UNA MACRO
Haga un clic sobre el elemento con el botón derecho del mouse y luego haga un clic con el botón izquierdo
sobre el elemento presione finalmente la tecla SUPR.
CREAR UNA BARRA DE HERRAMIENTAS PARA LAS MACROS
Una de las formas mas útiles para tener disponibles las macros en su planilla es crear una barra de
herramientas
Creadas las macros,
1. Menú Ver – opción Barra de Herramientas
2. Seleccione la opción Personalizar. Se desplegará la siguiente ventana:
Apuntes preparado por : Rebeca Cartagena Jessen 7
Seleccione la macro y luego haga un clic en
el botón Aceptar
3. Haga un clic en la pestaña Barra de Herramientas.
4. Haga un clic en el botón Nueva...
5. Se despliega la siguiente ventana:
Ud. notará que en el área de trabajo aparece la barra de herramientas, sin ninguna opción
6. La barra de herramientas que acaba de crear aparece en la lista de la ventana Personalizar, y activada.
7. Ahora, haga un clic en la pestaña Comandos de la ventana Personalizar. En la columna Categorías
busque la opción Macros y haga un clic en ella. A la derecha aparece las siguientes opciones:
8. El aspecto de la barra de herramientas es el siguiente:
Apuntes preparado por : Rebeca Cartagena Jessen 8
Digite el nombre que tendrá la barra de
herramientas y luego Aceptar
Haga un clic sobre la opción Personalizar elemento del menú y,
sin soltar el botón del mouse, arrastre hasta quedar sobre la
barra de herramientas creada.
9. Haga un clic, sobre el texto Personalizar elemento de menú, con el botón derecho del mouse aparece
un menú donde un a de las opciones es
Nombre: &personalizar elemento de menú
Borre esta frase (sin borrar el signo &) y escriba el texto que represente la operación que hará la macro.
10. Ahora elija la opción Asignar macro... se desplegará la siguiente ventana:
EJERCICIOS PROPUESTOS
Desarrolle macros de teclado para cada uno de los siguientes pedidos:
1. Aplicar color de texto azul y borde amarillo a celdas seleccionadas.
2. Aplicar signo monetario ($) y color rojo a celdas seleccionadas.
3. Aplicar el formato de fecha dd/nombre completo del mes/año con cuatro cifras
4. Aplicar el formato de fecha dd/nombre completo del mes/año con cuatro cifras y color de texto azul
con borde amarillo a celdas seleccionadas.
EJERCICIOS DE MACROS TECLADO (DIRIGIDO
Realicemos una macro para calcular el presupuesto total por producto:
Crearemos la siguiente planilla:
Apuntes preparado por : Rebeca Cartagena Jessen 9
Seleccione la macro que asignará a la
opción recién definida en el paso
anterior y luego haga un clic en Aceptar.
Donde TOTAL será la suma de todos los meses
Grabe la planilla con el nombre presupuesto
Active la macro de teclado (Menú HERRAMIENTAS – MACRO- GRABAR NUEVA MACRO)
Aparece la sgte. Ventana
1. Ubicar el cursor en la celda F5 e ingresar la fórmula =suma(B5:E5). Cópiela hasta la celda F8.
2. Seleccione las celda F5:F8 y aplicar formato moneda
3. Presionar el botón DETENER GRABACION.
Para ver el código de la macro ejecutemos:
Menú HERRAMIENTAS - Opción MACRO - opción MACROS
Seleccionemos la macro TotalProducto y el botón MODIFICAR o la otra opción es ir la menú
HERRAMIENTAS, seleccionar Macro y luego Editor de VB, Ubique en la ventana que aparece el
icono de macros Personales como lo sgte.
Apuntes preparado por : Rebeca Cartagena Jessen 10
Vea si el Módulo1 o Módulo2 contiene
su macro, la reconocerá por el nombre
que le dio a la macro y la fecha.
Ingresamos el nombre de la macro
(macro_Presup)
Asociamos la macro a las teclas CTRL. b
Guardamos en un libro de macros personal
Y le damos alguna descripción que nos
oriente que tareas hará la macro
Al presionar el botón Aceptar, observe la barra de estado, al final de la pantalla, aparece el
mensaje GRABANDO (esto quiere decir que cualquier pulsación de teclado comienza a grabarse
en el libro de macro personal
El código visualizado es:
Las líneas en verdes no son ejecutables y se reconocen porque deben llevar un apóstrofe al inicio
El término R1C1 hace referencia a la celda A1. Esto se llama NOTACION RIC1 (para poder visualizar esta
forma de notación ejecute:
Menú HERRAMIENTAS - opción OPCIONES -Haga un clic en la pestaña GENERAL y active la casilla ESTILO
DE REFERENCIA F1C1). Ud. notará que cuando el cursor está ubicado en una celda, en la barra de fórmula
aparece como referencia el número de fila y número de columna (por ejemplo si Ud. se ubica en la celda b8 en
la barra de fórmula aparece F8C2. Para desactivar esta opción vuelva al mismo menú y desactive el estilo de
referencia.
Asignaremos un icono a la macro y la mantendremos en nuestra barra de herramientas
Ir al menú Ver – Barra de Herramientas – Personalizar
Ubíquese en la pestaña o etiqueta de Barra de Herramientas y seleccione el botón Nueva...
Aparece la sgte ventana, ingrese l nombre que el daremos a la barra de herramientas(macro de compras) y
luego ACEPTAR
Apuntes preparado por : Rebeca Cartagena Jessen 11
Luego aparece la venta de Personalizar, seleccione la etiqueta o pestaña Comandos
Arrastre con el mouse el texto que dice “Personalizar elemento del menú y llévelo al interior de la barra de
herramientas recién creada llamada macro de compras
Cambie el nombre de la barra, apunte con el mouse al nombre que dice personalizar.... y presione el botón
derecho del mouse y en la opción Nombre cambie por compras
Ahora apunte con el mouse a donde dice compras y presione el botón derecho del mouse y elija la opción
Asignar macro y aparece una ventana llamada Asignar Macro, donde Ud., debe seleccionar la macro que se
encuentra en el listado, no olvide que se llama macro_Presup y luego presione el botón ACEPTAR
Luego cierre la ventana de Personalizar y ya tiene una barra de herramientas asignada a esa macro que puede
ser usada con planilla similares a la del presupuesto.
La barra compras la puede dejar junto a sus iconos de la barra de herramientas
Apuntes preparado por : Rebeca Cartagena Jessen 12
Barra de herramientas
Macro de compras
Observe la barra
compras, ese
botón es la
macro
EJERCICIO: Crear las siguientes macros .
1. Desarrolle una macro que al ejecutar entregue en la fila 9 los totales de cada mes (la macro
deberá llamarse TotalMes y el método abreviado debe ser CTRL-b)
2. Desarrolle una macro para aplicar bordes color azul a la planilla anterior (la macro deberá
llamarse BordesAzul y el método abreviado debe ser CONTROL-d)
3. Agregue la columna FECHA a la planilla (en la columna G) y llene el rango con fechas.
Desarrolle una macro para dar un formato de fecha a los datos (el que Ud. elija). La macro
deberá llamarse FormatoFecha y el método abreviado debe ser CTRL-e.
4. Desarrolle un a macro para eliminar las líneas divisorias de la planilla (la macro deberá llamarse
QuitarLineas y el método abreviado debe ser CTRL-f).
5. Desarrolle un a macro para activar las líneas divisorias de la planilla (la macro deberá llamarse
ActivaLineas y el método abreviado debe ser CTRL-g).
OBSERVACION: Visualice en cada ejercicio el código de la macro e interprételo.
Apuntes preparado por : Rebeca Cartagena Jessen 13
Entorno de Visual Basic
La creación de macros en general utiliza el ambiente de Visual
basic.
• Primero accesar la planilla electrónica Excel.
• Elegir del menú la opción HERRAMIENTAS
• Del submenú desplegado elegir la opción MACROS
• Elegir del nuevo submenú la opción EDITOR DE VISUAL
Basic
Para visualizar dichos elementos ejecute:
• Menú VER - opción EXPLORADOR DE PROYECTOS
• Menú VER - opción VENTANA DE PROPIEDADES
• Menú INSERTAR - opción USER FORM
Apuntes preparado por : Rebeca Cartagena Jessen 14
(Los últimos tres pasos los puede obviar si presiona las teclas
ALT y F11)
El entorno de Visual Basic utiliza tres elementos fundamentales
para la
construcción de macros:
• EXPLORADOR DE PROYECTOS
• VENTANA DE PROPIEDADES
• CUADRO DE HERRAMIENTAS
OBJETO : Es cualquier elemento reconocible en el entorno de desarrollo. Por ejemplo, en Excel son
objetos una celda, un rango de celdas, un libro de trabajo, una hoja de cálculo una columna, etc.
PROPIEDAD : Es cualquier atributo o referencia de un objeto. Por ejemplo, una celda tiene fondo y bordes,
una columna tiene ancho, una hoja tiene un nombre; un texto tiene un tamaño, color, etc.
METODO : Corresponden a las acciones que se pueden realizar sobre un objeto. Por ejemplo, Una celda
se puede copiar, borrar, darle un formato; una columna se puede Eliminar, a una hoja se le puede cambiar el
nombre; un libro se puede guardar.
Observación: 1. Si no visualiza el explorador de proyecto y/o la ventana de propiedades elija
Menú VER – opción EXPLORADOR DE PROYECTO y/o VENTANA DE PROPIEDADES
2. Para escribir una macro debe activar el cuadro de código:
Elija menú VER – opción CODIGO. Se desplegará la siguiente ventana.
Apuntes preparado por : Rebeca Cartagena Jessen 15
Conceptos Fundamentales para el Desarrollo de
Macros
PROGRAMACIÓN DE MACROS
Menú principal
Barra de herramientas
Explorador de proyecto
Ventana de propiedades
Area de trabajo
Algunos objetos con sus métodos y propiedades
OBJETO METODO PROPIEDADES
WorkBooks .Add .Count
.Close .Item
.Open .Application
WorkSheets .Add .Visible
.Copy .Activate
.Delete .Count
.Insert
Range .Activate .Borders
.Calculator .Cells
.Clear .Formula
.Copy .Name
.Show .Interior
.Insert .Offset
Cells .Activate .Borders
.Select .Column
.Copy .Font
.Formula
.Width
Apuntes preparado por : Rebeca Cartagena Jessen 16
DESARROLLO DE UN EJEMPLO:
1. CREAR LA SIGUIENTE PLANILLA:
2. Activar la barra de herramientas de Visual Basic
3. Para ir al código de programación:
Elija la opción VER del menú y luego la opción CODIGO (aparecerá una ventana en blanco,
con el cursor activado)
4. Para crear un procedimiento (Macro) deberá digitar primero:
Sub nombre de la macro( ) (no debe incluir espacios ni caracteres en
El nombre, salvo el carácter "_" )
Luego presione la tecla ENTER y notará que se crea al final el comando End Sub
Entre estas dos líneas se crea el código de la macro.
Para el ejemplo, el nombre de la macro será Calcular_Comision
La macro calculara un 20% de comisión del total de las ventas.
Apuntes preparado por : Rebeca Cartagena Jessen 17
Programando directamente en código
Haga un clic en el botón EDITOR
DE VISUAL Basic
RANGE: PARA SELECCIONAR UNA CELDA O RANGO DE CELDAS
La sintaxis es :
En nuestro ejemplo:
1. Digite Range("I4").Select (Cuando se ejecute la macro, ubicará el cursor en la celda I4)
2. Para ver el resultado, vuelva a excel haciendo un clic en el botón VER
MICROSOFT Excel
3. Asocie el método abreviado CTRL - t a la macro (herramientas - macro –
macros - botón Opciones), sino desde el icono que representa el ejecutar
4. Ubique el cursor en cualquier celda que no sea la I4, y ejecute la macro
SELECTION.FORMULA – PERMITE NGRESAR DATOS EN UNA CELDA ACTIVA.
(También podemos ingresar formula, lo veremos más adelante)
La sintaxis es:
En nuestro ejemplo:
1) Digite en la siguiente línea del código
Selection.Formula=”Comisión Ventas”
(Así va quedando la macro en VB)
Apuntes preparado por : Rebeca Cartagena Jessen 18
Instrucciones para macros
Range ("celda o rango de celdas").Select
Selection.Formula="dato "
Al hacer un clic en este botón, se ejecuta la macro
2) Vuelva a excel y ejecute la macro(presione las teclas CTRL. t
SELECTION.OFFSET - PERMITE UBICARSE EN UNA CELDA CON RESPECTO A OTRA.
La sintaxis es:
Nº de fila : si es positivo bajará tantas celdas como indique el número
Si es negativo, subirá tantas celdas como indique el número
Nº de columna : Si es positivo avanzará tantas columnas como indique el número
Si es negativo retrocederá tantas columnas como indique el número
En nuestro ejemplo, agregue la siguiente línea al código:
Selection.Offset(1, 0).Select (bajará una celda y se ubicará en la I4)
(el cero indica no moverse de la columna)
SELECTION.FORMULA - PERMITE INGRESAR UNA FORMULA
Considere que la referencia a celdas se hará de acuerdo a la celda en que se esté ubicado en ese momento.
REFERENCIA A CELDAS
R Indica fila (si el número es positivo hace referencia a una celda ubicada hacia abajo)
C indica columna (si el número es positivo hace referencia a una celda ubicada hacia la derecha)
Apuntes preparado por : Rebeca Cartagena Jessen 19
Selection.Formula="=formula"
R[nº]C[nº]
Selection.Offset(nº de fila,nº de columna).Select
Si desea hacer referencia a celdas en la misma fila o misma columna:
RC[Nº] : Fija la fila
R[nº]C : Fija la columna
En nuestro ejemplo, Agregue la siguiente línea al código:
Selection.Formula =”=RC[-]*0.2”
Vuelva a Excel y ejecute la macro
RANGE COPY- PERMITE COPIAR FORMULA A UNA CELDA O A UN RANGO.
La sintaxis es:
En nuestro ejemplo, agregue la siguiente línea al código:
Range("I5").Copy Range("I6:I11")
Nuestra macro está quedando en la hoja de código o en el editor de VB, así:
Vuelva a excel y ejecute la macro (solo para que vea como va quedando y que está haciendo)
SELECTION.NUMBER.FORMAT – PERMITE DAR FORMATO NUMERICO A UN RANGO DE CELDAS
Apuntes preparado por : Rebeca Cartagena Jessen 20
Range("coordenada de origen").Copy Range("coordenadas de destino")
Selection.NumberFormat="formato deseado"
En nuestro ejemplo, agregue la siguiente línea al código:
Range("I5:I11").Select
Selection.NumberFormat =”$ 0.0" (Se coloca el símbolo que ud.. maneje en su
planilla, por ejemplo $.)
Vuelva a excel y ejecute la macro
ALIGNMENT - PARA ALINEAR UN RANGO DE CELDAS
Range("I5:I11").Select
With Selection
.HorizontalAlignment = xlCenter
End With
PARA APLICAR COLOR DE FONDO A UN RANGO DE CELDAS
Range("I5:I11").Select (si está marcado el rango desde la actividad anterior, lo
podemos obviar)
With Selection.Interior
.ColorIndex = 7
End With
FONT.COLORINDEX - PERMITE APLICAR COLOR A LA FUENTE
Range("I4:I8").Select
Selection.Font.ColorIndex = 5
o también
With Selection.Font
.ColorIndex = 5
End With
BORDERS.LINESTYLE – PERMITE APLICAR BORDES
Selection.Borders.LineStyle = xlContinuous (línea simple en los bordes)
(Los colores son : 1(negro), 2(blanco), 3(rojo), 4(verde), 5(azul), 6(amarillo), 7(lila))
Veamos como va quedando nuestra macro en el editor de VB. Luego vaya a excel y ejecute la macro.
Apuntes preparado por : Rebeca Cartagena Jessen 21
UCASE - Permite convertir a mayúsculas la información de una celda
Sintaxis : Ucase(“hola”)
LCASE - Permite convertir a minúsculas la información de una celda
ACTIVECELL - PARA VER O HACER REFERENCIA AL CONTENIDO DE LA CELDA EN QUE ESTÁ UBICADO EL
CURSOR.
La sintaxis es :
CELLS - Entrega el contenido que hay en una celda
SINTAXIS
Cells(nº de fila,nºde columna)
Por ejemplo coloquemos el contenido de la celda I4 (Comision Ventas, que es la fila 4 y la columna 9 ), como
parte del título de la planilla y copiarlo a la celda E1.
Digitamos a continuación de lo que ya tenemos en nuestra macro, lo sgte.:
Range(“E1”).select
Selection.formula=cells(4,9)
Apuntes preparado por : Rebeca Cartagena Jessen 22
ActiveCell
IF – THEN – ENDIF – PERMITE REALIZAR CONDICION LOGICAS
Permite establecer procesos (conjunto de instrucciones) alternativos dada una condición.
Su sintaxis es:
GOTO - PARA BIFURCAR LA SECUENCIA DE INSTRUCCIONES
Permite cambiar el flujo normal de un proceso.
Veamos un EJEMPLO
Si el vendedor tuvo un total de ventas sobre o igual los 700 , tendrá un Bono adicional que será un 50% de lo
obtenido en la comisión.
Crearemos una columna en J que entregará el BONO para todos aquellos que cumplan la condición anterior.
Range("J4").Select
Selection.Formula = "BONO"
Range("h5").Select
comparar:
If ActiveCell <> "" Then
If ActiveCell >= 700 Then
Selection.Offset(0, 2).Select
Selection.Formula = "=RC[-1]*.5"
Selection.Offset(1, -2).Select
End If
Selection.Offset(1, 0).Select
GoTo comparar:
End If
Apuntes preparado por : Rebeca Cartagena Jessen 23
Nombre es una palabra que deberá ir en alguna parte
del código (debe terminar con ":"). Al llegar a la línea
que tiene la sentencia GoTo, el sistema saltará a la
línea del código que tiene el nombre y ejecutará lo
que sigue inmediatamente.
If condición lógica Then
……………
……………
……………
Else
……………
……………
……………
End If
Ejecuta cuando la condición es verdadera
Ejecuta cuando la condición es verdadera
GoTo nombre
Veamos como va quedando la macro
Apuntes preparado por : Rebeca Cartagena Jessen 24
CONDICIONALIDAD ANIDADA
Puede que en una situación se deba definir más de dos alternativas (por ejemplo, que la situación del alumno sea
Aprobado, Reprobado o Pendiente). Para establecer esta situación se utiliza la instrucción IF con anidaciones (IF dentro de
IF).
Ejemplo
Insertaremos(sin usar macros) una columna a nuestra planilla donde colocaremos la Calificación del vendedor
Agregamos una nueva columna llamada TURNO (en la col. L), que nos entregará lo sgte.
Si el vendedor es calificación A1, tendrá turno Fijo, los B1, tendrán turno Alternado y los C1 tendrán sólo de tarde
Range("L4").Select
Selection.Formula = "TURNO"
Range("C5").Select
verturno:
If ActiveCell <> "" Then
Apuntes preparado por : Rebeca Cartagena Jessen 25
If condición Then
....................
....................
If condición Then
......................
......................
If condición Then
......................
......................
Else
.................
.................
End If
End If
Else
If condición Then
.................
.................
Else
.........................
.........................
End If
End If
If ActiveCell = "A1" Then
Selection.Offset(0, 9).Select
Selection.Formula = "Fijo"
Else
If ActiveCell = "B1" Then
Selection.Offset(0, 9).Select
Selection.Formula = "Alternado"
Else
Selection.Offset(0, 9).Select
Selection.Formula = "Tarde"
End If
End If
Selection.Offset(1, -9).Select
GoTo verturno
End If
Ejecutada la macro queda así la columna Turno
SELECT CASE – Permite realizar una serie de selecciones múltiples , que se pueden resolver con el
uso de varios Si condicionales, pero esta instrucción permite usarla de forma más fácil.
- Estructura Select Case.:
Esta estructura se utiliza como alternativa a la estructura If...Then...Else.
Sintaxis
Select Case Variable
Case valor variable 1
INSTRUCCIONES
Case valor variable 2
Instrucciones
Case else
INSTRUCCIONES
End Select
Apuntes preparado por : Rebeca Cartagena Jessen 26
La cláusula Case Else se ejecutará en caso de que ningún valor de la lista de expresiones
coincida.
Veamos un caso real, si variable X tiene el valor 1 Suma valores, si tiene el valor 2 Restará y así.
Select Case X
Case 1
Suma_valores
Case 2
Resta_valores
Case 3
Divide_valores
Case else
Inicializa_valores
End Select
Ejemplo, el mismo caso anterior, pero resuelto con el Select Case
Range("L4").Select
Selection.Formula = "TURNO"
Range("C5").Select
verturno:
If ActiveCell <> "" Then
turno = ActiveCell.Formula
Select Case turno
Case "A1"
Selection.Offset(0, 9).Select
Selection.Formula = "Fijo"
Case "B1"
Selection.Offset(0, 9).Select
Selection.Formula = "Alternado"
Case "C1"
Selection.Offset(0, 9).Select
Selection.Formula = "Tarde"
End Select
Selection.Offset(1, -9).Select
GoTo verturno
End If
A través de una macro podemos realizar cálculos como contabilizar campos que cumplan con una
determinada condición, como también podemos ir sumando los valores de una columna en forma
arbitraria o también la podemos ir sumando solo si cumple determinados criterios. Para lograr llevar
estos procesos, debemos asignar a determinadas variables que Ud. defina, el rol de contadores o de
acumuladores, estos valores cada vez que se incrementan no se pierden porque van quedando en la
memoria principal del computador, solo se perderán si se apaga el equipo o hay cortes de luz.
Apuntes preparado por : Rebeca Cartagena Jessen 27
Uso de contadores y acumuladores en Macros
X es una variable que puede tomar el valor :
1, 2 , 3 o cualquier otro
Contadores: Son variables que nos van a permitir llevar un control de la cantidad de veces que se
realiza una determinada operación. Normalmente se inicializarán con el valor cero y en cada ciclo o
nuevo proceso, es posible que el contador se incrementa en el valor 1.
Ejemplo de un contador cualquiera
Conta=0 la variable Conta se inicializa con el valor 0 al inicio del programa
Y durante el programa que tiene un proceso es probable que este contador se incremente y la forma
de hacerlo es:
Conta=conta +1
Acumulador : Son variables que permiten realizar una sumatoria de valores numéricos. El
acumulador, permite en cada nuevo proceso o ciclo incrementarse la variable en un valor distinto
que normalmente es un valor que se ingresa en el proceso de entrada de datos o que está contenido
dentro de la planilla. Es recomendable inicializar los acumuladores al principio con el valor 0.
Ejemplo
Suma_ed=0 , la variable suma_ed es un acumulador que se inicializa al principio del programa con
el valor cero, y es probable que en el proceso del programa, el acumulador se vaya incrementando
muchas veces.
Pensemos que esta variable que la hemos definido como acumulador , irá acumulando un valor
representado por la edad, que puede estar en una columna o se puede ingresar por via teclado o
puede ser extraida de un archivo.
Suma_ed=suma_ed + edad , en esta línea el acumulador va sumando el valor edad
EXIT DO: permite romper el ciclo, aún cuando la condición es verdadera
Esta instrucción sirve para reemplazar la instrucción de nuestra macro que es la que analizaba si la
celda era distinta de vacio.
Apuntes preparado por : Rebeca Cartagena Jessen 28
Ciclo de IteraciónCiclo de Iteración
Do while condición
-----------------------------
----------------------------
------------------------------------
Exit DO
---------------------------------
----------------
Loop
---------------------------------------
------------------------
Las Instrucciones que están entre el Do while y el
Loop ,se ejecutarán mientras se cumpla la
condición.
Cuando la condición contenido en el Do While es
falsa, se comienzan a ejecutar las instrucciones
siguientes al LOOP
La instrucción era IF ACTIVECELL <> “” THEN , ahora lo podemos hacer con el While
DO WHILE ACTIVECELL <> “”
-----------------------
----------------
--------------------
-------------------------------
LOOP
Ejemplo de la última parte vista en nuestra macro
Range("L4").Select
Selection.Formula = "TURNO"
Range("C5").Select
verturno: (y la etiqueta del GOTO ya esta demás)
If ActiveCell <> "" Then (La debemos reemplazar por DO WHILE ACTIVECELL <> “” )
turno = ActiveCell.Formula
Select Case turno
Case "A1"
Selection.Offset(0, 9).Select
Selection.Formula = "Fijo"
Case "B1"
Selection.Offset(0, 9).Select
Selection.Formula = "Alternado"
Case "C1"
Selection.Offset(0, 9).Select
Selection.Formula = "Tarde"
End Select
Selection.Offset(1, -9).Select
GoTo verturno (Esta instrucción se elimina )
End If
LOOP (Se agrega la instrucción LOOP, que significa volver al do while, para continuar)
Ejemplo:
Crear la siguiente planilla:
Hacer una macro llamada RECORRER, la cual permita completar la columna Valor stock
(valor stock= valor pelicula * stock)
Apuntes preparado por : Rebeca Cartagena Jessen 29
Instrucciones en
VB
Solución
Sub recorre()
Range("a4").Select
Do While ActiveCell <> ""
Selection.Offset(0, 5).Select
Selection.Formula = "=rc[-2]*rc[-1]"
Selection.Offset(1, -5).Select
Loop
End Sub
Ejemplo: Crear una macro llamada TOTALES, la cual calcule:
- El número de películas tipo DVD que tiene la planilla.
- Total de películas que hay en stock
(dejar el resultado en algún lugar al final de la planilla).
Solución:
Sub totales()
Contadvd = 0
stock = 0
Range("c4").Select
Do While ActiveCell <> ""
IF activecel l=”dvd” then
Contadvd=contadvd + 1
Endif
Selection.Offset(0, 2).Select
stock = stock + ActiveCell
Selection.Offset(1, -2).Select
Loop
Range(“c10”).select
ActiveCell = "películas DVD"
Selection.Offset(1, 0).Select
ActiveCell = contadvd
Selection.Offset(-1, 1).Select
ActiveCell = "total peliculas"
Selection.Offset(1, 0).Select
ActiveCell = stock
End Sub
Ejemplo: Crear una macro llamada TOTAL_DVD que contabilice el total de DVDs que hay en stock.
Solución:
Sub total_dvd()
dvd = 0
Range("c4").Select
Do While ActiveCell <> ""
If ActiveCell = "dvd" Then
Selection.Offset(0, 1).Select
dvd = dvd + ActiveCell
Selection.Offset(1, -1).Select
Else
Apuntes preparado por : Rebeca Cartagena Jessen 30
Selection.Offset(1, 0).Select
End If
Loop
Range(“F10”).select
Selection.formula= "total stock dvd"
Selection.Offset(1, 0).Select
Selection.formula= dvd
End Sub
FOR : Repite un grupo de instrucciones un número especificado de veces.
SINTAXIS
For contador = principio To fin [Step incremento]
[instrucciones]
[Exit For]
[instrucciones]
Next [contador]
La sintaxis de la instrucción For...Next consta de las siguientes partes:
Parte Descripción
contador Requerido. Variable numérica que se utiliza como contador de bucle. La
variable no puede ser de tipo Boolean, ni ningún elemento de matriz.
Principio Requerido. Valor inicial del contador.
Fin Requerido. Valor final del contador.
Incremento Opcional. Cantidad en la que cambia el contador cada vez que se ejecuta el
bucle. Si no se especifica, el valor predeterminado de incremento es uno.
Instrucciones Opcional. Una o más instrucciones entre For y Next que se ejecutan un
número especificado de veces.
La instrucción For, también es una instrucción de Ciclos con la diferencia que el ciclo se ejecuta la cantidad de
veces indicada en el valor Fin
Muestra un mensaje en un cuadro de diálogo y espera que el usuario escriba un texto o haga clic en un botón y
el dato ingresado queda como un tipo String(texto).
SINTAXIS
InputBox("mensaje",["título "])
Mensaje: Es el texto que se desplegará en la caja de diálogo.
Título : es el texto que se desplegará en el rótulo de la caja de diálogo.
Apuntes preparado por : Rebeca Cartagena Jessen 31
Función INPUTBOX
Microsoft Excel, también agregar automáticamente un botón Ayuda al cuadro de diálogo. Si el usuario hace clic
en Aceptar o presiona ENTRAR, la función InputBox devuelve lo que haya en el cuadro de texto. Si el usuario
hace clic en Cancelar, la función devuelve una cadena de caracteres de longitud cero ("").
NOTA: Si desea especificar más que el primer argumento con nombre, debe utilizar InputBox en una
expresión de la siguiente forma:
variable = InputBox("mensaje",["título "])
El valor que tome la variable será de acuerdo al botón que el usuario eligió (con un clic) en la caja de diálogo,
así:
- Si hizo clic en el botón ACEPTAR en la variable se almacenará lo que el usuario digitó en la caja
de dialogo.
- Si hizo clic en el botón ACEPTAR la variable almacenará vacío ( "")
EJEMPLO: Active la vista del código en Visual Basic y cree la siguiente macro:
1) Sub cajas()
InputBox ("ingrese su nombre")
End Sub
Al ejecutar la macro (un clic en el botón )
Se despliega:
Digite su nombre y haga un clic en cualquiera de los botones y volverá al código de la macro.
2) Implemente lo siguiente en la macro:
Sub cajas()
Entrada=InputBox ("ingrese su nombre", "caja de entrada")
End Sub
Al ejecutar la macro se desplegará:
Digite su nombre y haga un clic en cualquiera de los botones y volverá al código de la macro.
Apuntes preparado por : Rebeca Cartagena Jessen 32
NOTA : Entrada es una variable y si Ud. hizo un clic en el botón ACEPTAR el nombre que digitó se
almacena en dicha variable. Si Ud. eligió CANCELAR se almacena el valor "".
3) Implemente la macro con lo siguiente:
Sub cajas()
entrada = InputBox("ingrese su nombre", "caja de entrada")
Range("A1").Select
Selection.Formula = entrada
End Sub
Ejecute la macro y vaya a Excel con un clic en el botón )
Observará que En la celda A1 quedó almacenado el nombre que Ud. digitó.
Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve
un tipo Integer correspondiente al botón elegido por el usuario.
SINTAXIS
MsgBox("texto a desplegar en la caja"[, boton][, titulo])
Botón : Es opcional. Es un número que representa el número y el tipo de los botones que se
desea mostrar. Si se omite este argumento, el valor predeterminado para buttons es 0..
Los valores para este parámetro son:
Valor Descripción
0 Muestra solamente el botón Aceptar.
1 Muestra los botones Aceptar y Cancelar.
2 Muestra los botones Anular, Reintentar e Ignorar.
3 Muestra los botones Sí, No y Cancelar.
4 Muestra los botones Sí y No.
5 Muestra los botones Reintentar y Cancelar.
Titulo : Es opcional. Corresponde al texto que se muestra en la barra de título del cuadro de
diálogo.
OBSERVACION : Si desea especificar más que el primer argumento con nombre, debe utilizar MsgBox en una
expresión. Si desea omitir algún argumento de posición, debe incluir el delimitador de coma correspondiente.
variable = MsgBox ("texto", nº,"título de la caja")
Apuntes preparado por : Rebeca Cartagena Jessen 33
Función MSGBOX
EJEMPLO:
1) Implemente la macro anterior con lo siguiente:
Sub cajas()
entrada = InputBox("ingrese su nombre", "caja de entrada")
Range("A1").Select
Selection.Formula = entrada
MsgBox ("ingresaste un nombre")
End Sub
Ejecute la macro y notará que al final se despliega la siguiente ventana:
Haga un clic en ACEPTAR y volverá al código de la macro.
2) Implemente la instrucción de MsgBox con:
salida = MsgBox("ingresaste un nombre", 1, "mensaje")
Ejecute la macro y notará que al final se despliega la siguiente ventana:
EJERCICIO RESUELTO
En otra Hoja de Excel ingrese en la celda A2 la palabra NOMBRE.
Crear una nueva macro que permita ingresar nombres a partir de la celda A3 hacia abajo, hasta que el usuario
lo requiera.
Sub ejemplo()
Range("A3").Select
continuar:
nombre = InputBox("ingresa un nombre", "ventana de ingreso")
Selection.Formula = nombre
seguir = InputBox("desea ingresar otro nombre(si/no)?", "proceso")
If seguir = "si" Then
Selection.Offset(1, 0).Select
GoTo continuar
Else
MsgBox ("terminamos")
End If
End Sub
Apuntes preparado por : Rebeca Cartagena Jessen 34
Búsqueda de datos en una planilla
A continuación realizaremos una macro para determinar si una película existe o no en la planilla. Lo
haremos de la siguiente forma:
El usuario ingresará en un cuadro de dialogo el código de la película a buscar. Recorreremos la
columna donde están los códigos de película. El resultado de la búsqueda será si existe o si no
existe.
Sub busca_pelicula()
a = InputBox("ingrese código de película a buscar")
Range("a4").Select
sw = "no"
Do While ActiveCell <> "" And sw = "no"
If ActiveCell = a Then
sw = "si"
Else
Selection.Offset(1, 0).Select
End If
Loop
If sw = "no" Then
MsgBox ("película no existe en lista")
Else
MsgBox ("película encontrada")
End If
End Sub
Descripción del proceso:
- En la variable a quedará almacenado el código de la película que el usuario quiere
buscar.
- Ubicaremos el cursor en la celda donde está el primer código de película existente (A4).
- En una variable llamada sw se almacenará el texto “no” suponiendo que el código a
buscar no está en la planilla.
- El ciclo se ejecutará mientras no lleguen al final de la planilla y no se haya encontrado el
código a buscar.
- Si el código se encuentra sólo se cambiará la variable sw por el valor “si” (indicando que
se encontró). Esto permitirá salir del ciclo sin haberla recorrido hasta el final (el cursor
quedará ubicado en la celda donde se encontró el código).
- Si el código buscado no coincide con el de la planilla se bajará una fila para comparar
con el siguiente.
- Si el código no está en la planilla el cursor quedará ubicado al final de ella, y la variable
sw no habrá cambiado de estado (seguirá siendo “no”).
- Al final del ciclo se preguntará por la variable sw. Si salió del ciclo con el valor “no”
significará que el código no estaba en la planilla (se desplegará el mensaje “película no
existe en la lista”). De lo contrario (si sw sale del ciclo con el valor “si”) significará que la
película se encontró (se desplegará el mensaje “película encontrada”).
Apuntes preparado por : Rebeca Cartagena Jessen 35
Diseño de formularios
La construcción de una aplicación gráfica implica la creación de formularios y de objetos contenidos
en ellos.
PASOS FUNDAMENTALES
1. Crear la interfaz gráfica o diseño del formulario
2. Establecer las propiedades de los controles y del formulario
3. Implementar el código necesario
DISEÑO DEL FORMULARIO
Los formularios son los elementos más importantes de cualquier aplicación pues ellos corresponden a
las ventanas con las que interactúa el usuario cuando ejecuta la aplicación.
Siempre que se comienza una aplicación, el primer paso será diseñar el formulario y establecer las
propiedades de el.
1. Ir al ambiente de Visual Basic
2. Insertar el formulario (menú INSERTAR – opción USERFORM)
3. Maximizar la ventana
4. Dibujar los objetos que contendrá el formulario
Apuntes preparado por : Rebeca Cartagena Jessen 36
Ventana de Proyecto
En el Menú Ver se
activa
Ventana Propiedades
Formulario
OBJETOS O CONTROLES EN UN FORMULARIO
Los controles se encuentran en el Cuadro de herramientas, cada vez que se ingresa un formulario
Cuadro de texto (text box). Muestra información de un usuario o de un conjunto de datos
organizados.
Un control TextBox es el control utilizado más habitualmente para mostrar información
escrita por un usuario. También puede mostrar un conjunto de datos como una tabla, una
consulta, una hoja de cálculo o el resultado de un cálculo.
Etiqueta (Label) : Muestra un texto descriptivo como un título, leyenda,
comentarios, etc.
Puntero : Permite seleccionar cualquier objeto que se encuentra
inserto en un formulario
DIBUJO DE OBJETOS EN UN FORMULARIO
1. Hacer un clic en el objeto o control
2. Colocar el puntero del mouse dentro del formulario (el puntero cambia a una cruz) y
manteniendo presionado el botón izquierdo del mouse dibujar un rectángulo.
Apuntes preparado por : Rebeca Cartagena Jessen 37
Marco (frame) : Permite agrupar un conjunto de controles que
tienen alguna vinculación
Cuadro de Lista (listbox) : Permita mostrar una lista de
información que se encuentra en la planilla excel
Botón de comando (commandButton)Inicia, finaliza o interrumpe una acción o una serie
de acciones.
EJERCICIO#1: Crear el siguiente formulario con dos controles Botón de comando dos cuadro
de texto y dos etiquetas, como indica la figura siguiente:
Etiqueta
Caja de texto
Botón de Comando
OBSERVACIÓN: Para eliminar un control del formulario basta hacer un click sobre el y
presionar la tecla SUPR.
PROPIEDADES PARA LOS FORMULARIOS Y CONTROLES
Una vez dibujados el formulario y los controles se deben establecer las propiedades de ellos. Este proceso se
realiza en la ventana de propiedades.
1. Hacer un click en el objeto (formulario o control)
2. Active la ventana de propiedades si no la tiene a la vista (con tecla F4)
PROPIEDADES MAS COMUNES PARA LOS OBJETOS
Objeto Propiedad Significado
Formulario (UserForm) Name
BackColor
Caption
Es el nombre del objeto
Color de fondo
Es el rótulo que aparecerá para la ventana
Etiqueta Name
Backcolor
Font
Caption
Es el nombre del objeto
Color de fondo
Tipo de letra del texto
Es el rótulo que aparecerá en el botón
Cuadro de texto Name
text
Es el nombre del objeto
El texto que debe aparecer (por defecto vacío)
Botón de comando Name
BackColor
Caption
ForeColor
Font
Es el nombre del objeto
Color del botón
Es el rótulo que aparecerá en el botón
Es el color de texto del botón
Tipo de letra del texto
Apuntes preparado por : Rebeca Cartagena Jessen 38
EJERCICIO #2: Definir las siguientes propiedades al formulario y objetos creados anteriormente.
Objeto Propiedad Significado
Formulario (UserForm) Name
BackColor
Caption
Formulario1
Color celeste
Este es mi primer formulario
Etiqueta1 Name
Backcolor
Font
Caption
Etiq1
Naranjo
Comic Sans, tamaño 10
NOMBRE
Etiqueta2 Name
Backcolor
Font
Caption
Etiq2
Naranjo
Comic Sans, tamaño 10
APELLIDO
Cuadro de texto1 Name
text
NOM
Vacío
Cuadro de texto2 Name
text
APE
Vacío
Cuadro de texto3 Name
text
MENSAJE
Vacío
Command Button1 Name
BackColor
Caption
ForeColor
Font
Aceptar
Color a elección
SALUDOS
Azul
Comic Sans
Command Button2 Name
BackColor
Caption
ForeColor
Font
Accelerator
Terminar
Color a elección
SALIR
color rojo
Comic Sans
S
El formulario deberá quedar con el siguiente aspecto
Apuntes preparado por : Rebeca Cartagena Jessen 39
Para asignar alguna
propiedad al objeto,
este debe estar
seleccionado
previamente
IMPLEMENTACION DEL CODIGO
Para crear el código debe hacer doble clic sobre el objeto y se abrirá la ventana de código y aparecerá:
Private Sub nombre del objeto_evento()
End Sub
OBSERVACIÓN: En la ventana de código (en la parte superior) aparecen dos recuadros, el primero contiene
todos los objetos disponibles del formulario (incluyendo este) y el segundo contiene los eventos posibles a
asociar al objeto (comúnmente es Click).
Para volver al diseño del formulario basta con cerrar la ventana de código.
GUARDAR LA APLICACIÓN
1. Menú ARCHIVO – opción GUARDAR LIBRO
2. En la ventana que se despliega en NOMBRE DE ARCHIVO digitar el nombre del proyecto
(para nuestro ejemplo, guarde el proyecto con el nombre MI PRIMER FORMULARIO).
RECUPERAR UN PROYECTO
1. Menú ARCHIVO (en Excel) – opción ABRIR. Ir al editor de Visual Basic.
2. Cuando se abre el proyecto : para ver el formulario selecciones VER OBJETO y para ver el código
VER CODIGO.
DIBUJO DE OBJETOS EN UN FORMULARIO
3. Hacer un clic en el objeto o control
4. Colocar el puntero del mouse dentro del formulario (el puntero cambia a una cruz) y manteniendo
presionado el botón izquierdo del mouse dibujar un rectángulo.
EJERCICIO#1: Crear el siguiente formulario con dos controles Botón de comando y un cuadro de
texto, como indica la figura siguiente:
Apuntes preparado por : Rebeca Cartagena Jessen 40
Objeto
Eventos o procedimientos
OBSERVACIÓN: Para eliminar un control del formulario basta hacer un clic sobre el y presionar
la tecla SUPR.
EJERCICIO #2: Definir las siguientes propiedades al formulario y objetos creados anteriormente.
Objeto Propiedad Significado
Formulario (UserForm) Name
BackColor
Caption
Formulario1
Color celeste
Este es mi primer formulario
Cuadro de texto Name
text
saludo
vacío
Command Button1 Name
BackColor
Caption
ForeColor
Font
Aceptar
Color a elección
Pulsar
color rojo
Comic Sans
Command Button2 Name
BackColor
Caption
ForeColor
Font
terminar
Color a elección
Salir
color rojo
Comic Sans
El formulario deberá quedar con el siguiente aspecto
Apuntes preparado por : Rebeca Cartagena Jessen 41
IMPLEMENTACION DEL CODIGO
Para crear el código debe hacer doble clic sobre el objeto y se abrirá la ventana de código y aparecerá:
Private Sub nombre del objeto_evento()
End Sub
OBSERVACIÓN: En la ventana de código (en la parte superior) aparecen dos listas de opciones, la primera
contiene todos los objetos disponibles del formulario (incluyendo este) y la segunda contiene los eventos posibles
a asociar al objeto (comúnmente es Click).
Para volver al diseño del formulario basta con cerrar la ventana de código.
EJERCICIO #3: En el formulario creado haga doble clic en el botón PULSAR y digite el siguiente
código:
Private Sub Aceptar_Click()
saludo.Text = "¡Buenos días para todos!”
End Sub
Ejecute la macro y para volver al diseño cierre la ventana del formulario.
Al volver al formulario haga doble clic en el botón SALIR y digite el siguiente
código:
Private Sub terminar_Click()
End
End Sub
GUARDAR LA APLICACIÓN
3. Menú ARCHIVO – opción GUARDAR LIBRO
4. En la ventana que se despliega en NOMBRE DE ARCHIVO digitar el nombre del proyecto
(para nuestro ejemplo, guarde el proyecto con el nombre MI PRIMER FORMULARIO).
RECUPERAR UN PROYECTO
3. Menú ARCHIVO (en Excel) – opción ABRIR. Ir al editor de Visual Basic.
4. Cuando se abre el proyecto : para ver el formulario selecciones VER OBJETO y para ver el código
VER CODIGO.
FORMULARIOS PARA MANIPULACIÓN DE PLANILLAS
CREAR LA SIGUIENTE PLANILLA (en hoja1):
Apuntes preparado por : Rebeca Cartagena Jessen 42
CREAR LOS SIGUIENTES FORMULARIOS:
Apuntes preparado por : Rebeca Cartagena Jessen 43
Formulario Name: Principal
Caption: Formulario
principal
Botón Consulta Name:Consulemple
Caption: Consulta
empleado
Botón Calcular Name: Calcula
Caption: Calcular
montos
Botón Terminar: Name:Termina
Caption: Terminar
REQUERIMIENTOS PARA LA MACRO A DESARROLLAR
1. En el formulario principal el botón CONSULTA EMPLEADO deberá llevar al formulario CONSULTA
EMPLEADO.
ACTIVAR A TRAVES DE UN BOTÓN UN FORMULARIO DESDE OTRO
1. Abrir el formulario.
2. Dibujar un botón en el formulario (definir su name y caption)
3. hacer doble clic en el botón.
4. En el códigodigitar:
Private sub nombre del botón()
Unload me (descarga el actual formulario)
Load nombre del formulario (activa el otro formulario)
Nombre del formulario.show (muestra el formulario activo)
En nuestro ejemplo, haga doble clic en el botón CONSULTA EMPLEADO, y digite el código siguiente:
Private Sub consulemple_Click()
Unload Me
Load CONSULTA
CONSULTA.Show
End Sub
2. Programar el botón CALCULAR MONTOS, considerando se debe completar la columna TOTAL A
PAGAR de la planilla en base a la siguiente formula:
TOTAL A PAGAR =(Horas contratadas + Horas extras - horas ausencia)*valor hora
Apuntes preparado por : Rebeca Cartagena Jessen 44
Cajas de
textos
Name:
Rut,apellido,
nombre,
departamento,
horas, extra,
ausencia,
valor, monto
Botones Name: Buscar
Caption:
BUSCAR
ahora
Name:
Eliminar
Caption:
ELIMINAR
empleado
Name:
Agregar
Caption:
AGREGAR
nuevo
empleado
Haga doble clic en el botón CALCULAR MONTO y digite el siguiente código:
Private Sub calcula_Click()
f = 5
Do While Cells(f, 1) <> ""
Cells(f, 9) = (Cells(f, 5) + Cells(f, 6) - Cells(f, 7)) * Cells(f, 8)
f = f + 1
Loop
End Sub
3. Programar el botón TERMINAR para que detenga la ejecución de la macro.
Haga doble clic en el botón TERMINAR y digite el siguiente código:
Private Sub TERMINA_Click()
End
End Sub
4. En el formulario CONSULTA EMPLEADO, programar el botón BUSCAR AHORA. Este botón deberá
permitir buscar el rut ingresado en el cuadro de texto RUT, si existe en la planilla desplegar sus datos, si
no existe desplegar mensaje “empleado no encontrado”.
Haga doble clic en el botón BUSCAR AHORA, y digite el siguiente código:
Private Sub buscar_Click()
fila = 5
sw = "no"
Do While Cells(fila, 1) <> "" And sw = "no"
If RUT.Text = Cells(fila, 1) Then
APELLIDO.Text = Cells(fila, 2)
NOMBRE.Text = Cells(fila, 2)
APELLIDO.Text = Cells(fila, 3)
DEPARTAMENTO.Text = Cells(fila, 4)
HORAS.Text = Cells(fila, 5)
EXTRA.Text = Cells(fila, 6)
AUSENCIA.Text = Cells(fila, 7)
VALOR.Text = Cells(fila, 8)
MONTO.Text = Cells(fila, 9)
sw = "si"
Else
fila = fila + 1
End If
Loop
If sw = "no" Then
MsgBox ("empleado no encontrado")
End If
End Sub
5. En el formulario CONSULTA EMPLEADO programe el botón ELIMINAR EMPLEADO. Este botón deberá
eliminar al empleado que tenga el rut ingresado en el cuadro de texto RUT.
Haga doble clic en el botón ELIMINAR EMPLEADO y digite el siguiente código:
Apuntes preparado por : Rebeca Cartagena Jessen 45
Private Sub eliminar_Click()
fila = 5
Range("a5").Select
sw = "no"
Do While Cells(fila, 1) <> "" And sw = "no"
If RUT.Text = Cells(fila, 1) Then
Selection.EntireRow.Delete (elimina la fila donde esté el cursor)
sw = "si"
Else
fila = fila + 1
Selection.Offset(1, 0).Select (baja una fila el cursor, dentro de la misma columna)
End If
Loop
If sw = "no" Then
MsgBox ("empleado no encontrado")
End If
End Sub
6. En el formulario CONSULTA EMPLEADO, programar el botón AGREGAR NUEVO EMPLEADO. Este
botón deberá permitir llevar todos los datos del formulario a la planilla.
Haga doble clic en el botón AGREGAR NUEVO EMPLEADO, y digite el siguiente código:
Private Sub agregar_Click()
fila = 5
sw = "no"
Do While Cells(fila, 1) <> "" And sw = "no"
If RUT.Text = Cells(fila, 1) Then
sw = "si"
Else
fila = fila + 1
End If
Loop
If sw = "no" Then
Cells(fila, 1) = RUT.Text
Cells(fila, 2) = APELLIDO.Text
Cells(fila, 2) = NOMBRE.Text
Cells(fila, 3) = APELLIDO.Text
Cells(fila, 4) = DEPARTAMENTO.Text
Cells(fila, 5) = HORAS.Text
Cells(fila, 6) = EXTRA.Text
Cells(fila, 7) = AUSENCIA.Text
Cells(fila, 8) = VALOR.Text
Cells(fila, 9) = MONTO.Text
Else
MsgBox ("empleado ya existe")
End If
End Sub
7. En el formulario CONSULTA EMPLEADO, programe el botón VOLVER AL FORMULARIO PRINCIPAL.
Este botón deberá permitir activar el formulario FORMULARIO PRINCIPAL.
Haga doble clic en el botón VOLVER AL FORMULARIO PRINCIPAL, y digite el siguiente código:
Apuntes preparado por : Rebeca Cartagena Jessen 46
Private Sub volver_Click()
Unload Me
Load PRINCIPAL
PRINCIPAL.Show
End Sub
SUGERENCIA: Vaya ejecutando la macro a medida que vaya construyendo los módulos.
Muestra una lista de valores y le permite seleccionar uno o varios. Para crear un control ListBox haga un clic en
el icono del cuadro de herramientas y dibuje un rectángulo en el formulario
EJEMPLO: Crear la siguiente planilla:
En el editor de Visual Basic crear el siguiente formulario:
PROPIEDADES
CONTROL PROPIEDAD VALOR
ListBox1 Name
RowSource
ListaRut
A2:A10
Label1 Caption Rut
Label2 Caption Nombre
Label3 Caption Edad
TextBox1 Name nombre
TextBox2 Name Edad
CommandButton1 Terminar Terminar
Apuntes preparado por : Rebeca Cartagena Jessen 47
Control ListBox (cuadro de Lista)
- Haga doble clic en el control ListaRut y digite el siguiente código:
Private Sub ListaRut_Click()
fila = ListaRut.ListIndex + 2
nombre.Text = Cells(fila, 2)
edad.Text = Cells(fila, 3)
End Sub
- Haga doble clic en el control Terminar y digite el siguiente código:
Private Sub terminar_Click()
End
End Sub
- Ejecute la macro.
Permite mostrar una lista de datos, pero éstos son agregados por el usuario.
Se trabajan dentro de un formulario
Para que el cuadro llamado Combobox, entregue nombre de ciudades, se debe programar ese botón
Haciendo doble clic sobre él y seleccionado luego el evento o procedimiento Enter
Apuntes preparado por : Rebeca Cartagena Jessen 48
Cuadro Combinado(COMBOBOX)
Cuadro Combinado o también
llamado Combobox.
En la propiedad name se le asigna
Si se activa este botón, debe traer el
nombre del gerente y el Nº de
empleados de la sucursal seleccionada
previamente en el combobox
Nombre del combobox Evento o Procedimiento
Se digita :
Private Sub ciudad_Enter()
With ciudad
.Clear
.AddItem "La Paz"
.AddItem "Santa Cruz"
.AddItem "Sucre"
End With
End Sub
Ahora veremos como se pueden archivar los datos de una
hoja en un archivo aparte.
Los archivos secuenciales son aquellos que al registrar sus datos llevan una secuencia, por ejemplo si tengo 10
registros con los datos de 10 cliente, estos internamente se ordenan de uno en uno, es decir el primer registro
es el 1, el sgte el 2 y así sucesivamente.
Instrucciones para el manejo de archivo secuenciales
Open "c:datos.xls" For Output As 1 - Abre un archivo en la unidad C llamado datos.xls, el archivo es de salida
en un área de almacenamiento temporal
Write #1, Num_identificación, nombre, dirección, fono; – Graba en el archivo datos.xls los campos Numero de
identificación, nombre, dirección y fono (se supone que estos datos se encuentran en una planilla excel)
Write #1, - Salta a la línea sgte.
Close #1 – Cierra el archivo (una vez que se termino de recorrer todos los registros, se debe cerrar el archivo
datos.xls)
Apuntes preparado por : Rebeca Cartagena Jessen 49
Archivos Secuenciales
Pensemos en el sgte. Ejemplo, se tiene la sgte. Hoja llamada Materiales con la sgte. información
Con los datos de la hoja Materiales buscaremos todos aquellos registros que tienen CRITICIDAD B, en el caso
de encontrarlos, se debe enviar a un archivo llamado registrar(ubicado en la Unidad D dentro de una carpeta
llamado Resultados y solo se copiarán los campos Código y descripción.
Le mostraré antes que nada que en la unidad D, se encuentra la carpeta RESULTADOS (se debe crear)
Digite la sgte. macro
Sub archivar()
Sheets("Materiales").Activate
f = 4
Range("a3").Select
Open "d:resultadosregistrar.xls" For Output As #1
Do While ActiveCell <> Empty
If Cells(f, 4) = "B" Then
Write #1, Cells(f, 1), Cells(f, 2);
Write #1,
End If
Apuntes preparado por : Rebeca Cartagena Jessen 50
f = f + 1
Selection.Offset(1, 0).Select
Loop
Close #1
End sub
Si ejecuto la macro, se crea automáticamente dentro de la carpeta RESULTADO, el archivo registrar
Este archivo al abrirlo contiene los registros en excel, pero solo los campos seleccionados, Código y la
descripción.
Aparecen los campos juntos, pero se pueden dejar que cada campo quede en columnas separadas
Seleccione las celdas A1:A6
Aplique el menú Datos – Tablas en columnas
SHEETS o WORSHEETS – Permite activar una hoja de cálculo
La sintaxis es
Sheets(“nombre de la hoja”).activate 0 Sheets(“nombre de la hoja).select
En el ejemplo anterior hemos visto un libro que contiene varias hojas y cada hoja tiene su propio nombre.
Si estando por ejemplo en la hoja Materiales y necesitamos buscar información o rescatar datos de cualquier
otra hoja distinta de la que nos encontramos, se debe activar la hoja con el sheets.
Ejemplo, estando en la hoja Materiales, necesito que se vaya a la hoja Pedidos y que seleccione la celda A5
Sheets(“Pedidos”).activate
Range(“a5”).select
Apuntes preparado por : Rebeca Cartagena Jessen 51

Más contenido relacionado

Destacado

Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Alejandro Centeno
 
Sesión de aprendizaje matemática-2015
Sesión de aprendizaje matemática-2015Sesión de aprendizaje matemática-2015
Sesión de aprendizaje matemática-2015Roberto Puma Apaza
 
Viga a flexion y corte ansi aisc 360 10
Viga a flexion y corte ansi aisc 360 10Viga a flexion y corte ansi aisc 360 10
Viga a flexion y corte ansi aisc 360 10nicolandt
 
Manejo de macros[1]
Manejo de macros[1]Manejo de macros[1]
Manejo de macros[1]paoalzate
 
Macros en excel
Macros en excelMacros en excel
Macros en excelargenispd
 
Olson matunga final project dip scie ed 12
Olson matunga final project dip scie ed 12Olson matunga final project dip scie ed 12
Olson matunga final project dip scie ed 12OLSON MATUNGA
 
Teoría de las probabilidades
Teoría de las probabilidadesTeoría de las probabilidades
Teoría de las probabilidadesJohanna Garcia
 
Manual de-macros-excel
Manual de-macros-excel  Manual de-macros-excel
Manual de-macros-excel Esther Gaytán
 
Macro, tablas dinamicas, filtro avanzado
Macro, tablas dinamicas, filtro avanzadoMacro, tablas dinamicas, filtro avanzado
Macro, tablas dinamicas, filtro avanzadoNpaolaChaves
 
Diplomado ejecutivo de excel
Diplomado ejecutivo de excelDiplomado ejecutivo de excel
Diplomado ejecutivo de excelmayra galdamez
 
Taller 1 macros excel renee gonzalez martinez
Taller 1 macros excel renee gonzalez martinezTaller 1 macros excel renee gonzalez martinez
Taller 1 macros excel renee gonzalez martinezRenee Gonzalez
 
Filtro Avanzado en Excel
Filtro Avanzado en ExcelFiltro Avanzado en Excel
Filtro Avanzado en Excelangela1140
 
Análisis de vigas de concreto armado
Análisis de vigas de concreto armadoAnálisis de vigas de concreto armado
Análisis de vigas de concreto armadoJosé Grimán Morales
 

Destacado (20)

Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel Experto en curso de programacion de macros en excel
Experto en curso de programacion de macros en excel
 
Macros de excel
Macros de excelMacros de excel
Macros de excel
 
Sesión de aprendizaje matemática-2015
Sesión de aprendizaje matemática-2015Sesión de aprendizaje matemática-2015
Sesión de aprendizaje matemática-2015
 
Excel 2007 avanzado
Excel 2007 avanzadoExcel 2007 avanzado
Excel 2007 avanzado
 
Mac
MacMac
Mac
 
Uso de macros en excel
Uso de macros en excelUso de macros en excel
Uso de macros en excel
 
Viga a flexion y corte ansi aisc 360 10
Viga a flexion y corte ansi aisc 360 10Viga a flexion y corte ansi aisc 360 10
Viga a flexion y corte ansi aisc 360 10
 
Manejo de macros[1]
Manejo de macros[1]Manejo de macros[1]
Manejo de macros[1]
 
Macros en excel
Macros en excelMacros en excel
Macros en excel
 
Olson matunga final project dip scie ed 12
Olson matunga final project dip scie ed 12Olson matunga final project dip scie ed 12
Olson matunga final project dip scie ed 12
 
Teoría de las probabilidades
Teoría de las probabilidadesTeoría de las probabilidades
Teoría de las probabilidades
 
Manual de-macros-excel
Manual de-macros-excel  Manual de-macros-excel
Manual de-macros-excel
 
Macro, tablas dinamicas, filtro avanzado
Macro, tablas dinamicas, filtro avanzadoMacro, tablas dinamicas, filtro avanzado
Macro, tablas dinamicas, filtro avanzado
 
Curso de Macros Excel
Curso de Macros ExcelCurso de Macros Excel
Curso de Macros Excel
 
Diplomado ejecutivo de excel
Diplomado ejecutivo de excelDiplomado ejecutivo de excel
Diplomado ejecutivo de excel
 
Taller 1 macros excel renee gonzalez martinez
Taller 1 macros excel renee gonzalez martinezTaller 1 macros excel renee gonzalez martinez
Taller 1 macros excel renee gonzalez martinez
 
Creando macros en Excel 2010 para programdores
Creando macros en Excel 2010 para programdoresCreando macros en Excel 2010 para programdores
Creando macros en Excel 2010 para programdores
 
Filtro Avanzado en Excel
Filtro Avanzado en ExcelFiltro Avanzado en Excel
Filtro Avanzado en Excel
 
Ejercicios revisión sda y te
Ejercicios revisión sda y teEjercicios revisión sda y te
Ejercicios revisión sda y te
 
Análisis de vigas de concreto armado
Análisis de vigas de concreto armadoAnálisis de vigas de concreto armado
Análisis de vigas de concreto armado
 

Similar a Apuntes macros excel (20)

Taller de macro
Taller de macroTaller de macro
Taller de macro
 
Macro
MacroMacro
Macro
 
Taller macro
Taller macroTaller macro
Taller macro
 
Preguntas del segundo taller
Preguntas del segundo tallerPreguntas del segundo taller
Preguntas del segundo taller
 
Macros en excel 2018
Macros en excel 2018Macros en excel 2018
Macros en excel 2018
 
Macros en excel 2018
Macros en excel 2018Macros en excel 2018
Macros en excel 2018
 
Macro.
Macro.Macro.
Macro.
 
Taller macro
Taller macroTaller macro
Taller macro
 
MACROS EN EXCEL.
MACROS EN EXCEL.MACROS EN EXCEL.
MACROS EN EXCEL.
 
Macros escrito (1)
Macros escrito (1)Macros escrito (1)
Macros escrito (1)
 
Preguntas del segundo taller copia
Preguntas del segundo taller   copiaPreguntas del segundo taller   copia
Preguntas del segundo taller copia
 
Preguntas del segundo taller
Preguntas del segundo tallerPreguntas del segundo taller
Preguntas del segundo taller
 
Macros
MacrosMacros
Macros
 
Taller
TallerTaller
Taller
 
Macros escrito (1)
Macros escrito (1)Macros escrito (1)
Macros escrito (1)
 
Macros escrito
Macros escritoMacros escrito
Macros escrito
 
Taller
TallerTaller
Taller
 
Macros
MacrosMacros
Macros
 
Taller
TallerTaller
Taller
 
Macros
MacrosMacros
Macros
 

Más de magister845

ERP SAP Aprendizaje Modulo Logistica parte 3
ERP SAP Aprendizaje Modulo Logistica parte 3ERP SAP Aprendizaje Modulo Logistica parte 3
ERP SAP Aprendizaje Modulo Logistica parte 3magister845
 
ERP SAP Aprendizaje Modulo Logistica parte 2
ERP SAP Aprendizaje Modulo Logistica parte 2ERP SAP Aprendizaje Modulo Logistica parte 2
ERP SAP Aprendizaje Modulo Logistica parte 2magister845
 
ERP SAP Aprendizaje Modulo Logistica parte 1
ERP SAP Aprendizaje Modulo Logistica parte 1ERP SAP Aprendizaje Modulo Logistica parte 1
ERP SAP Aprendizaje Modulo Logistica parte 1magister845
 
ERP SAP Aprendizaje Modulo Finanzas parte 3
ERP SAP Aprendizaje Modulo Finanzas parte 3ERP SAP Aprendizaje Modulo Finanzas parte 3
ERP SAP Aprendizaje Modulo Finanzas parte 3magister845
 
ERP SAP Aprendizaje Modulo Finanzas parte 2
ERP SAP Aprendizaje Modulo Finanzas parte 2ERP SAP Aprendizaje Modulo Finanzas parte 2
ERP SAP Aprendizaje Modulo Finanzas parte 2magister845
 
ERP SAP Aprendizaje Modulo Finanzas parte 1
ERP SAP Aprendizaje Modulo Finanzas parte 1ERP SAP Aprendizaje Modulo Finanzas parte 1
ERP SAP Aprendizaje Modulo Finanzas parte 1magister845
 
Introduccion Sistemas Gestion Empresarial ERP
Introduccion Sistemas Gestion Empresarial ERPIntroduccion Sistemas Gestion Empresarial ERP
Introduccion Sistemas Gestion Empresarial ERPmagister845
 
Listado Sociedades CO
Listado Sociedades COListado Sociedades CO
Listado Sociedades COmagister845
 
Listado Sociedades
Listado SociedadesListado Sociedades
Listado Sociedadesmagister845
 
Listado Moneda de la Cuenta
Listado Moneda de la CuentaListado Moneda de la Cuenta
Listado Moneda de la Cuentamagister845
 
Listado Grupo Cuentas
Listado Grupo CuentasListado Grupo Cuentas
Listado Grupo Cuentasmagister845
 
Listado Cuenta Tipo
Listado Cuenta TipoListado Cuenta Tipo
Listado Cuenta Tipomagister845
 
Listado Clase Cuenta
Listado Clase CuentaListado Clase Cuenta
Listado Clase Cuentamagister845
 
Notas macros excel
Notas macros excelNotas macros excel
Notas macros excelmagister845
 
Neurociencias y aprendizajes art18
Neurociencias y aprendizajes               art18Neurociencias y aprendizajes               art18
Neurociencias y aprendizajes art18magister845
 
Presion arterial-gama
Presion arterial-gamaPresion arterial-gama
Presion arterial-gamamagister845
 

Más de magister845 (19)

Framework .net
Framework .netFramework .net
Framework .net
 
Net y WPF
Net y WPFNet y WPF
Net y WPF
 
ERP SAP Aprendizaje Modulo Logistica parte 3
ERP SAP Aprendizaje Modulo Logistica parte 3ERP SAP Aprendizaje Modulo Logistica parte 3
ERP SAP Aprendizaje Modulo Logistica parte 3
 
ERP SAP Aprendizaje Modulo Logistica parte 2
ERP SAP Aprendizaje Modulo Logistica parte 2ERP SAP Aprendizaje Modulo Logistica parte 2
ERP SAP Aprendizaje Modulo Logistica parte 2
 
ERP SAP Aprendizaje Modulo Logistica parte 1
ERP SAP Aprendizaje Modulo Logistica parte 1ERP SAP Aprendizaje Modulo Logistica parte 1
ERP SAP Aprendizaje Modulo Logistica parte 1
 
ERP SAP Aprendizaje Modulo Finanzas parte 3
ERP SAP Aprendizaje Modulo Finanzas parte 3ERP SAP Aprendizaje Modulo Finanzas parte 3
ERP SAP Aprendizaje Modulo Finanzas parte 3
 
ERP SAP Aprendizaje Modulo Finanzas parte 2
ERP SAP Aprendizaje Modulo Finanzas parte 2ERP SAP Aprendizaje Modulo Finanzas parte 2
ERP SAP Aprendizaje Modulo Finanzas parte 2
 
ERP SAP Aprendizaje Modulo Finanzas parte 1
ERP SAP Aprendizaje Modulo Finanzas parte 1ERP SAP Aprendizaje Modulo Finanzas parte 1
ERP SAP Aprendizaje Modulo Finanzas parte 1
 
Introduccion Sistemas Gestion Empresarial ERP
Introduccion Sistemas Gestion Empresarial ERPIntroduccion Sistemas Gestion Empresarial ERP
Introduccion Sistemas Gestion Empresarial ERP
 
Listado Sociedades CO
Listado Sociedades COListado Sociedades CO
Listado Sociedades CO
 
Listado Sociedades
Listado SociedadesListado Sociedades
Listado Sociedades
 
Listado Moneda de la Cuenta
Listado Moneda de la CuentaListado Moneda de la Cuenta
Listado Moneda de la Cuenta
 
Listado Grupo Cuentas
Listado Grupo CuentasListado Grupo Cuentas
Listado Grupo Cuentas
 
Listado Cuenta Tipo
Listado Cuenta TipoListado Cuenta Tipo
Listado Cuenta Tipo
 
Listado Clase Cuenta
Listado Clase CuentaListado Clase Cuenta
Listado Clase Cuenta
 
Notas macros excel
Notas macros excelNotas macros excel
Notas macros excel
 
Neurociencias y aprendizajes art18
Neurociencias y aprendizajes               art18Neurociencias y aprendizajes               art18
Neurociencias y aprendizajes art18
 
Javascript dom
Javascript domJavascript dom
Javascript dom
 
Presion arterial-gama
Presion arterial-gamaPresion arterial-gama
Presion arterial-gama
 

Último

TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOweislaco
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxMartín Ramírez
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfAlfredoRamirez953210
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxdanalikcruz2000
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)veganet
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesRaquel Martín Contreras
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfDaniel Ángel Corral de la Mata, Ph.D.
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaLuis Minaya
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxYeseniaRivera50
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialpatriciaines1993
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxMartín Ramírez
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicialLorenaSanchez350426
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALEDUCCUniversidadCatl
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadJonathanCovena1
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicaGianninaValeskaContr
 

Último (20)

TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJOTUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
TUTORIA II - CIRCULO DORADO UNIVERSIDAD CESAR VALLEJO
 
La luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luzLa luz brilla en la oscuridad. Necesitamos luz
La luz brilla en la oscuridad. Necesitamos luz
 
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdfTema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
Tema 7.- E-COMMERCE SISTEMAS DE INFORMACION.pdf
 
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptxc3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
c3.hu3.p1.p2.El ser humano y el sentido de su existencia.pptx
 
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdfEstrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
Estrategias de enseñanza - aprendizaje. Seminario de Tecnologia..pptx.pdf
 
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptxLINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
LINEAMIENTOS INICIO DEL AÑO LECTIVO 2024-2025.pptx
 
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
Instrucciones para la aplicacion de la PAA-2024b - (Mayo 2024)
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 
Técnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materialesTécnicas de grabado y estampación : procesos y materiales
Técnicas de grabado y estampación : procesos y materiales
 
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdfTema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
Tema 8.- Gestion de la imagen a traves de la comunicacion de crisis.pdf
 
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsaManejo del Dengue, generalidades, actualización marzo 2024 minsa
Manejo del Dengue, generalidades, actualización marzo 2024 minsa
 
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptxPresentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
Presentación de Estrategias de Enseñanza-Aprendizaje Virtual.pptx
 
Día de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundialDía de la Madre Tierra-1.pdf día mundial
Día de la Madre Tierra-1.pdf día mundial
 
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptxc3.hu3.p1.p3.El ser humano como ser histórico.pptx
c3.hu3.p1.p3.El ser humano como ser histórico.pptx
 
libro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación iniciallibro para colorear de Peppa pig, ideal para educación inicial
libro para colorear de Peppa pig, ideal para educación inicial
 
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMALVOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
VOLUMEN 1 COLECCION PRODUCCION BOVINA . SERIE SANIDAD ANIMAL
 
Sesión La luz brilla en la oscuridad.pdf
Sesión  La luz brilla en la oscuridad.pdfSesión  La luz brilla en la oscuridad.pdf
Sesión La luz brilla en la oscuridad.pdf
 
Los Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la SostenibilidadLos Nueve Principios del Desempeño de la Sostenibilidad
Los Nueve Principios del Desempeño de la Sostenibilidad
 
Earth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversaryEarth Day Everyday 2024 54th anniversary
Earth Day Everyday 2024 54th anniversary
 
cuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básicacuadernillo de lectoescritura para niños de básica
cuadernillo de lectoescritura para niños de básica
 

Apuntes macros excel

  • 2. DATO Es todo representación de una entidad y que es susceptible de tratamiento ya sea en un programa o proceso informático. Por ejemplo: nombre, apellido, precio, edad, valor unitario. Los datos por si solo no permiten la toma de decisiones (esto es posible cuando se tiene un grupo de datos coherente). INFORMACIÓN Conjunto de datos relacionados entre si, que de alguna forma permite la toma de decisiones. Soporta un análisis. PROCESO DE DATOS COMPUTADOR Máquina capaz de aceptar datos de entrada, procesarlos y entregar resultados de salida (información). ESTRUCTURA GENERAL DE UN COMPUTADOR ALGORITMO Los algoritmos son procedimientos específicos que señalan paso a paso la solución de un problema y que garantizan el logro de una solución. Un procedimientos algorítmico es una sucesión de acciones que hay que realizar, completamente prefijada. Su correcta ejecución lleva a una solución segura del problema. PROGRAMA Conjunto de instrucciones escritas en un lenguaje de alto nivel (por ejemplo Visual Basic) que en una secuencia lógica puede entregar un resultado esperado. Apuntes preparado por : Rebeca Cartagena Jessen 2 CONCEPTOS GENERALES ENTRADA (datos + instrucciones) Secuencia lógica de operaciones SALIDA (información) REGLAS
  • 3. VARIABLE Son elementos que contienen información que se encuentran almacenados en la memoria principal del computador. Pueden contener información alfabética, numérica o alfanumérica. Las variables deben tener nombres nemotécnicos ( representativos a la información que se está almacenando ). Es necesario en un programa el uso de variables porque toda información debe tener una representación en la memoria para luego poder utilizarla. Ejemplos AREA=”RRHH” la variable Area tiene almacenado el valor RRHH, y esta información se encuentra en la memoria principal del computador y mientras no se apague esa información permanece. Suma=0 La variable suma, tiene un valor 0, este valor puede ir cambiando en la medida que se ejecuta el programa donde se encuentra esta variable. DEFINICION : Se entiende por Macro a la automatización de aplicaciones que manipulan de una u otra forma una planilla electrónica. Uno de los puntos fuertes de la herramienta excel es su lenguaje para macros. AUTOMATIZACIÓN Aunque Excel contiene dentro a Visual Basic, este lenguaje no tiene ningún vínculo especial que lo amarre a Excel. De hecho Excel utiliza una biblioteca de objetos a la cual se comunica Visual Basic. MACRO DE TECLADO Una primera aproximación a las macros son la creación de Macros de teclado. Estas consisten en Grabar todas las pulsaciones manuales que realizamos sobre una planilla y luego aplicamos esta secuencia sobre cualquier parte de ella. Estando en Excel: 1. Activar la barra de herramientas de Visual Basic con: Menú VER - opción BARRA DE HERRAMIENTAS - opción VISUAL BASIC Apuntes preparado por : Rebeca Cartagena Jessen 3 MACROS DE TECLADO Ejecutar grabar reanudar editor de cuadro de modo Macro macro macro Visual Basic controles diseño Excel Librería de Objetos Visual Basic
  • 4. 2. Hacer un clic en botón GRABAR MACRO. Se desplegará la siguiente ventana • En ella se debe indicar el nombre de la macro (por defecto es Macro1) • Método abreviado es para asociar la ejecución de una macro con pulsaciones de teclas (en este caso será siempre la tecla CTRL con otra). Se sugiere que la letra asociada sea mayúscula. • Guardar Macro en: es para definir si loa macro estará disponible sólo para el libro actual (por defecto) o para otros libros (opción macro personal). 3. Realizar manualmente la operación requerida. 4. Detener la grabación con el botón PROCESO PARA EJECUTAR LA MACRO 1. Menú HERRAMIENTAS - opción MACRO - opción MACROS. Se desplegará la siguiente ventana: Otras formas de Ejecutar una Macro Para realizar esta operación disponemos de tres formas: una por medio de los menús, la otra por un botón de la barra de herramientas y por último por el teclado Método 1 1. Abra el menú Macro y seleccione la opción Macro... y seleccione el botón Ejecutar Método 2 1. Realice un clic sobre el botón asignado a la macro desde la Barra de Herramientas. Método 3 Apuntes preparado por : Rebeca Cartagena Jessen 4 Elegir de la lista el nombre de la macro y luego el botón Ejecutar
  • 5. 1. Pulse la tecla F5 o clic en el botón ejecutar EJECUTAR INTERRUMPIR RESTABLECER EJERCICIOS PROPUESTOS Crear la siguiente planilla llamada EMPLEADOS Crear las siguientes macros de teclado: 1. Macro Fondo_amarillo, para aplicar color de relleno amarillo. 2. Macro signo_peso para aplicar formato monetario $. 3. Macro ARIAL, para aplicar letra arial tamaño 12. 4. Macro BORDES para aplicar bordes de color azul. Apuntes preparado por : Rebeca Cartagena Jessen 5
  • 6. ELIMINAR UNA MACRO Menú Herramientas – opción Macro – opción Macros. Se despliega la ventana VER EL CODIGO DE UNA MACRO En la ventana anterior, seleccione la macro y haga un clic en el botón Modificar, Ud. visualizará el código (instrucciones que componen la macro) en la siguiente ventana: Las líneas que comienzan con la comilla simple (‘) son comentarios. Ud. podría agregar los comentarios que desee (digite la comilla primero y luego escriba el texto requerido). Las líneas en color negro son las instrucciones que al ejecutar el computador realiza la operación. INTEGRAR DOS MACROS Si se desea que una macro realice además las operaciones que están en otra macro se debe: Apuntes preparado por : Rebeca Cartagena Jessen 6 Seleccione con un clic la macro a eliminar y luego haga un clic en botón Eliminar
  • 7. 1. Abrir la macro (de la cual se desee obtener el código) y seleccionar las líneas negras que son las instrucciones en código Visual Basic , luego hacer un clic en Copiar. Cerrar la macro. 2. Abrir la otra macro. Ubicar el cursor en una línea en blanco, después de la última instrucción, y realice la operación de Pegar. ASOCIAR UN BOTÓN A UNA MACRO Ud. puede asociar un elemento gráfico a una macro, de tal forma que al hacer un clic en ese botón se ejecute la macro. 1. Dibuje la figura, con los elementos de la barra de dibujo. 2. Sobre el elemento dibujado haga un clic con el botón derecho del mouse y elija la opción Asignar Macro Se despliega la siguiente ventana: 3. Al desmarcar el elemento y ubicarse con el cursor sobre el aparece la típica mano, la cual si hace un clic ejecuta la macro. ELIMINAR EL ELEMENTO ASOCIADO A UNA MACRO Haga un clic sobre el elemento con el botón derecho del mouse y luego haga un clic con el botón izquierdo sobre el elemento presione finalmente la tecla SUPR. CREAR UNA BARRA DE HERRAMIENTAS PARA LAS MACROS Una de las formas mas útiles para tener disponibles las macros en su planilla es crear una barra de herramientas Creadas las macros, 1. Menú Ver – opción Barra de Herramientas 2. Seleccione la opción Personalizar. Se desplegará la siguiente ventana: Apuntes preparado por : Rebeca Cartagena Jessen 7 Seleccione la macro y luego haga un clic en el botón Aceptar
  • 8. 3. Haga un clic en la pestaña Barra de Herramientas. 4. Haga un clic en el botón Nueva... 5. Se despliega la siguiente ventana: Ud. notará que en el área de trabajo aparece la barra de herramientas, sin ninguna opción 6. La barra de herramientas que acaba de crear aparece en la lista de la ventana Personalizar, y activada. 7. Ahora, haga un clic en la pestaña Comandos de la ventana Personalizar. En la columna Categorías busque la opción Macros y haga un clic en ella. A la derecha aparece las siguientes opciones: 8. El aspecto de la barra de herramientas es el siguiente: Apuntes preparado por : Rebeca Cartagena Jessen 8 Digite el nombre que tendrá la barra de herramientas y luego Aceptar Haga un clic sobre la opción Personalizar elemento del menú y, sin soltar el botón del mouse, arrastre hasta quedar sobre la barra de herramientas creada.
  • 9. 9. Haga un clic, sobre el texto Personalizar elemento de menú, con el botón derecho del mouse aparece un menú donde un a de las opciones es Nombre: &personalizar elemento de menú Borre esta frase (sin borrar el signo &) y escriba el texto que represente la operación que hará la macro. 10. Ahora elija la opción Asignar macro... se desplegará la siguiente ventana: EJERCICIOS PROPUESTOS Desarrolle macros de teclado para cada uno de los siguientes pedidos: 1. Aplicar color de texto azul y borde amarillo a celdas seleccionadas. 2. Aplicar signo monetario ($) y color rojo a celdas seleccionadas. 3. Aplicar el formato de fecha dd/nombre completo del mes/año con cuatro cifras 4. Aplicar el formato de fecha dd/nombre completo del mes/año con cuatro cifras y color de texto azul con borde amarillo a celdas seleccionadas. EJERCICIOS DE MACROS TECLADO (DIRIGIDO Realicemos una macro para calcular el presupuesto total por producto: Crearemos la siguiente planilla: Apuntes preparado por : Rebeca Cartagena Jessen 9 Seleccione la macro que asignará a la opción recién definida en el paso anterior y luego haga un clic en Aceptar.
  • 10. Donde TOTAL será la suma de todos los meses Grabe la planilla con el nombre presupuesto Active la macro de teclado (Menú HERRAMIENTAS – MACRO- GRABAR NUEVA MACRO) Aparece la sgte. Ventana 1. Ubicar el cursor en la celda F5 e ingresar la fórmula =suma(B5:E5). Cópiela hasta la celda F8. 2. Seleccione las celda F5:F8 y aplicar formato moneda 3. Presionar el botón DETENER GRABACION. Para ver el código de la macro ejecutemos: Menú HERRAMIENTAS - Opción MACRO - opción MACROS Seleccionemos la macro TotalProducto y el botón MODIFICAR o la otra opción es ir la menú HERRAMIENTAS, seleccionar Macro y luego Editor de VB, Ubique en la ventana que aparece el icono de macros Personales como lo sgte. Apuntes preparado por : Rebeca Cartagena Jessen 10 Vea si el Módulo1 o Módulo2 contiene su macro, la reconocerá por el nombre que le dio a la macro y la fecha. Ingresamos el nombre de la macro (macro_Presup) Asociamos la macro a las teclas CTRL. b Guardamos en un libro de macros personal Y le damos alguna descripción que nos oriente que tareas hará la macro Al presionar el botón Aceptar, observe la barra de estado, al final de la pantalla, aparece el mensaje GRABANDO (esto quiere decir que cualquier pulsación de teclado comienza a grabarse en el libro de macro personal
  • 11. El código visualizado es: Las líneas en verdes no son ejecutables y se reconocen porque deben llevar un apóstrofe al inicio El término R1C1 hace referencia a la celda A1. Esto se llama NOTACION RIC1 (para poder visualizar esta forma de notación ejecute: Menú HERRAMIENTAS - opción OPCIONES -Haga un clic en la pestaña GENERAL y active la casilla ESTILO DE REFERENCIA F1C1). Ud. notará que cuando el cursor está ubicado en una celda, en la barra de fórmula aparece como referencia el número de fila y número de columna (por ejemplo si Ud. se ubica en la celda b8 en la barra de fórmula aparece F8C2. Para desactivar esta opción vuelva al mismo menú y desactive el estilo de referencia. Asignaremos un icono a la macro y la mantendremos en nuestra barra de herramientas Ir al menú Ver – Barra de Herramientas – Personalizar Ubíquese en la pestaña o etiqueta de Barra de Herramientas y seleccione el botón Nueva... Aparece la sgte ventana, ingrese l nombre que el daremos a la barra de herramientas(macro de compras) y luego ACEPTAR Apuntes preparado por : Rebeca Cartagena Jessen 11
  • 12. Luego aparece la venta de Personalizar, seleccione la etiqueta o pestaña Comandos Arrastre con el mouse el texto que dice “Personalizar elemento del menú y llévelo al interior de la barra de herramientas recién creada llamada macro de compras Cambie el nombre de la barra, apunte con el mouse al nombre que dice personalizar.... y presione el botón derecho del mouse y en la opción Nombre cambie por compras Ahora apunte con el mouse a donde dice compras y presione el botón derecho del mouse y elija la opción Asignar macro y aparece una ventana llamada Asignar Macro, donde Ud., debe seleccionar la macro que se encuentra en el listado, no olvide que se llama macro_Presup y luego presione el botón ACEPTAR Luego cierre la ventana de Personalizar y ya tiene una barra de herramientas asignada a esa macro que puede ser usada con planilla similares a la del presupuesto. La barra compras la puede dejar junto a sus iconos de la barra de herramientas Apuntes preparado por : Rebeca Cartagena Jessen 12 Barra de herramientas Macro de compras Observe la barra compras, ese botón es la macro
  • 13. EJERCICIO: Crear las siguientes macros . 1. Desarrolle una macro que al ejecutar entregue en la fila 9 los totales de cada mes (la macro deberá llamarse TotalMes y el método abreviado debe ser CTRL-b) 2. Desarrolle una macro para aplicar bordes color azul a la planilla anterior (la macro deberá llamarse BordesAzul y el método abreviado debe ser CONTROL-d) 3. Agregue la columna FECHA a la planilla (en la columna G) y llene el rango con fechas. Desarrolle una macro para dar un formato de fecha a los datos (el que Ud. elija). La macro deberá llamarse FormatoFecha y el método abreviado debe ser CTRL-e. 4. Desarrolle un a macro para eliminar las líneas divisorias de la planilla (la macro deberá llamarse QuitarLineas y el método abreviado debe ser CTRL-f). 5. Desarrolle un a macro para activar las líneas divisorias de la planilla (la macro deberá llamarse ActivaLineas y el método abreviado debe ser CTRL-g). OBSERVACION: Visualice en cada ejercicio el código de la macro e interprételo. Apuntes preparado por : Rebeca Cartagena Jessen 13
  • 14. Entorno de Visual Basic La creación de macros en general utiliza el ambiente de Visual basic. • Primero accesar la planilla electrónica Excel. • Elegir del menú la opción HERRAMIENTAS • Del submenú desplegado elegir la opción MACROS • Elegir del nuevo submenú la opción EDITOR DE VISUAL Basic Para visualizar dichos elementos ejecute: • Menú VER - opción EXPLORADOR DE PROYECTOS • Menú VER - opción VENTANA DE PROPIEDADES • Menú INSERTAR - opción USER FORM Apuntes preparado por : Rebeca Cartagena Jessen 14 (Los últimos tres pasos los puede obviar si presiona las teclas ALT y F11) El entorno de Visual Basic utiliza tres elementos fundamentales para la construcción de macros: • EXPLORADOR DE PROYECTOS • VENTANA DE PROPIEDADES • CUADRO DE HERRAMIENTAS
  • 15. OBJETO : Es cualquier elemento reconocible en el entorno de desarrollo. Por ejemplo, en Excel son objetos una celda, un rango de celdas, un libro de trabajo, una hoja de cálculo una columna, etc. PROPIEDAD : Es cualquier atributo o referencia de un objeto. Por ejemplo, una celda tiene fondo y bordes, una columna tiene ancho, una hoja tiene un nombre; un texto tiene un tamaño, color, etc. METODO : Corresponden a las acciones que se pueden realizar sobre un objeto. Por ejemplo, Una celda se puede copiar, borrar, darle un formato; una columna se puede Eliminar, a una hoja se le puede cambiar el nombre; un libro se puede guardar. Observación: 1. Si no visualiza el explorador de proyecto y/o la ventana de propiedades elija Menú VER – opción EXPLORADOR DE PROYECTO y/o VENTANA DE PROPIEDADES 2. Para escribir una macro debe activar el cuadro de código: Elija menú VER – opción CODIGO. Se desplegará la siguiente ventana. Apuntes preparado por : Rebeca Cartagena Jessen 15 Conceptos Fundamentales para el Desarrollo de Macros PROGRAMACIÓN DE MACROS Menú principal Barra de herramientas Explorador de proyecto Ventana de propiedades Area de trabajo
  • 16. Algunos objetos con sus métodos y propiedades OBJETO METODO PROPIEDADES WorkBooks .Add .Count .Close .Item .Open .Application WorkSheets .Add .Visible .Copy .Activate .Delete .Count .Insert Range .Activate .Borders .Calculator .Cells .Clear .Formula .Copy .Name .Show .Interior .Insert .Offset Cells .Activate .Borders .Select .Column .Copy .Font .Formula .Width Apuntes preparado por : Rebeca Cartagena Jessen 16
  • 17. DESARROLLO DE UN EJEMPLO: 1. CREAR LA SIGUIENTE PLANILLA: 2. Activar la barra de herramientas de Visual Basic 3. Para ir al código de programación: Elija la opción VER del menú y luego la opción CODIGO (aparecerá una ventana en blanco, con el cursor activado) 4. Para crear un procedimiento (Macro) deberá digitar primero: Sub nombre de la macro( ) (no debe incluir espacios ni caracteres en El nombre, salvo el carácter "_" ) Luego presione la tecla ENTER y notará que se crea al final el comando End Sub Entre estas dos líneas se crea el código de la macro. Para el ejemplo, el nombre de la macro será Calcular_Comision La macro calculara un 20% de comisión del total de las ventas. Apuntes preparado por : Rebeca Cartagena Jessen 17 Programando directamente en código Haga un clic en el botón EDITOR DE VISUAL Basic
  • 18. RANGE: PARA SELECCIONAR UNA CELDA O RANGO DE CELDAS La sintaxis es : En nuestro ejemplo: 1. Digite Range("I4").Select (Cuando se ejecute la macro, ubicará el cursor en la celda I4) 2. Para ver el resultado, vuelva a excel haciendo un clic en el botón VER MICROSOFT Excel 3. Asocie el método abreviado CTRL - t a la macro (herramientas - macro – macros - botón Opciones), sino desde el icono que representa el ejecutar 4. Ubique el cursor en cualquier celda que no sea la I4, y ejecute la macro SELECTION.FORMULA – PERMITE NGRESAR DATOS EN UNA CELDA ACTIVA. (También podemos ingresar formula, lo veremos más adelante) La sintaxis es: En nuestro ejemplo: 1) Digite en la siguiente línea del código Selection.Formula=”Comisión Ventas” (Así va quedando la macro en VB) Apuntes preparado por : Rebeca Cartagena Jessen 18 Instrucciones para macros Range ("celda o rango de celdas").Select Selection.Formula="dato " Al hacer un clic en este botón, se ejecuta la macro
  • 19. 2) Vuelva a excel y ejecute la macro(presione las teclas CTRL. t SELECTION.OFFSET - PERMITE UBICARSE EN UNA CELDA CON RESPECTO A OTRA. La sintaxis es: Nº de fila : si es positivo bajará tantas celdas como indique el número Si es negativo, subirá tantas celdas como indique el número Nº de columna : Si es positivo avanzará tantas columnas como indique el número Si es negativo retrocederá tantas columnas como indique el número En nuestro ejemplo, agregue la siguiente línea al código: Selection.Offset(1, 0).Select (bajará una celda y se ubicará en la I4) (el cero indica no moverse de la columna) SELECTION.FORMULA - PERMITE INGRESAR UNA FORMULA Considere que la referencia a celdas se hará de acuerdo a la celda en que se esté ubicado en ese momento. REFERENCIA A CELDAS R Indica fila (si el número es positivo hace referencia a una celda ubicada hacia abajo) C indica columna (si el número es positivo hace referencia a una celda ubicada hacia la derecha) Apuntes preparado por : Rebeca Cartagena Jessen 19 Selection.Formula="=formula" R[nº]C[nº] Selection.Offset(nº de fila,nº de columna).Select
  • 20. Si desea hacer referencia a celdas en la misma fila o misma columna: RC[Nº] : Fija la fila R[nº]C : Fija la columna En nuestro ejemplo, Agregue la siguiente línea al código: Selection.Formula =”=RC[-]*0.2” Vuelva a Excel y ejecute la macro RANGE COPY- PERMITE COPIAR FORMULA A UNA CELDA O A UN RANGO. La sintaxis es: En nuestro ejemplo, agregue la siguiente línea al código: Range("I5").Copy Range("I6:I11") Nuestra macro está quedando en la hoja de código o en el editor de VB, así: Vuelva a excel y ejecute la macro (solo para que vea como va quedando y que está haciendo) SELECTION.NUMBER.FORMAT – PERMITE DAR FORMATO NUMERICO A UN RANGO DE CELDAS Apuntes preparado por : Rebeca Cartagena Jessen 20 Range("coordenada de origen").Copy Range("coordenadas de destino") Selection.NumberFormat="formato deseado"
  • 21. En nuestro ejemplo, agregue la siguiente línea al código: Range("I5:I11").Select Selection.NumberFormat =”$ 0.0" (Se coloca el símbolo que ud.. maneje en su planilla, por ejemplo $.) Vuelva a excel y ejecute la macro ALIGNMENT - PARA ALINEAR UN RANGO DE CELDAS Range("I5:I11").Select With Selection .HorizontalAlignment = xlCenter End With PARA APLICAR COLOR DE FONDO A UN RANGO DE CELDAS Range("I5:I11").Select (si está marcado el rango desde la actividad anterior, lo podemos obviar) With Selection.Interior .ColorIndex = 7 End With FONT.COLORINDEX - PERMITE APLICAR COLOR A LA FUENTE Range("I4:I8").Select Selection.Font.ColorIndex = 5 o también With Selection.Font .ColorIndex = 5 End With BORDERS.LINESTYLE – PERMITE APLICAR BORDES Selection.Borders.LineStyle = xlContinuous (línea simple en los bordes) (Los colores son : 1(negro), 2(blanco), 3(rojo), 4(verde), 5(azul), 6(amarillo), 7(lila)) Veamos como va quedando nuestra macro en el editor de VB. Luego vaya a excel y ejecute la macro. Apuntes preparado por : Rebeca Cartagena Jessen 21
  • 22. UCASE - Permite convertir a mayúsculas la información de una celda Sintaxis : Ucase(“hola”) LCASE - Permite convertir a minúsculas la información de una celda ACTIVECELL - PARA VER O HACER REFERENCIA AL CONTENIDO DE LA CELDA EN QUE ESTÁ UBICADO EL CURSOR. La sintaxis es : CELLS - Entrega el contenido que hay en una celda SINTAXIS Cells(nº de fila,nºde columna) Por ejemplo coloquemos el contenido de la celda I4 (Comision Ventas, que es la fila 4 y la columna 9 ), como parte del título de la planilla y copiarlo a la celda E1. Digitamos a continuación de lo que ya tenemos en nuestra macro, lo sgte.: Range(“E1”).select Selection.formula=cells(4,9) Apuntes preparado por : Rebeca Cartagena Jessen 22 ActiveCell
  • 23. IF – THEN – ENDIF – PERMITE REALIZAR CONDICION LOGICAS Permite establecer procesos (conjunto de instrucciones) alternativos dada una condición. Su sintaxis es: GOTO - PARA BIFURCAR LA SECUENCIA DE INSTRUCCIONES Permite cambiar el flujo normal de un proceso. Veamos un EJEMPLO Si el vendedor tuvo un total de ventas sobre o igual los 700 , tendrá un Bono adicional que será un 50% de lo obtenido en la comisión. Crearemos una columna en J que entregará el BONO para todos aquellos que cumplan la condición anterior. Range("J4").Select Selection.Formula = "BONO" Range("h5").Select comparar: If ActiveCell <> "" Then If ActiveCell >= 700 Then Selection.Offset(0, 2).Select Selection.Formula = "=RC[-1]*.5" Selection.Offset(1, -2).Select End If Selection.Offset(1, 0).Select GoTo comparar: End If Apuntes preparado por : Rebeca Cartagena Jessen 23 Nombre es una palabra que deberá ir en alguna parte del código (debe terminar con ":"). Al llegar a la línea que tiene la sentencia GoTo, el sistema saltará a la línea del código que tiene el nombre y ejecutará lo que sigue inmediatamente. If condición lógica Then …………… …………… …………… Else …………… …………… …………… End If Ejecuta cuando la condición es verdadera Ejecuta cuando la condición es verdadera GoTo nombre
  • 24. Veamos como va quedando la macro Apuntes preparado por : Rebeca Cartagena Jessen 24
  • 25. CONDICIONALIDAD ANIDADA Puede que en una situación se deba definir más de dos alternativas (por ejemplo, que la situación del alumno sea Aprobado, Reprobado o Pendiente). Para establecer esta situación se utiliza la instrucción IF con anidaciones (IF dentro de IF). Ejemplo Insertaremos(sin usar macros) una columna a nuestra planilla donde colocaremos la Calificación del vendedor Agregamos una nueva columna llamada TURNO (en la col. L), que nos entregará lo sgte. Si el vendedor es calificación A1, tendrá turno Fijo, los B1, tendrán turno Alternado y los C1 tendrán sólo de tarde Range("L4").Select Selection.Formula = "TURNO" Range("C5").Select verturno: If ActiveCell <> "" Then Apuntes preparado por : Rebeca Cartagena Jessen 25 If condición Then .................... .................... If condición Then ...................... ...................... If condición Then ...................... ...................... Else ................. ................. End If End If Else If condición Then ................. ................. Else ......................... ......................... End If End If
  • 26. If ActiveCell = "A1" Then Selection.Offset(0, 9).Select Selection.Formula = "Fijo" Else If ActiveCell = "B1" Then Selection.Offset(0, 9).Select Selection.Formula = "Alternado" Else Selection.Offset(0, 9).Select Selection.Formula = "Tarde" End If End If Selection.Offset(1, -9).Select GoTo verturno End If Ejecutada la macro queda así la columna Turno SELECT CASE – Permite realizar una serie de selecciones múltiples , que se pueden resolver con el uso de varios Si condicionales, pero esta instrucción permite usarla de forma más fácil. - Estructura Select Case.: Esta estructura se utiliza como alternativa a la estructura If...Then...Else. Sintaxis Select Case Variable Case valor variable 1 INSTRUCCIONES Case valor variable 2 Instrucciones Case else INSTRUCCIONES End Select Apuntes preparado por : Rebeca Cartagena Jessen 26
  • 27. La cláusula Case Else se ejecutará en caso de que ningún valor de la lista de expresiones coincida. Veamos un caso real, si variable X tiene el valor 1 Suma valores, si tiene el valor 2 Restará y así. Select Case X Case 1 Suma_valores Case 2 Resta_valores Case 3 Divide_valores Case else Inicializa_valores End Select Ejemplo, el mismo caso anterior, pero resuelto con el Select Case Range("L4").Select Selection.Formula = "TURNO" Range("C5").Select verturno: If ActiveCell <> "" Then turno = ActiveCell.Formula Select Case turno Case "A1" Selection.Offset(0, 9).Select Selection.Formula = "Fijo" Case "B1" Selection.Offset(0, 9).Select Selection.Formula = "Alternado" Case "C1" Selection.Offset(0, 9).Select Selection.Formula = "Tarde" End Select Selection.Offset(1, -9).Select GoTo verturno End If A través de una macro podemos realizar cálculos como contabilizar campos que cumplan con una determinada condición, como también podemos ir sumando los valores de una columna en forma arbitraria o también la podemos ir sumando solo si cumple determinados criterios. Para lograr llevar estos procesos, debemos asignar a determinadas variables que Ud. defina, el rol de contadores o de acumuladores, estos valores cada vez que se incrementan no se pierden porque van quedando en la memoria principal del computador, solo se perderán si se apaga el equipo o hay cortes de luz. Apuntes preparado por : Rebeca Cartagena Jessen 27 Uso de contadores y acumuladores en Macros X es una variable que puede tomar el valor : 1, 2 , 3 o cualquier otro
  • 28. Contadores: Son variables que nos van a permitir llevar un control de la cantidad de veces que se realiza una determinada operación. Normalmente se inicializarán con el valor cero y en cada ciclo o nuevo proceso, es posible que el contador se incrementa en el valor 1. Ejemplo de un contador cualquiera Conta=0 la variable Conta se inicializa con el valor 0 al inicio del programa Y durante el programa que tiene un proceso es probable que este contador se incremente y la forma de hacerlo es: Conta=conta +1 Acumulador : Son variables que permiten realizar una sumatoria de valores numéricos. El acumulador, permite en cada nuevo proceso o ciclo incrementarse la variable en un valor distinto que normalmente es un valor que se ingresa en el proceso de entrada de datos o que está contenido dentro de la planilla. Es recomendable inicializar los acumuladores al principio con el valor 0. Ejemplo Suma_ed=0 , la variable suma_ed es un acumulador que se inicializa al principio del programa con el valor cero, y es probable que en el proceso del programa, el acumulador se vaya incrementando muchas veces. Pensemos que esta variable que la hemos definido como acumulador , irá acumulando un valor representado por la edad, que puede estar en una columna o se puede ingresar por via teclado o puede ser extraida de un archivo. Suma_ed=suma_ed + edad , en esta línea el acumulador va sumando el valor edad EXIT DO: permite romper el ciclo, aún cuando la condición es verdadera Esta instrucción sirve para reemplazar la instrucción de nuestra macro que es la que analizaba si la celda era distinta de vacio. Apuntes preparado por : Rebeca Cartagena Jessen 28 Ciclo de IteraciónCiclo de Iteración Do while condición ----------------------------- ---------------------------- ------------------------------------ Exit DO --------------------------------- ---------------- Loop --------------------------------------- ------------------------ Las Instrucciones que están entre el Do while y el Loop ,se ejecutarán mientras se cumpla la condición. Cuando la condición contenido en el Do While es falsa, se comienzan a ejecutar las instrucciones siguientes al LOOP
  • 29. La instrucción era IF ACTIVECELL <> “” THEN , ahora lo podemos hacer con el While DO WHILE ACTIVECELL <> “” ----------------------- ---------------- -------------------- ------------------------------- LOOP Ejemplo de la última parte vista en nuestra macro Range("L4").Select Selection.Formula = "TURNO" Range("C5").Select verturno: (y la etiqueta del GOTO ya esta demás) If ActiveCell <> "" Then (La debemos reemplazar por DO WHILE ACTIVECELL <> “” ) turno = ActiveCell.Formula Select Case turno Case "A1" Selection.Offset(0, 9).Select Selection.Formula = "Fijo" Case "B1" Selection.Offset(0, 9).Select Selection.Formula = "Alternado" Case "C1" Selection.Offset(0, 9).Select Selection.Formula = "Tarde" End Select Selection.Offset(1, -9).Select GoTo verturno (Esta instrucción se elimina ) End If LOOP (Se agrega la instrucción LOOP, que significa volver al do while, para continuar) Ejemplo: Crear la siguiente planilla: Hacer una macro llamada RECORRER, la cual permita completar la columna Valor stock (valor stock= valor pelicula * stock) Apuntes preparado por : Rebeca Cartagena Jessen 29 Instrucciones en VB
  • 30. Solución Sub recorre() Range("a4").Select Do While ActiveCell <> "" Selection.Offset(0, 5).Select Selection.Formula = "=rc[-2]*rc[-1]" Selection.Offset(1, -5).Select Loop End Sub Ejemplo: Crear una macro llamada TOTALES, la cual calcule: - El número de películas tipo DVD que tiene la planilla. - Total de películas que hay en stock (dejar el resultado en algún lugar al final de la planilla). Solución: Sub totales() Contadvd = 0 stock = 0 Range("c4").Select Do While ActiveCell <> "" IF activecel l=”dvd” then Contadvd=contadvd + 1 Endif Selection.Offset(0, 2).Select stock = stock + ActiveCell Selection.Offset(1, -2).Select Loop Range(“c10”).select ActiveCell = "películas DVD" Selection.Offset(1, 0).Select ActiveCell = contadvd Selection.Offset(-1, 1).Select ActiveCell = "total peliculas" Selection.Offset(1, 0).Select ActiveCell = stock End Sub Ejemplo: Crear una macro llamada TOTAL_DVD que contabilice el total de DVDs que hay en stock. Solución: Sub total_dvd() dvd = 0 Range("c4").Select Do While ActiveCell <> "" If ActiveCell = "dvd" Then Selection.Offset(0, 1).Select dvd = dvd + ActiveCell Selection.Offset(1, -1).Select Else Apuntes preparado por : Rebeca Cartagena Jessen 30 Selection.Offset(1, 0).Select
  • 31. End If Loop Range(“F10”).select Selection.formula= "total stock dvd" Selection.Offset(1, 0).Select Selection.formula= dvd End Sub FOR : Repite un grupo de instrucciones un número especificado de veces. SINTAXIS For contador = principio To fin [Step incremento] [instrucciones] [Exit For] [instrucciones] Next [contador] La sintaxis de la instrucción For...Next consta de las siguientes partes: Parte Descripción contador Requerido. Variable numérica que se utiliza como contador de bucle. La variable no puede ser de tipo Boolean, ni ningún elemento de matriz. Principio Requerido. Valor inicial del contador. Fin Requerido. Valor final del contador. Incremento Opcional. Cantidad en la que cambia el contador cada vez que se ejecuta el bucle. Si no se especifica, el valor predeterminado de incremento es uno. Instrucciones Opcional. Una o más instrucciones entre For y Next que se ejecutan un número especificado de veces. La instrucción For, también es una instrucción de Ciclos con la diferencia que el ciclo se ejecuta la cantidad de veces indicada en el valor Fin Muestra un mensaje en un cuadro de diálogo y espera que el usuario escriba un texto o haga clic en un botón y el dato ingresado queda como un tipo String(texto). SINTAXIS InputBox("mensaje",["título "]) Mensaje: Es el texto que se desplegará en la caja de diálogo. Título : es el texto que se desplegará en el rótulo de la caja de diálogo. Apuntes preparado por : Rebeca Cartagena Jessen 31 Función INPUTBOX
  • 32. Microsoft Excel, también agregar automáticamente un botón Ayuda al cuadro de diálogo. Si el usuario hace clic en Aceptar o presiona ENTRAR, la función InputBox devuelve lo que haya en el cuadro de texto. Si el usuario hace clic en Cancelar, la función devuelve una cadena de caracteres de longitud cero (""). NOTA: Si desea especificar más que el primer argumento con nombre, debe utilizar InputBox en una expresión de la siguiente forma: variable = InputBox("mensaje",["título "]) El valor que tome la variable será de acuerdo al botón que el usuario eligió (con un clic) en la caja de diálogo, así: - Si hizo clic en el botón ACEPTAR en la variable se almacenará lo que el usuario digitó en la caja de dialogo. - Si hizo clic en el botón ACEPTAR la variable almacenará vacío ( "") EJEMPLO: Active la vista del código en Visual Basic y cree la siguiente macro: 1) Sub cajas() InputBox ("ingrese su nombre") End Sub Al ejecutar la macro (un clic en el botón ) Se despliega: Digite su nombre y haga un clic en cualquiera de los botones y volverá al código de la macro. 2) Implemente lo siguiente en la macro: Sub cajas() Entrada=InputBox ("ingrese su nombre", "caja de entrada") End Sub Al ejecutar la macro se desplegará: Digite su nombre y haga un clic en cualquiera de los botones y volverá al código de la macro. Apuntes preparado por : Rebeca Cartagena Jessen 32
  • 33. NOTA : Entrada es una variable y si Ud. hizo un clic en el botón ACEPTAR el nombre que digitó se almacena en dicha variable. Si Ud. eligió CANCELAR se almacena el valor "". 3) Implemente la macro con lo siguiente: Sub cajas() entrada = InputBox("ingrese su nombre", "caja de entrada") Range("A1").Select Selection.Formula = entrada End Sub Ejecute la macro y vaya a Excel con un clic en el botón ) Observará que En la celda A1 quedó almacenado el nombre que Ud. digitó. Muestra un mensaje en un cuadro de diálogo, espera a que el usuario haga clic en un botón y devuelve un tipo Integer correspondiente al botón elegido por el usuario. SINTAXIS MsgBox("texto a desplegar en la caja"[, boton][, titulo]) Botón : Es opcional. Es un número que representa el número y el tipo de los botones que se desea mostrar. Si se omite este argumento, el valor predeterminado para buttons es 0.. Los valores para este parámetro son: Valor Descripción 0 Muestra solamente el botón Aceptar. 1 Muestra los botones Aceptar y Cancelar. 2 Muestra los botones Anular, Reintentar e Ignorar. 3 Muestra los botones Sí, No y Cancelar. 4 Muestra los botones Sí y No. 5 Muestra los botones Reintentar y Cancelar. Titulo : Es opcional. Corresponde al texto que se muestra en la barra de título del cuadro de diálogo. OBSERVACION : Si desea especificar más que el primer argumento con nombre, debe utilizar MsgBox en una expresión. Si desea omitir algún argumento de posición, debe incluir el delimitador de coma correspondiente. variable = MsgBox ("texto", nº,"título de la caja") Apuntes preparado por : Rebeca Cartagena Jessen 33 Función MSGBOX
  • 34. EJEMPLO: 1) Implemente la macro anterior con lo siguiente: Sub cajas() entrada = InputBox("ingrese su nombre", "caja de entrada") Range("A1").Select Selection.Formula = entrada MsgBox ("ingresaste un nombre") End Sub Ejecute la macro y notará que al final se despliega la siguiente ventana: Haga un clic en ACEPTAR y volverá al código de la macro. 2) Implemente la instrucción de MsgBox con: salida = MsgBox("ingresaste un nombre", 1, "mensaje") Ejecute la macro y notará que al final se despliega la siguiente ventana: EJERCICIO RESUELTO En otra Hoja de Excel ingrese en la celda A2 la palabra NOMBRE. Crear una nueva macro que permita ingresar nombres a partir de la celda A3 hacia abajo, hasta que el usuario lo requiera. Sub ejemplo() Range("A3").Select continuar: nombre = InputBox("ingresa un nombre", "ventana de ingreso") Selection.Formula = nombre seguir = InputBox("desea ingresar otro nombre(si/no)?", "proceso") If seguir = "si" Then Selection.Offset(1, 0).Select GoTo continuar Else MsgBox ("terminamos") End If End Sub Apuntes preparado por : Rebeca Cartagena Jessen 34
  • 35. Búsqueda de datos en una planilla A continuación realizaremos una macro para determinar si una película existe o no en la planilla. Lo haremos de la siguiente forma: El usuario ingresará en un cuadro de dialogo el código de la película a buscar. Recorreremos la columna donde están los códigos de película. El resultado de la búsqueda será si existe o si no existe. Sub busca_pelicula() a = InputBox("ingrese código de película a buscar") Range("a4").Select sw = "no" Do While ActiveCell <> "" And sw = "no" If ActiveCell = a Then sw = "si" Else Selection.Offset(1, 0).Select End If Loop If sw = "no" Then MsgBox ("película no existe en lista") Else MsgBox ("película encontrada") End If End Sub Descripción del proceso: - En la variable a quedará almacenado el código de la película que el usuario quiere buscar. - Ubicaremos el cursor en la celda donde está el primer código de película existente (A4). - En una variable llamada sw se almacenará el texto “no” suponiendo que el código a buscar no está en la planilla. - El ciclo se ejecutará mientras no lleguen al final de la planilla y no se haya encontrado el código a buscar. - Si el código se encuentra sólo se cambiará la variable sw por el valor “si” (indicando que se encontró). Esto permitirá salir del ciclo sin haberla recorrido hasta el final (el cursor quedará ubicado en la celda donde se encontró el código). - Si el código buscado no coincide con el de la planilla se bajará una fila para comparar con el siguiente. - Si el código no está en la planilla el cursor quedará ubicado al final de ella, y la variable sw no habrá cambiado de estado (seguirá siendo “no”). - Al final del ciclo se preguntará por la variable sw. Si salió del ciclo con el valor “no” significará que el código no estaba en la planilla (se desplegará el mensaje “película no existe en la lista”). De lo contrario (si sw sale del ciclo con el valor “si”) significará que la película se encontró (se desplegará el mensaje “película encontrada”). Apuntes preparado por : Rebeca Cartagena Jessen 35
  • 36. Diseño de formularios La construcción de una aplicación gráfica implica la creación de formularios y de objetos contenidos en ellos. PASOS FUNDAMENTALES 1. Crear la interfaz gráfica o diseño del formulario 2. Establecer las propiedades de los controles y del formulario 3. Implementar el código necesario DISEÑO DEL FORMULARIO Los formularios son los elementos más importantes de cualquier aplicación pues ellos corresponden a las ventanas con las que interactúa el usuario cuando ejecuta la aplicación. Siempre que se comienza una aplicación, el primer paso será diseñar el formulario y establecer las propiedades de el. 1. Ir al ambiente de Visual Basic 2. Insertar el formulario (menú INSERTAR – opción USERFORM) 3. Maximizar la ventana 4. Dibujar los objetos que contendrá el formulario Apuntes preparado por : Rebeca Cartagena Jessen 36 Ventana de Proyecto En el Menú Ver se activa Ventana Propiedades Formulario
  • 37. OBJETOS O CONTROLES EN UN FORMULARIO Los controles se encuentran en el Cuadro de herramientas, cada vez que se ingresa un formulario Cuadro de texto (text box). Muestra información de un usuario o de un conjunto de datos organizados. Un control TextBox es el control utilizado más habitualmente para mostrar información escrita por un usuario. También puede mostrar un conjunto de datos como una tabla, una consulta, una hoja de cálculo o el resultado de un cálculo. Etiqueta (Label) : Muestra un texto descriptivo como un título, leyenda, comentarios, etc. Puntero : Permite seleccionar cualquier objeto que se encuentra inserto en un formulario DIBUJO DE OBJETOS EN UN FORMULARIO 1. Hacer un clic en el objeto o control 2. Colocar el puntero del mouse dentro del formulario (el puntero cambia a una cruz) y manteniendo presionado el botón izquierdo del mouse dibujar un rectángulo. Apuntes preparado por : Rebeca Cartagena Jessen 37 Marco (frame) : Permite agrupar un conjunto de controles que tienen alguna vinculación Cuadro de Lista (listbox) : Permita mostrar una lista de información que se encuentra en la planilla excel Botón de comando (commandButton)Inicia, finaliza o interrumpe una acción o una serie de acciones.
  • 38. EJERCICIO#1: Crear el siguiente formulario con dos controles Botón de comando dos cuadro de texto y dos etiquetas, como indica la figura siguiente: Etiqueta Caja de texto Botón de Comando OBSERVACIÓN: Para eliminar un control del formulario basta hacer un click sobre el y presionar la tecla SUPR. PROPIEDADES PARA LOS FORMULARIOS Y CONTROLES Una vez dibujados el formulario y los controles se deben establecer las propiedades de ellos. Este proceso se realiza en la ventana de propiedades. 1. Hacer un click en el objeto (formulario o control) 2. Active la ventana de propiedades si no la tiene a la vista (con tecla F4) PROPIEDADES MAS COMUNES PARA LOS OBJETOS Objeto Propiedad Significado Formulario (UserForm) Name BackColor Caption Es el nombre del objeto Color de fondo Es el rótulo que aparecerá para la ventana Etiqueta Name Backcolor Font Caption Es el nombre del objeto Color de fondo Tipo de letra del texto Es el rótulo que aparecerá en el botón Cuadro de texto Name text Es el nombre del objeto El texto que debe aparecer (por defecto vacío) Botón de comando Name BackColor Caption ForeColor Font Es el nombre del objeto Color del botón Es el rótulo que aparecerá en el botón Es el color de texto del botón Tipo de letra del texto Apuntes preparado por : Rebeca Cartagena Jessen 38
  • 39. EJERCICIO #2: Definir las siguientes propiedades al formulario y objetos creados anteriormente. Objeto Propiedad Significado Formulario (UserForm) Name BackColor Caption Formulario1 Color celeste Este es mi primer formulario Etiqueta1 Name Backcolor Font Caption Etiq1 Naranjo Comic Sans, tamaño 10 NOMBRE Etiqueta2 Name Backcolor Font Caption Etiq2 Naranjo Comic Sans, tamaño 10 APELLIDO Cuadro de texto1 Name text NOM Vacío Cuadro de texto2 Name text APE Vacío Cuadro de texto3 Name text MENSAJE Vacío Command Button1 Name BackColor Caption ForeColor Font Aceptar Color a elección SALUDOS Azul Comic Sans Command Button2 Name BackColor Caption ForeColor Font Accelerator Terminar Color a elección SALIR color rojo Comic Sans S El formulario deberá quedar con el siguiente aspecto Apuntes preparado por : Rebeca Cartagena Jessen 39 Para asignar alguna propiedad al objeto, este debe estar seleccionado previamente
  • 40. IMPLEMENTACION DEL CODIGO Para crear el código debe hacer doble clic sobre el objeto y se abrirá la ventana de código y aparecerá: Private Sub nombre del objeto_evento() End Sub OBSERVACIÓN: En la ventana de código (en la parte superior) aparecen dos recuadros, el primero contiene todos los objetos disponibles del formulario (incluyendo este) y el segundo contiene los eventos posibles a asociar al objeto (comúnmente es Click). Para volver al diseño del formulario basta con cerrar la ventana de código. GUARDAR LA APLICACIÓN 1. Menú ARCHIVO – opción GUARDAR LIBRO 2. En la ventana que se despliega en NOMBRE DE ARCHIVO digitar el nombre del proyecto (para nuestro ejemplo, guarde el proyecto con el nombre MI PRIMER FORMULARIO). RECUPERAR UN PROYECTO 1. Menú ARCHIVO (en Excel) – opción ABRIR. Ir al editor de Visual Basic. 2. Cuando se abre el proyecto : para ver el formulario selecciones VER OBJETO y para ver el código VER CODIGO. DIBUJO DE OBJETOS EN UN FORMULARIO 3. Hacer un clic en el objeto o control 4. Colocar el puntero del mouse dentro del formulario (el puntero cambia a una cruz) y manteniendo presionado el botón izquierdo del mouse dibujar un rectángulo. EJERCICIO#1: Crear el siguiente formulario con dos controles Botón de comando y un cuadro de texto, como indica la figura siguiente: Apuntes preparado por : Rebeca Cartagena Jessen 40 Objeto Eventos o procedimientos
  • 41. OBSERVACIÓN: Para eliminar un control del formulario basta hacer un clic sobre el y presionar la tecla SUPR. EJERCICIO #2: Definir las siguientes propiedades al formulario y objetos creados anteriormente. Objeto Propiedad Significado Formulario (UserForm) Name BackColor Caption Formulario1 Color celeste Este es mi primer formulario Cuadro de texto Name text saludo vacío Command Button1 Name BackColor Caption ForeColor Font Aceptar Color a elección Pulsar color rojo Comic Sans Command Button2 Name BackColor Caption ForeColor Font terminar Color a elección Salir color rojo Comic Sans El formulario deberá quedar con el siguiente aspecto Apuntes preparado por : Rebeca Cartagena Jessen 41
  • 42. IMPLEMENTACION DEL CODIGO Para crear el código debe hacer doble clic sobre el objeto y se abrirá la ventana de código y aparecerá: Private Sub nombre del objeto_evento() End Sub OBSERVACIÓN: En la ventana de código (en la parte superior) aparecen dos listas de opciones, la primera contiene todos los objetos disponibles del formulario (incluyendo este) y la segunda contiene los eventos posibles a asociar al objeto (comúnmente es Click). Para volver al diseño del formulario basta con cerrar la ventana de código. EJERCICIO #3: En el formulario creado haga doble clic en el botón PULSAR y digite el siguiente código: Private Sub Aceptar_Click() saludo.Text = "¡Buenos días para todos!” End Sub Ejecute la macro y para volver al diseño cierre la ventana del formulario. Al volver al formulario haga doble clic en el botón SALIR y digite el siguiente código: Private Sub terminar_Click() End End Sub GUARDAR LA APLICACIÓN 3. Menú ARCHIVO – opción GUARDAR LIBRO 4. En la ventana que se despliega en NOMBRE DE ARCHIVO digitar el nombre del proyecto (para nuestro ejemplo, guarde el proyecto con el nombre MI PRIMER FORMULARIO). RECUPERAR UN PROYECTO 3. Menú ARCHIVO (en Excel) – opción ABRIR. Ir al editor de Visual Basic. 4. Cuando se abre el proyecto : para ver el formulario selecciones VER OBJETO y para ver el código VER CODIGO. FORMULARIOS PARA MANIPULACIÓN DE PLANILLAS CREAR LA SIGUIENTE PLANILLA (en hoja1): Apuntes preparado por : Rebeca Cartagena Jessen 42
  • 43. CREAR LOS SIGUIENTES FORMULARIOS: Apuntes preparado por : Rebeca Cartagena Jessen 43 Formulario Name: Principal Caption: Formulario principal Botón Consulta Name:Consulemple Caption: Consulta empleado Botón Calcular Name: Calcula Caption: Calcular montos Botón Terminar: Name:Termina Caption: Terminar
  • 44. REQUERIMIENTOS PARA LA MACRO A DESARROLLAR 1. En el formulario principal el botón CONSULTA EMPLEADO deberá llevar al formulario CONSULTA EMPLEADO. ACTIVAR A TRAVES DE UN BOTÓN UN FORMULARIO DESDE OTRO 1. Abrir el formulario. 2. Dibujar un botón en el formulario (definir su name y caption) 3. hacer doble clic en el botón. 4. En el códigodigitar: Private sub nombre del botón() Unload me (descarga el actual formulario) Load nombre del formulario (activa el otro formulario) Nombre del formulario.show (muestra el formulario activo) En nuestro ejemplo, haga doble clic en el botón CONSULTA EMPLEADO, y digite el código siguiente: Private Sub consulemple_Click() Unload Me Load CONSULTA CONSULTA.Show End Sub 2. Programar el botón CALCULAR MONTOS, considerando se debe completar la columna TOTAL A PAGAR de la planilla en base a la siguiente formula: TOTAL A PAGAR =(Horas contratadas + Horas extras - horas ausencia)*valor hora Apuntes preparado por : Rebeca Cartagena Jessen 44 Cajas de textos Name: Rut,apellido, nombre, departamento, horas, extra, ausencia, valor, monto Botones Name: Buscar Caption: BUSCAR ahora Name: Eliminar Caption: ELIMINAR empleado Name: Agregar Caption: AGREGAR nuevo empleado
  • 45. Haga doble clic en el botón CALCULAR MONTO y digite el siguiente código: Private Sub calcula_Click() f = 5 Do While Cells(f, 1) <> "" Cells(f, 9) = (Cells(f, 5) + Cells(f, 6) - Cells(f, 7)) * Cells(f, 8) f = f + 1 Loop End Sub 3. Programar el botón TERMINAR para que detenga la ejecución de la macro. Haga doble clic en el botón TERMINAR y digite el siguiente código: Private Sub TERMINA_Click() End End Sub 4. En el formulario CONSULTA EMPLEADO, programar el botón BUSCAR AHORA. Este botón deberá permitir buscar el rut ingresado en el cuadro de texto RUT, si existe en la planilla desplegar sus datos, si no existe desplegar mensaje “empleado no encontrado”. Haga doble clic en el botón BUSCAR AHORA, y digite el siguiente código: Private Sub buscar_Click() fila = 5 sw = "no" Do While Cells(fila, 1) <> "" And sw = "no" If RUT.Text = Cells(fila, 1) Then APELLIDO.Text = Cells(fila, 2) NOMBRE.Text = Cells(fila, 2) APELLIDO.Text = Cells(fila, 3) DEPARTAMENTO.Text = Cells(fila, 4) HORAS.Text = Cells(fila, 5) EXTRA.Text = Cells(fila, 6) AUSENCIA.Text = Cells(fila, 7) VALOR.Text = Cells(fila, 8) MONTO.Text = Cells(fila, 9) sw = "si" Else fila = fila + 1 End If Loop If sw = "no" Then MsgBox ("empleado no encontrado") End If End Sub 5. En el formulario CONSULTA EMPLEADO programe el botón ELIMINAR EMPLEADO. Este botón deberá eliminar al empleado que tenga el rut ingresado en el cuadro de texto RUT. Haga doble clic en el botón ELIMINAR EMPLEADO y digite el siguiente código: Apuntes preparado por : Rebeca Cartagena Jessen 45 Private Sub eliminar_Click()
  • 46. fila = 5 Range("a5").Select sw = "no" Do While Cells(fila, 1) <> "" And sw = "no" If RUT.Text = Cells(fila, 1) Then Selection.EntireRow.Delete (elimina la fila donde esté el cursor) sw = "si" Else fila = fila + 1 Selection.Offset(1, 0).Select (baja una fila el cursor, dentro de la misma columna) End If Loop If sw = "no" Then MsgBox ("empleado no encontrado") End If End Sub 6. En el formulario CONSULTA EMPLEADO, programar el botón AGREGAR NUEVO EMPLEADO. Este botón deberá permitir llevar todos los datos del formulario a la planilla. Haga doble clic en el botón AGREGAR NUEVO EMPLEADO, y digite el siguiente código: Private Sub agregar_Click() fila = 5 sw = "no" Do While Cells(fila, 1) <> "" And sw = "no" If RUT.Text = Cells(fila, 1) Then sw = "si" Else fila = fila + 1 End If Loop If sw = "no" Then Cells(fila, 1) = RUT.Text Cells(fila, 2) = APELLIDO.Text Cells(fila, 2) = NOMBRE.Text Cells(fila, 3) = APELLIDO.Text Cells(fila, 4) = DEPARTAMENTO.Text Cells(fila, 5) = HORAS.Text Cells(fila, 6) = EXTRA.Text Cells(fila, 7) = AUSENCIA.Text Cells(fila, 8) = VALOR.Text Cells(fila, 9) = MONTO.Text Else MsgBox ("empleado ya existe") End If End Sub 7. En el formulario CONSULTA EMPLEADO, programe el botón VOLVER AL FORMULARIO PRINCIPAL. Este botón deberá permitir activar el formulario FORMULARIO PRINCIPAL. Haga doble clic en el botón VOLVER AL FORMULARIO PRINCIPAL, y digite el siguiente código: Apuntes preparado por : Rebeca Cartagena Jessen 46
  • 47. Private Sub volver_Click() Unload Me Load PRINCIPAL PRINCIPAL.Show End Sub SUGERENCIA: Vaya ejecutando la macro a medida que vaya construyendo los módulos. Muestra una lista de valores y le permite seleccionar uno o varios. Para crear un control ListBox haga un clic en el icono del cuadro de herramientas y dibuje un rectángulo en el formulario EJEMPLO: Crear la siguiente planilla: En el editor de Visual Basic crear el siguiente formulario: PROPIEDADES CONTROL PROPIEDAD VALOR ListBox1 Name RowSource ListaRut A2:A10 Label1 Caption Rut Label2 Caption Nombre Label3 Caption Edad TextBox1 Name nombre TextBox2 Name Edad CommandButton1 Terminar Terminar Apuntes preparado por : Rebeca Cartagena Jessen 47 Control ListBox (cuadro de Lista)
  • 48. - Haga doble clic en el control ListaRut y digite el siguiente código: Private Sub ListaRut_Click() fila = ListaRut.ListIndex + 2 nombre.Text = Cells(fila, 2) edad.Text = Cells(fila, 3) End Sub - Haga doble clic en el control Terminar y digite el siguiente código: Private Sub terminar_Click() End End Sub - Ejecute la macro. Permite mostrar una lista de datos, pero éstos son agregados por el usuario. Se trabajan dentro de un formulario Para que el cuadro llamado Combobox, entregue nombre de ciudades, se debe programar ese botón Haciendo doble clic sobre él y seleccionado luego el evento o procedimiento Enter Apuntes preparado por : Rebeca Cartagena Jessen 48 Cuadro Combinado(COMBOBOX) Cuadro Combinado o también llamado Combobox. En la propiedad name se le asigna Si se activa este botón, debe traer el nombre del gerente y el Nº de empleados de la sucursal seleccionada previamente en el combobox Nombre del combobox Evento o Procedimiento
  • 49. Se digita : Private Sub ciudad_Enter() With ciudad .Clear .AddItem "La Paz" .AddItem "Santa Cruz" .AddItem "Sucre" End With End Sub Ahora veremos como se pueden archivar los datos de una hoja en un archivo aparte. Los archivos secuenciales son aquellos que al registrar sus datos llevan una secuencia, por ejemplo si tengo 10 registros con los datos de 10 cliente, estos internamente se ordenan de uno en uno, es decir el primer registro es el 1, el sgte el 2 y así sucesivamente. Instrucciones para el manejo de archivo secuenciales Open "c:datos.xls" For Output As 1 - Abre un archivo en la unidad C llamado datos.xls, el archivo es de salida en un área de almacenamiento temporal Write #1, Num_identificación, nombre, dirección, fono; – Graba en el archivo datos.xls los campos Numero de identificación, nombre, dirección y fono (se supone que estos datos se encuentran en una planilla excel) Write #1, - Salta a la línea sgte. Close #1 – Cierra el archivo (una vez que se termino de recorrer todos los registros, se debe cerrar el archivo datos.xls) Apuntes preparado por : Rebeca Cartagena Jessen 49 Archivos Secuenciales
  • 50. Pensemos en el sgte. Ejemplo, se tiene la sgte. Hoja llamada Materiales con la sgte. información Con los datos de la hoja Materiales buscaremos todos aquellos registros que tienen CRITICIDAD B, en el caso de encontrarlos, se debe enviar a un archivo llamado registrar(ubicado en la Unidad D dentro de una carpeta llamado Resultados y solo se copiarán los campos Código y descripción. Le mostraré antes que nada que en la unidad D, se encuentra la carpeta RESULTADOS (se debe crear) Digite la sgte. macro Sub archivar() Sheets("Materiales").Activate f = 4 Range("a3").Select Open "d:resultadosregistrar.xls" For Output As #1 Do While ActiveCell <> Empty If Cells(f, 4) = "B" Then Write #1, Cells(f, 1), Cells(f, 2); Write #1, End If Apuntes preparado por : Rebeca Cartagena Jessen 50 f = f + 1
  • 51. Selection.Offset(1, 0).Select Loop Close #1 End sub Si ejecuto la macro, se crea automáticamente dentro de la carpeta RESULTADO, el archivo registrar Este archivo al abrirlo contiene los registros en excel, pero solo los campos seleccionados, Código y la descripción. Aparecen los campos juntos, pero se pueden dejar que cada campo quede en columnas separadas Seleccione las celdas A1:A6 Aplique el menú Datos – Tablas en columnas SHEETS o WORSHEETS – Permite activar una hoja de cálculo La sintaxis es Sheets(“nombre de la hoja”).activate 0 Sheets(“nombre de la hoja).select En el ejemplo anterior hemos visto un libro que contiene varias hojas y cada hoja tiene su propio nombre. Si estando por ejemplo en la hoja Materiales y necesitamos buscar información o rescatar datos de cualquier otra hoja distinta de la que nos encontramos, se debe activar la hoja con el sheets. Ejemplo, estando en la hoja Materiales, necesito que se vaya a la hoja Pedidos y que seleccione la celda A5 Sheets(“Pedidos”).activate Range(“a5”).select Apuntes preparado por : Rebeca Cartagena Jessen 51