Вы находитесь на странице: 1из 251

Contenido

ANLISIS DE DATOS I.............................................................................................................. 1 FORMATO COMO TABLA .............................................................................................................. 2 Lista de datos ...................................................................................................................... 2 Estructura de una lista de datos.......................................................................................... 2 Uso de las tablas de datos .................................................................................................. 2 Ordenar datos ..................................................................................................................... 8 FILTRO DE DATOS..................................................................................................................... 14 Filtro personalizado ........................................................................................................... 16 Filtro mltiple ..................................................................................................................... 17 Quitar un Filtro................................................................................................................... 18 Utilizar estilos rpidos y crear estilos de formato de tabla ................................................ 18 HERRAMIENTAS DE DATOS ........................................................................................................ 25 Texto en columnas ............................................................................................................ 25 Quitar duplicados .............................................................................................................. 30 VALIDACIN DE DATOS ............................................................................................................. 32 Restringir el ingreso de datos ........................................................................................... 32 Validar con intervalo de nmeros...................................................................................... 32 ANLISIS Y SI ........................................................................................................................... 37 Uso del administrador de escenarios ................................................................................ 38 Buscar Objetivo ................................................................................................................. 44 Tabla de datos................................................................................................................... 45 Tabla de datos de una variable ......................................................................................... 45 Tablas de datos de dos variables ..................................................................................... 48 CONSOLIDACIN DE DATOS Y REFERENCIA 3D .......................................................................... 49 Cuando consolidar datos de varias hojas ......................................................................... 49 Consolide por frmula ....................................................................................................... 50 REFERENCIAS 3D .................................................................................................................... 55 CUESTIONARIOS ...................................................................................................................... 58 FUNCIONES FINANCIERAS .................................................................................................... 59 GENERALIDADES SOBRE EXCEL EN EL MUNDO DE LOS NEGOCIOS ............................................... 60 USO DE FUNCIONES FINANCIERAS ............................................................................................. 60 Consideraciones del ndice de inflacin ............................................................................ 60 Tasa nominal ..................................................................................................................... 62 Tasa efectiva (i ) ................................................................................................................ 63 Prstamo de un banco: Funcin PAGO ........................................................................... 64 Valor presente de la inversin/pagos futuros: Funcin VA ............................................... 68 Valor futuro de la inversin: Funcin VF ........................................................................... 70 Nmero de pagos de inversin: Nper ............................................................................... 73 Funcin TASA ................................................................................................................... 75 Tasa interna de retorno (TIR)............................................................................................ 76 DESARROLLO DE PROYECTOS CON FUNCIONES FINANCIERAS ..................................................... 78 Comprar frente a un leasing.............................................................................................. 78 Calcular la tasa interna de devolucin para un flujo de liquidez no peridico .................. 82 Calcular la tasa interna de devoluciones mltiples ........................................................... 83 CUESTIONARIOS ...................................................................................................................... 84 ANLISIS DE DATOS II........................................................................................................... 85 HERRAMIENTAS DE ANLISIS ESTADSTICO................................................................................ 87 Tendencia lineal de ajuste perfecto automticamente...................................................... 87 Tendencia geomtrica de forma automtica..................................................................... 88 Tendencia lineal o geomtrica de forma manual .............................................................. 89 Agregar una lnea de tendencia a un grfico .................................................................... 90 Proyectar valores .............................................................................................................. 93

Uso de cuadros de Histogramas para el clculo de frecuencias individuales y acumulativas ..................................................................................................................... 96 DEFINICIN Y RESOLUCIN DE PROBLEMAS CON SOLVER ......................................................... 101 Generalidades sobre Solver............................................................................................ 101 Carga del programa de complemento Solver ................................................................. 101 Cmo configura Solver .................................................................................................... 104 Modificacin de forma de bsqueda de soluciones en Solver ........................................ 105 Desarrollo de casos tipo utilizando Solver ...................................................................... 106 CUESTIONARIOS .................................................................................................................... 108 FORMULARIOS ...................................................................................................................... 109 ACTIVACIN DE LA FICHA PROGRAMADOR ................................................................................ 110 DISEO DE FORMULARIOS ...................................................................................................... 111 Mostrar y ocultar elementos ............................................................................................ 111 Trabajando con Controles ............................................................................................... 112 Uso de los controles de formulario.................................................................................. 113 CUESTIONARIOS .................................................................................................................... 129 MACROS ................................................................................................................................. 130 MACROS................................................................................................................................ 131 Definicin......................................................................................................................... 131 Editor de Visual Basic ..................................................................................................... 131 Para que se utilizan las Macros ...................................................................................... 132 Macros VBA con Excel .................................................................................................... 133 Ventajas........................................................................................................................... 133 SEGURIDAD DE MACROS ........................................................................................................ 134 Los Macrovirus ................................................................................................................ 134 Ayudar a proteger archivos de virus en macros ............................................................. 135 Firmas digitales ............................................................................................................... 136 Lista de editores de confianza ........................................................................................ 137 Advertencias acerca de plantillas y complementos instalados ....................................... 137 GRABAR UNA NUEVA MACRO .................................................................................................. 138 EDITAR UNA MACRO UTILIZANDO VISUAL BASIC ....................................................................... 140 ELIMINAR MACROS ................................................................................................................. 141 REFERENCIAS RELATIVAS....................................................................................................... 141 Diferencia entre celda relativa y absoluta ....................................................................... 142 USO DE MACROS EN FORMULARIOS ........................................................................................ 142 PLANTILLAS CON FORMULARIOS Y MACROS ............................................................................. 148 Crear Plantillas personalizadas ....................................................................................... 150 Utilizar Plantillas personalizadas..................................................................................... 151 DESARROLLO DE PROYECTOS CON MACRO Y FORMULARIOS..................................................... 151 CUESTIONARIOS .................................................................................................................... 158 PROGRAMACIN CON VBA ................................................................................................. 159 INTRODUCCIN AL VISUAL BASIC ............................................................................................ 160 FUNDAMENTOS DE PROGRAMACIN VBA ................................................................................ 162 Estructura Secuencial. .................................................................................................... 162 Estructura Condicional. ................................................................................................... 163 Sentencia seleccin-caso................................................................................................ 165 Estructura Repetitiva. ...................................................................................................... 167 LA VENTANA DEL EDITOR DE VISUAL BASIC .............................................................................. 170 Terminologa de Visual Basic.......................................................................................... 171 Programacin por eventos .............................................................................................. 172 Convenciones para los nombres de los objetos ............................................................. 172 Formularios ..................................................................................................................... 173 Editando Cdigo .............................................................................................................. 174 CREACIN Y USO DE PROCEDIMIENTOS ................................................................................... 175 Procedimientos................................................................................................................ 175 Procedimientos de Evento .............................................................................................. 175

Procedimientos Generales .............................................................................................. 176 Procedimientos Sub ........................................................................................................ 176 Procedimientos Function ................................................................................................. 177 mbito de las variables. .................................................................................................. 177 Formas de declaracin de variables en un proyecto VB. ............................................... 178 Sentencia Dim ................................................................................................................. 178 Sentencia PRIVATE ........................................................................................................ 178 Sentencia PUBLIC .......................................................................................................... 178 Sentencia GLOBAL ......................................................................................................... 178 Sentencia STATIC........................................................................................................... 178 Resumen de declaracin de variables ............................................................................ 179 Forma de conocer el tipo de una variable. Funcin TypeName ..................................... 179 OBJETOS PROPIEDADES, MTODOS Y EVENTOS ....................................................................... 180 Control Etiqueta (Label) .................................................................................................. 180 Control Cuadro de Texto (Textbox)................................................................................. 181 Control Botn de Comando (Commandbutton) .............................................................. 181 Estableciendo Propiedades ............................................................................................ 182 DEFINICIN DE VARIABLES, TIPOS DE DATOS Y CONSTANTES .................................................... 183 Option Explicit .................................................................................................................. 183 Tipos de Variables........................................................................................................... 183 Declaracin de variables ................................................................................................. 184 Tipos de variables ........................................................................................................... 184 a. Variables Alfanumricas.............................................................................................. 185 b. Variable Numricas ..................................................................................................... 185 c. Variable Date ............................................................................................................... 186 d. Variable Boolean ......................................................................................................... 186 Constantes ...................................................................................................................... 186 Operadores ..................................................................................................................... 187 CONSTRUCCIONES: IF THEN, SELECT CASE ......................................................................... 188 Condicional simple. If .. then ........................................................................................... 188 Condicional doble If...Then...Else ................................................................................... 189 Condicional mltiple Select Case.................................................................................... 190 BUCLES FOR NEXT, W HILE .. DO ........................................................................................ 192 Do...Loop ......................................................................................................................... 193 For...Next......................................................................................................................... 194 For Each...Next ............................................................................................................... 194 TRABAJAR CON RANGOS DE CELDA ......................................................................................... 196 Utilizando la notacin A1 ................................................................................................. 196 Hacer referencia a celdas utilizando nmeros de ndice ................................................ 196 Hacer referencia a filas y columnas ................................................................................ 197 Hacer referencia a celdas utilizando una notacin abreviada ........................................ 198 Hacer referencia a rangos con nombre........................................................................... 198 Hacer referencia a un rango con nombre ....................................................................... 198 Ejecutar un bucle en las celdas de un rango con nombre .............................................. 199 Hacer referencia a celdas en relacin con otras celdas ................................................. 200 Hacer referencia a celdas usando un objeto Range ....................................................... 200 Hacer referencia a todas las celdas de la hoja de clculo .............................................. 201 Hacer referencia a varios rangos .................................................................................... 201 Usar la propiedad Range ................................................................................................ 201 Usar el mtodo Union...................................................................................................... 201 Usar la propiedad Areas.................................................................................................. 202 Bucles en un rango de celdas ......................................................................................... 202 Seleccionar y activar celdas............................................................................................ 203 Usar el mtodo Select y la propiedad Selection ............................................................. 204 Seleccionar celdas en la hoja de clculo activa .............................................................. 204 Activar una celda en una seleccin................................................................................. 205 Trabajar con rangos 3D................................................................................................... 205 Trabajar con la celda activa ............................................................................................ 206 Mover la celda activa....................................................................................................... 206

Seleccionar las celdas que rodean la celda activa ......................................................... 207 TRABAJO CON LIBROS Y HOJAS ............................................................................................... 207 Hacer referencia a hojas por nmero de ndice .............................................................. 207 Hacer referencia a hojas por su nombre ......................................................................... 207 AADIR MDULOS VBA .......................................................................................................... 208 TRABAJAR CON USERFORMS .................................................................................................. 208 USO DE CONTROLES DE FORMULARIO...................................................................................... 209 Control Marco (Frame) .................................................................................................... 209 Control Casilla de Verificacin (CheckBox) .................................................................... 209 Control Botn de Opcin (OptionButton) ........................................................................ 210 Control Cuadro de Lista (ListBox) ................................................................................... 211 Control Cuadro Combinado (ComboBox) ....................................................................... 212 FUNCIONES VBA INPUTBOX, MSGBOX ................................................................................... 215 Funcin MsgBox() ........................................................................................................... 215 Funcin InpuBox() ........................................................................................................... 215 METODO GETOPENFILENAME , GETSAVEASFILENAME ............................................................ 215 Funcin GetOpenfilename () ........................................................................................... 215 Funcin GetSaveAsFileName ......................................................................................... 217 CREAR Y ABRIR LIBRO ............................................................................................................ 217 Crear un libro nuevo ........................................................................................................ 217 CUESTIONARIOS .................................................................................................................... 218 EJERCICIOS UTILIZANDO MACRO, FORMULARIO Y VBA ............................................................ 219 FUNCIONES PERSONALIZADAS ......................................................................................... 230 USO DE MDULOS PARA FUNCIONES ....................................................................................... 231 Ventajas........................................................................................................................... 231 Caractersticas ................................................................................................................ 231 USO DE ARGUMENTOS EN LAS FUNCIONES ............................................................................... 232 EJECUTAR UNA FUNCIN ........................................................................................................ 233 Recursividad.................................................................................................................... 234 CONTROLES ACTIVE X ........................................................................................................... 235 CUESTIONARIOS .................................................................................................................... 246

Captulo

Anlisis de Datos I
En este captulo trataremos:

Herramientas de datos Consolidacin y referencias 3D

Qu se necesita para ser el mejor? Concentracin. Disciplina. Una ilusin. F. Griffith


Medalla de oro olmpica

SENATI-Computacin e Informtica

Microsoft Office Excel 2007

Formato como tabla


Excel es primariamente una hoja de clculo, pero adems de ello tiene capacidad para analizar tablas de datos, tales como stock, clientes, planillas, monitorear cuentas y ventas. La combinacin de una serie de funciones hace al Excel una excelente herramienta de anlisis para negocios y administracin de sistemas. Excel usa el trmino Lista para referirse a informacin almacenada en filas y columnas, si usted est familiarizado con versiones anteriores de Excel, entonces es probable que este ms familiarizado con el trmino Base de Datos.

Lista de datos
Una lista de datos es un conjunto de registro formado por filas y columnas. Las filas representan los registros de datos Las columnas representan los campos de datos

Estructura de una lista de datos


Campo1 Campo2 Campo3 Campo4 Campo5

Registros

Uso de las tablas de datos


Una vez que se han ingresado los nombres de los campos y la fila de datos inciales a su lista, podemos usar cualquiera de los siguientes mtodos para ingresar datos: Uso de ingreso automtico de datos usando la ficha de datos Ingresar los datos directamente en la hoja dentro de las celdas vacas

SENATI-Computacin e Informtica

Paso a Paso: Agregar el comando formulario a la barra de herramientas de acceso rpido

1. Hacer clic en el botn 2. Hacer clic en el botn Opciones Excel.

Botn Office , se presenta el cuadro de dilogo

Hacer clic en la opcin Personalizar

3. Se presenta el cuadro de dilogo Personalizar la barra de herramientas de acceso rpido.


SENATI-Computacin e Informtica 3

Microsoft Office Excel 2007

Seleccionar Todos los comandos

Seleccionar Formulario

4. Hacer clic en el botn Aceptar para terminar Paso a Paso: Agregar datos 1. Abrir el archivo 1 BD Pedidos 2. Adicionaremos registros a la base de datos de pedidos, la cual mostramos a continuacin.

SENATI-Computacin e Informtica

s de I

3. Seleccionar al celda A2 4. Hacer clic en el botn Formulario

5. Se presenta la ficha formulario mostrando los registros de la base de datos 1 BD Pedidos

6. Para adicionar registros hacer clic en el botn 7. Se presenta un formulario en blanco, ingrese el siguiente registro

SENATI-Computacin e Informtica

Microsoft Office Excel 2007

8. Hacer clic en el botn

para terminar

Paso a Paso: Eliminar datos 1. Abrir el archivo 1 BD Pedidos 2. Eliminaremos el registro de pedido realizado por el cliente SoftPlus 3. Seleccionar al celda A2 4. Hacer clic en el botn Formulario

5. Se presenta la ficha formulario mostrando los registros de la base de datos 1 BD Pedidos

SENATI-Computacin e Informtica

s de datos II

6. Primero localizaremos el registro, para ello hacer clic en el botn

Ingrese SoftPlus, nombre del cliente a localizar

Hacer clic en el botn Buscar siguiente

7. Se mostrar el registro de pedido de la empresa SoftPlus

8. Hacer clic en el botn permanentemente este registro.

, Excel preguntar si desea eliminar

SENATI-Computacin e Informtica

Microsoft Office Excel 2007

9. Hacer clic en el botn 10. Hacer clic en el botn para terminar

Ordenar datos
La ordenacin de los registros nos permite ver y comprender mejor los datos, as como a organizarlos y encontrarlos ms fcilmente y a tomar decisiones ms eficaces. Se puede ordenar los registros por: Texto, nmeros, fechas u horas, color de celda, color de fuente o icono, por una lista personalizada, filas, por ms de una columna o fila, ordenar una columna en un rango de celdas sin afectar a las dems.

Paso a Paso: Ordenar por un campo texto 1. Abrir el archivo 1 BD Pedidos

2. Ordenaremos por el campo de datos Cliente alfabticamente en orden ascendente 3. Hacer clic en la celda A2 4. Hacer Clic en la ficha
Hacer clic en el botn Ordenar de A a Z

, desplace su visin al grupo Ordenar y filtrar

5. Se mostrarn sus registros ordenados por el campo cliente

SENATI-Computacin e Informtica

s de datos II

Paso a Paso: Ordenar por un campo texto distinguiendo las maysculas de las minsculas 1. Abrir el archivo 1 BD Pedidos

2. Ordenaremos por el campo de datos NombreProducto alfabticamente en orden ascendente 3. Hacer clic en la celda A2 4. Hacer clic en la ficha , desplace su visin al grupo Ordenar y filtrar

Hacer clic en el botn Ordenar

5. Se muestra el siguiente cuadro de dilogo

6. Hacer clic en el botn

7. Del cuadro de dilogo presentado activar la casilla de verificacin Distinguir maysculas de minscula

SENATI-Computacin e Informtica

Microsoft Office Excel 2007

8. Hacer clic en el botn dilogo ordenar

para continuar. Se mostrar el cuadro de

Seleccionar columna NombreProducto

9. Hacer clic en el botn para terminar. Se mostrarn los registros ordenados por el campo NombreProducto, distinguiendo las maysculas de las minsculas.

Paso a Paso: Ordenar por un campo numrico 1. Abrir el archivo 1 BD Pedidos

2. Ordenaremos por el campo de datos Cantidad en orden descendente 3. Hacer clic en la celda A2 4. Hacer clic en la ficha
10

, desplace su visin al grupo Ordenar y filtrar


SENATI-Computacin e Informtica

s de datos II

Hacer clic en el botn Ordenar

5. Se presenta el siguiente cuadro de dilogo

Hacer clic para seleccionar la columna Cantidad

Seleccionar como criterio de ordenacin De mayor a menor

6. Hacer clic en el botn para terminar, se mostrarn los registros ordenados por el campo cantidad

Paso a Paso: Ordenar por fecha u hora 1. Abrir el archivo 1 BD Pedidos

SENATI-Computacin e Informtica

11

Microsoft Office Excel 2007

2. Ordenaremos por el campo de datos Fecha Pedido en orden descendente 3. Hacer clic en la celda A2 4. Hacer clic en la ficha , desplace su visin al grupo Ordenar y filtrar
Hacer clic en el botn Ordenar

5. Se presenta el siguiente cuadro de dilogo

Seleccionar la columna FechaPedido

Seleccione su criterio de ordenacin

6. Para terminar hacer clic en el botn ordenados por fecha de pedido

se muestran los registros

Ordenar por color de celda, color de fuente o icono Si ha aplicado formato manual o condicionalmente a un rango de celdas o a una columna de tabla, por color de celda o color de fuente, tambin puede ordenar por estos colores. Adems, puede ordenar por un conjunto de iconos creado mediante un formato condicional.
12 SENATI-Computacin e Informtica

s de datos II

Paso a Paso: Ordenar por ms de una columna 1. Abrir el archivo 1 BD Pedidos

2. Ordenaremos por el campo: cliente, fechapedido, nombreproducto en orden descendente 3. Hacer clic en la celda A2 4. Hacer clic en la ficha , desplace su visin al grupo Ordenar y filtrar
Hacer clic en el botn Ordenar

5. Se presenta el siguiente cuadro de dilogo


Seleccionar columna Cliente como primer criterio de ordenacin

Seleccionar columna NombreProducto como tercer criterio de ordenacin

Seleccionar columna FechaPedido como segundo criterio de ordenacin

6. Hacer clic en el botn para terminar. Se muestran los registros ordenados por cliente, fechapedido, nombreproducto en orden descendente.

SENATI-Computacin e Informtica

13

Microsoft Office Excel 2007

Filtro de datos
El filtrado de datos constituye un mtodo fcil y rpido para encontrar subconjuntos de datos en una lista y trabajar con ellos. Cuando se filtra una lista slo visualizar las filas que cumplen un conjunto de condiciones de bsqueda llamado criterios. A diferencia de la ordenacin, la filtracin no reorganiza las listas. La filtracin oculta provisionalmente las filas que no desea mostrar. Cuando Excel filtra las filas, la hoja de clculo se coloca en el modo de filtracin. En este modo se podr editar, dar formato, efectuar representaciones grficas e imprimir la lista de subconjuntos sin tener que reorganizarla o moverla. Paso a Paso: Aplicar Autofiltros 1. Abrir el archivo FILTROS 2. Utilice la siguiente lista de datos para filtrar registros por seccin.

3. Ubicarse en la celda A5. 4. Hacer clic en la ficha ,botn

5. Ahora simplemente con hacer clic en la lista desplegable podr filtrar los registros de datos segn sus requerimientos.
14 SENATI-Computacin e Informtica

s de datos II

6. Hacer clic en el autofiltro grado y desactive las casillas del 2do. Al 6to. Grado, de tal forma que slo se muestre alumnos del 1er. Grado.

Desactive las casillas del 2do. Al 6to. grado

7. Los registros filtrados se muestran como en la grfica.

SENATI-Computacin e Informtica

15

Microsoft Office Excel 2007

Filtro personalizado
Se utiliza para especificar condiciones utilizando operadores booleanos. Paso a Paso: Filtros personalizados 1. Abrir el archivo FILTROS o disear la hoja de clculo Utilice la siguiente lista de datos para filtrar registros donde el monto de la pensin est entre: 200 y 350.

a. Ubicarse en la celda A5. b. Hacer clic en la ficha , botn , ,

c. De la lista de opciones presentadas elegir La opcin: Mayor o igual a Se presenta el siguiente cuadro de dilogo 2. Ingrese los valores segn se muestra en la grfica, para que slo se muestre los alumnos que pagan una pensin que est entre 200 y 350 nuevos soles.

3. Hacer clic en el botn


16

para aplicar el filtro.


SENATI-Computacin e Informtica

s de datos II

Pensiones de alumnos con valor entre 200 y 350.

Filtro mltiple
Se utiliza para especificar mltiples condiciones Paso a Paso: Filtros mltiple 1. Abrir el archivo FILTROS Utilice la siguiente lista de datos para filtrar registros donde: Procedencia: CIV Nivel: P Grado: 1

2. Ubicarse en la celda A5. 3. Hacer clic en la ficha Procedencia: CIV Nivel: P Grado: 1 , botn

4. De la lista de opciones presentadas elegir

SENATI-Computacin e Informtica

17

Microsoft Office Excel 2007 Hacer clic y dejar slo activado la casilla de verificacin 1 Hacer clic y dejar slo activado la casilla de verificacin P Hacer clic y dejar slo activado la casilla de verificacin CIV

Quitar un Filtro
Para mostrar en su tabla todos los registros, debe quitar los filtros aplicados.

Paso a Paso: Quitar filtros

Hacer clic en la ficha

, botn

Utilizar estilos rpidos y crear estilos de formato de tabla


Microsoft Office Excel proporciona un gran nmero de estilos de tabla (o estilos rpidos) predefinidos que puede utilizar para dar formato rpidamente a una tabla. Si los estilos de la tabla predefinida no satisfacen sus necesidades, puede crear y aplicar un estilo de tabla personalizado. Aunque slo se pueden eliminar los estilos de tabla personalizados, puede quitar cualquier estilo de tabla para que ya no se aplique a los datos.

Paso a Paso: Utilizar estilos rpidos de tabla 1. Abrir el archivo 1BD pedidos. Se muestra la siguiente hoja de clculo
18 SENATI-Computacin e Informtica

s de datos II

2. Hacer clic en la celda A2 3. Hacer clic en la ficha 4. Del grupo Estilos seleccionar el comando Dar formato como tabla

5. Se presenta un conjunto de estilos prediseados, categorizados en: Claro, medio, oscuro.

Seleccionar uno de los estilos mostrados

6. Luego de elegir un estilo se presenta un cuadro de dilogo


SENATI-Computacin e Informtica 19

Microsoft Office Excel 2007

7. Verifique que el rango seleccionado es el correcto, verificacin La tabla tiene encabezados. 8. Finalmente hacer clic en el botn

active la casilla de

se muestra la tabla con formato

Paso a Paso: Crear estilos de formato de tabla 1. Abrir el archivo 1BD pedidos. Se muestra la siguiente hoja de clculo

2. Hacer clic en la celda A2 3. Hacer clic en la ficha 4. Del grupo Estilos seleccionar el comando Dar formato como tabla

20

SENATI-Computacin e Informtica

s de datos II

5. Se presenta un conjunto de estilos prediseados, categorizados en: Claro, medio, oscuro y al final se presentan dos botones de comando que mostramos a continuacin.

Hacer clic en el botn Nuevo estilo de tabla

6. Se muestra el cuadro de dilogo Nuevo estilo rpido de tabla


Escriba la palabra Pedidos como nombre de estilo

Aplique los formatos a cada uno de los elementos de la tabla

Hacer clic en el botn Formato

7. Se presenta el cuadro de dilogo formato de celda


SENATI-Computacin e Informtica 21

Microsoft Office Excel 2007

Hacer clic en la ficha Bordes

Elegir donde aplicar los bordes

Elegir el estilo de lnea Elegir color

Hacer clic para cambiar a la ficha Relleno

Elegir color de fondo

Elegir efecto de relleno

8. Para terminar hacer clic en el botn


22 SENATI-Computacin e Informtica

s de datos II

Paso a Paso: Modificar estilo rpido de la tabla de datos 1. Abrir el archivo 1BD pedidos. Se muestra la siguiente hoja de clculo

2. Hacer clic en la celda A2 3. Hacer clic en la ficha 4. Del grupo Estilos seleccionar el comando Dar formato como tabla

5. Del grupo de opciones Personalizada hacer clic derecho sobre la que desea modificar

Hacer clic derecho

6. Del grupo de opciones presentadas elegir Modificar

Hacer clic sobre la opcin Modificar

7. Realizar los cambios necesarios


SENATI-Computacin e Informtica 23

Microsoft Office Excel 2007

Elegir Primera franja de fila

Hacer clic sobre la opcin Formato

8. Del cuadro de dilogo Formato de celdas, elegir la ficha Relleno

Seleccionar color de fondo

24

SENATI-Computacin e Informtica

s de datos II

, 9. Hacer clic en el botn para terminar y veamos cmo queda la tabla. Se muestra con colores intercalados entre fila y fila

10. Repita el procedimiento para modificar cada uno de los elementos de la tabla

Seleccione una de estas opciones, luego hacer clic en el botn para modificar cada uno de los elementos de la tabla

Herramientas de datos
Excel presenta un conjunto de herramientas de datos entre las cuales tenemos: Texto en columnas, validacin de datos, anlisis Y si. Las cuales describiremos a continuacin.

Texto en columnas
Si copia datos de otro programa y lo pegarlo en Microsoft Excel, Excel puede comprimir varias columnas de datos a una sola columna. Puede utilizar el comando de texto en columnas para colocar cada una de las columnas de datos en una celda (Columna independiente) Dividir el contenido en funcin de un delimitador Utilice este mtodo si los nombres tienen un formato delimitado, como "Nombre Apellido" (donde el espacio entre Nombre y Apellido es el delimitador) o "Apellido, Nombre" (donde la coma es el delimitador).

Paso a Paso: Convertir texto en columnas separado por comas 1. Abrir el archivo Texto en columnas. Se muestra la siguiente hoja de clculo
SENATI-Computacin e Informtica 25

Microsoft Office Excel 2007

2. Seleccione el bloque de celdas A1:A4. Hacer clic en la ficha visualizar el grupo herramienta de datos.
Hacer clic sobre la herramienta Texto en columnas

3. Se presenta el asistente para convertir texto en columnas

Debido a que el texto se separa con comas, elegir la opcin Delimitados

4. Hacer clic en el botn 5. En el siguiente cuadro de dilogo se preguntar que separador utilizar entre los siguientes: Tabulacin, punto y coma, coma, espacio, otro. Elegir la opcin coma

26

SENATI-Computacin e Informtica

s de datos II

Elegir coma como separador

6. Hacer clic en el botn

Elegir Texto

Celda a partir de donde se colocaran los datos

7. Hacer clic en el botn muestra a continuacin

para terminar, su hoja queda como se

SENATI-Computacin e Informtica

27

Microsoft Office Excel 2007 El texto de dividi en dos columnas, una para el nombre y la otra para el apellido. Se utilizo como delimitador de divisin la coma.

8. Grabar el archivo con el nombre Texto en columnas dividido 1

Paso a Paso: Convertir texto en columnas separado por espacios 1. Abrir el archivo Texto en columnas. Se muestra la siguiente hoja de clculo

2. Seleccione el bloque de celdas A1:A4. Hacer clic en la ficha visualizar el grupo herramienta de datos.
Hacer clic sobre la herramienta Texto en columnas

3. Se presenta el asistente para convertir texto en columnas

Debido a que el texto se separa con comas, elegir la opcin Delimitados

28

SENATI-Computacin e Informtica

s de datos II

4. Hacer clic en el botn 5. En el siguiente cuadro de dilogo se preguntar que separador utilizar entre los siguientes: Tabulacin, punto y coma, coma, espacio, otro. Elegir la opcin Espacio

Elegir Espacio como separador

6. Hacer clic en el botn

Elegir Texto

Celda a partir de donde se colocaran los datos

SENATI-Computacin e Informtica

29

Microsoft Office Excel 2007

7. Hacer clic en el botn muestra a continuacin

para terminar, su hoja queda como se


El texto de dividi en seis columnas

8. Grabar el archivo con el nombre Texto en columnas dividido 2

Quitar duplicados
Es posible eliminar valores duplicados de una lista utilizando la herramienta quitar duplicados.

Paso a Paso: Quitar duplicados 1. Abrir el archivo 1 Quitar duplicados. Se muestra la siguiente hoja de clculo

2. Ordenar la lista por el campo que desea eliminar los datos duplicados 3. Hacer clic en la ficha

Hacer clic en el botn Ordenar 30 SENATI-Computacin e Informtica

s de datos II

4. Se presenta el cuadro de dilogo ordenar

Hacer clic para seleccionar Nombre como columna a ordenar

Hacer clic para activar la casilla indicando que si contamos con encabezados

5. Hacer clic en el botn Aceptar para terminar con la ordenacin 6. Hacer clic en la ficha

Hacer clic en el botn Quitar duplicados

7. Se presenta el cuadro de dilogo Quitar duplicados

Hacer clic para activar la casilla Mis datos tienen encabezados Hacer clic para indicar que se eliminan duplicados de la columna Nombre

8. Hacer clic en el botn para terminar. Excel enva un mensaje que indica que se eliminaron 4 valores duplicados

SENATI-Computacin e Informtica

31

Microsoft Office Excel 2007

9. Su tabla queda como se muestra a continuacin.

Validacin de datos
Si desea asegurarse de que se introducen los datos correctos en una hoja de clculo, puede especificar qu datos son vlidos para cada celda o cada rango de celdas. Puede restringir los datos a un tipo determinado (como nmeros enteros, nmeros decimales o texto) y definir lmites en las entradas vlidas. Puede especificar una lista de entradas vlidas o limitar el nmero de caracteres en las entradas.

Restringir el ingreso de datos


Cuando quiera validar una celda o un conjunto de celdas tendr que establecer un criterio para la validacin de datos, especificar un mensaje de entrada de datos con este podr indicar que tipo de datos se podr ingresar y un mensaje de error, para indicar al usuario que cometi un error de ingreso de datos.

Validar con intervalo de nmeros


Se puede restringir el ingreso de datos a las celdas, de tal forma que solamente acepte como datos un intervalo numrico.

Paso a Paso: Validar intervalo numrico 1. Abrir el archivo 1 Validar datos

32

SENATI-Computacin e Informtica

s de datos II

2. Seleccionar las celdas C4:C13 para agregarle una restriccin, que acepte slo como datos los nmeros: 1 hasta 120.

3. Elegir la ficha

Hacer clic en la ficha Configuracin Elegir Nmeros enteros

Elegir Entre Ingresar 1 como mnimo y 120 como mximo.

SENATI-Computacin e Informtica

33

Microsoft Office Excel 2007

a. Seleccionar la opcin Permitir: Nmero entero b. Datos: Entre c. Mnimo: 1 Mximo: 120 4. Cambiar a la pestaa Mensaje de entrada, para definir un mensaje que se mostrar cuando intente ingresar un dato.

Hacer clic en la ficha Mensaje de entrada

Escribir como ttulo Edad 1 a 120

Escribir mensaje Ingrese un nmero entre 1 y 120

5. Finalmente hacer un clic en el botn Ahora a propsito ingrese valor menos a 1 o mayores a 120 y observe lo que sucede. Paso a Paso: Validar dato fecha 1. Abrir el archivo 1 Validar datos

34

SENATI-Computacin e Informtica

s de datos II

2. Seleccionar las celdas E4:E13 para agregarle una restriccin, que acepte slo como datos fechas: entre 1/1/1965 hasta 1/1/1980

3. Elegir la ficha

Hacer clic en configuracin

la

ficha

Elegir Fecha Elegir Entre Ingresar 1/1/1965 como 1/1/1980 como mximo. mnimo y

4. Cambiar a la pestaa Mensaje de entrada, para definir un mensaje que se mostrar cuando intente ingresar un dato.

Hacer clic en la ficha Mensaje de entrada

SENATI-Computacin e Informtica

35

Microsoft Office Excel 2007 Escribir ttulo 1/1/1965 a 1/1/1980

Escribir mensaje

5. Finalmente hacer un clic en el botn

Paso a Paso: Eliminar una regla de validacin 1. Seleccionar las celdas que desee eliminar la validacin de datos. 2. Hacer clic en la ficha
Hacer clic en la lista Validacin de datos

Hacer clic en el botn Validacin de datos

36

SENATI-Computacin e Informtica

s de datos II 3. Del cuadro de dilogo Validacin de datos hacer clic en el botn

Paso a Paso: Rodear con crculo datos no vlidos 1. Hacer clic en la ficha
Hacer clic en la lista Validacin de datos

Hacer clic en el botn Rodear con un crculo datos no vlidos

Paso a Paso: Borrar crculos de validacin 1. Hacer clic en la ficha


Hacer clic en la lista Validacin de datos

Hacer clic en el botn Borrar crculos de validacin

Anlisis Y si
Permite crear escenarios para realizar predicciones. Por ejemplo, puede realizar anlisis y si para crear dos presupuestos donde en cada uno de ellos se supone un cierto grado de ingresos. O, puede especificar un resultado que desea que genere una frmula y, a continuacin, determinar qu conjuntos de valores generarn dicho resultado. Excel proporciona varias herramientas diferentes para ayudar a realizar el tipo de anlisis que se ajuste a sus necesidades.

SENATI-Computacin e Informtica

37

Microsoft Office Excel 2007

Uso del administrador de escenarios


Excel es ideal para el anlisis Y-Si. Ud. Puede ingresar valores dentro de las celdas y observar que pasa dependiendo de su contenido. Un escenario es un conjunto de valores que Microsoft Excel guarda y puede sustituir automticamente en la hoja de clculo. Puede utilizar los escenarios para prever el resultado de un modelo de hoja de clculo. Puede crear y guardar diferentes grupos de valores en una hoja de clculo y, a continuacin, pasar a cualquiera de estos nuevos escenarios para ver distintos resultados. Componentes de un escenario Un Modelo con Escenarios nombrados debe tener: Un grupo claro de uno o ms valores de entrada Un grupo claro de uno o ms valores resultantes que debern cambiar basado en las entradas.

Paso a Paso: Crear escenarios 1. Abrir el archivo 1 Escenarios

2. Crear tres escenarios: Mejor Opcin, Caso Optimista y el Caso Pesimista. 3. Hacer clic en la ficha

38

SENATI-Computacin e Informtica

s de datos II

Hacer clic en el botn anlisis Y si.

4. De las opciones presentadas elegir Administrador de escenarios


Hacer clic en el botn Administrador de escenarios

5. Se presenta el cuadro de dilogo Administrador de escenarios

6. Hacer clic en el botn

Escriba Mejor opcin

Seleccione el bloque de celdas B15:B18

Hacer clic en el botn Aceptar

7. Del cuadro de dilogo valores del escenario especifique segn la grfica mostrada

SENATI-Computacin e Informtica

39

Microsoft Office Excel 2007

Valores del escenario Mejor opcin

8. Hacer clic en el botn

para adicionar los escenarios restantes.

9. Se presenta el cuadro de dilogo Modificar escenario


Escriba caso optimista como nombre de escenario

Escriba B15:B18 celdas cambiantes

como

Del cuadro de dilogo valores del escenario especifique segn la grfica mostrada Hacer clic en el
botn Aceptar

Valores del escenario Caso optimista

10. Hacer clic en el botn


40

para adicionar los escenarios restantes.


SENATI-Computacin e Informtica

s de datos II Escriba caso Pesimista como nombre de escenario

Escriba B15:B18 celdas cambiantes

como

Hacer clic en el botn Aceptar

11. Del cuadro de dilogo valores del escenario especifique segn la grfica mostrada

Valores del escenario Caso Pesimista

12. Hacer clic en el botn 14. Guardar el archivo

para terminar

13. Se presenta el cuadro de dilogo administrador de escenarios.

SENATI-Computacin e Informtica

41

Microsoft Office Excel 2007

Paso a Paso: Mostrar escenarios 1. Abrir el archivo 1 Escenarios 2. Hacer clic en la ficha

Hacer clic en el botn anlisis Y si.

3. De las opciones presentadas elegir Administrador de escenarios


Hacer clic en el botn Administrador de escenarios

4. Se presenta el cuadro de dilogo Administrador de escenarios 5. Seleccione el escenario a mostrar, luego hacer clic en el botn

Seleccione escenario a mostrar, luego hacer clic en el botn

Paso a Paso: Modificar un Escenario 1. Abrir el archivo 1 Escenarios 2. Hacer clic en la ficha
42 SENATI-Computacin e Informtica

s de datos II

Hacer clic en el botn anlisis Y si.

3. De las opciones presentadas elegir Administrador de escenarios


Hacer clic en el botn Administrador de escenarios

4. Se presenta el cuadro de dilogo Administrador de escenarios 5. Seleccione el escenario a modificar, luego hacer clic en el botn 6. Se presenta el cuadro de dilogo Modificar escenario

7. Hacer clic en el botn 8. Se presenta el cuadro de dilogo Valores dele escenario

Escriba los nuevos valores de su escenario

9. Hacer clic en el
SENATI-Computacin e Informtica

botn para terminar


43

Microsoft Office Excel 2007

Buscar Objetivo
En el caso de que conozca el resultado deseado de una frmula sencilla, pero no la variable que determina el resultado, podr utilizar la funcin Buscar objetivo. Al realizar una bsqueda de objetivo, Microsoft Excel vara el valor de celda especfica hasta que una frmula dependiente de dicha celda devuelve el resultado deseado. Paso a Paso: Modificar un escenarios

1. Disear la siguiente hoja de clculo

En el ejemplo se muestra el calculo de pago de un prstamo en un periodo de 90 meses a una tasa de inters del 14%. Se utiliza la funcin =Pago 2. Hacer clic en la ficha

Hacer clic en el botn anlisis Y si.

3. De las opciones presentadas elegir Buscar objetivo


Hacer clic en el botn Buscar objetivo

4. Se presenta el cuadro de dilogo Buscar objetivo Queremos conocer cunto de inters se debe pagar si queremos desembolsar 2200 mensual, para pagar los 50,000 del prstamo
Frmula que calcula el pago mensual

Valor que queremos pagar mensualmente

Valor a localizar 44 SENATI-Computacin e Informtica

s de datos II

5. Hacer clic en el botn objetivo.

, se muestra el estado de la bsqueda de

6. Hacer clic en el botn

, para terminar

Tabla de datos
Una tabla de datos es un rango de celdas que muestra cmo afecta el cambio de algunos valores de las frmulas a los resultados de las mismas. Las tablas de datos constituyen un mtodo abreviado para calcular varias versiones en una sola operacin, as como una manera de ver y comparar los resultados de todas las variaciones distintas en la hoja de clculo.

Tabla de datos de una variable


Entre uno de los mejores ejemplos de anlisis sensitivo, esta una tabla de datos que calcula el pago de prstamo para diferentes tasas de inters. La tabla de datos de ingreso simple descrita en esta seccin crea un cuadro de pagos mensuales para una serie de tasas de inters.

Paso a Paso: Tabla de datos de una variable 1. Disear la siguiente hoja de clculo

Escribir los datos segn se muestra

En el ejemplo se muestra el calculo de pago de un prstamo de 20,000 en un periodo de 20 aos a una tasa de inters del 25%. Se utiliza la funcin =Pago

SENATI-Computacin e Informtica

45

Microsoft Office Excel 2007

2. Disear un cuadro que permita conocer cunto pagaremos si la tasa de inters vara entre 26% y 35%.

Escriba esta frmula =PAGO(B4/12;B5*12;B3)

Editar la tabla de tasa de inters

3. Seleccionar el bloque de celdas A8:B18 (Tabla de inters)

Seleccionar celdas A8:B18

46

SENATI-Computacin e Informtica

s de datos II

4. Hacer clic en la ficha

Hacer clic en el botn anlisis Y si.

5. De las opciones presentadas elegir Buscar objetivo


Hacer clic en el botn Tabla de datos

6. Se muestra el cuadro de dilogo tabla de datos 7. En el campo: Celda de entrada (Columna) escribir B4 que representa la tasa de inters del cuadro de prstamo.

8. Hacer clic en el botn resultado

para terminar, se debe mostrar el siguiente

Montos que se deben pagar segn la tasa de inters asociada

SENATI-Computacin e Informtica

47

Microsoft Office Excel 2007

Tablas de datos de dos variables


Continuando con nuestro ejemplo anterior, como resolveramos para analizar cuanto pagaramos, segn un rango de tasas de inters y un rango de montos prestados.

Paso a Paso: Tabla de datos de dos variable 1. Modificar su hoja como se muetsra en la grfica

Agregar el siguiente cuadro a su hoja

2. Seleccionar el bloque de celdas A8:G18 (Matriz: inters - monto) 3. Hacer clic en la ficha

Hacer clic en el botn anlisis Y si.

4. De las opciones presentadas elegir Buscar objetivo


Hacer clic en el botn Tabla de datos

48

SENATI-Computacin e Informtica

s de datos II

5. Se muestra el cuadro de dilogo tabla de datos 6. En el campo: Celda de entrada (Columna) escribir B4 que representa la tasa de inters del cuadro de prstamo. En el cuadro celda de entrada (fila) escribir b3 que representa al monto prestado.
Monto prestado

Tasa de inters

7. Hacer clic en el botn resultado

para terminar, se debe mostrar el siguiente

Montos prestados

Tasas de inters

Monto a pagar mensual

Consolidacin de datos y Referencia 3D


Cuando consolidar datos de varias hojas
Cuando se tenga listas de datos con informacin semejante una de otra, pero escrita en cuadros diferentes ya sea en la misma hoja o en hojas distintas, entonces se puede hacer uso del men Datos/Consolidar. Esta opcin se utiliza para obtener diversos tipos de clculo estadstico (suma, promedio, mximo, mnimo, varianza, etc.) en base a la informacin guardada en todos estos cuadros.

SENATI-Computacin e Informtica

49

Microsoft Office Excel 2007

Si desea...
Organizar los datos de todas las hoja de clculo en orden y ubicacin idnticos. Organizar los datos de forma diferente en las hoja de clculo independientes pero utilizar los mismos rtulos de fila y de columna para que la hoja de clculo maestra pueda hacer coincidir los datos. Utilizar frmulas con referencias de celdas o referencias 3D a otras hojas de clculo que est combinando porque no tiene una posicin o categora coherente en la que basarse.

Entonces
Consolide por posicin

Consolide por categoras

Consolide por frmula

Consolide por frmula


En la hoja de clculo maestra, copie o escriba los rtulos de columna o fila que desee para los datos de consolidacin. a. Haga clic en la celda en que desea incluir los datos de consolidacin. b. Escriba una frmula que incluya una referencia de celda a las celdas de origen de cada hoja de clculo o una referencia 3D que contenga los datos que desea consolidar. En cuanto a las referencias de celda, siga uno de los procedimientos siguientes: c. Si los datos que se van a consolidar estn en celdas diferentes de otras hoja de clculo d. Escriba una frmula con referencias de celda a las otras hojas de clculo, una por cada hoja de clculo independiente. Por ejemplo, para consolidar datos de hojas de clculo denominadas Ventas (en la celda B4), HR (en la celda F5) y Marketing (en la celda B9), en la celda A2 de la hoja de clculo maestra, tendra que escribir lo siguiente:

e. Para especificar una referencia de celda como Ventas3!B4 en una frmula sin escribir, escriba la frmula hasta el punto en el que necesite la referencia, haga clic en la etiqueta de la hoja de clculo y, a continuacin, haga clic en la celda. f. Si los datos que se van a consolidar estn en las mismas celdas de otras hojas de clculo
50 SENATI-Computacin e Informtica

s de datos II

g. Escriba una frmula con una referencia 3D que utilice una referencia a un rango de nombres de hojas de clculo. Por ejemplo, para consolidar datos en las celdas A2 desde Ventas hasta Marketing inclusive, en la celda A2 de la hoja de clculo maestra tendra que escribir lo siguiente:

Paso a Paso: Consolidacin de datos 1. Disear las siguientes 4 hojas de clculo o abrir el archivo CONSOLIDADO

SENATI-Computacin e Informtica

51

Microsoft Office Excel 2007

2. Se quiere consolidar las ventas de las sucursales de: Miraflores, Surco y San Borja en la hoja de Totales. 3. Hacer clic en la ficha ,

4. Del cuadro de dilogo presentado realizar las siguientes acciones


Elegir la funcin Suma Adicionar estas tres referencias y lic en el botn Agregar.

Activar las casillas de verificacin

La casilla de verificacin Crear vnculos con los datos de origen permiten que la hoja de totales se actualice, cuando realice cambios en las hojas orgenes.

52

SENATI-Computacin e Informtica

s de datos II

5. Finalmente hacer clic en el botn , se obtiene el siguiente resultado. La consolidacin del as ventas de las tres sucursales.

Paso a Paso: Consolidacin de datos 1. Ingresar la informacin de acuerdo al diseo sugerido

SENATI-Computacin e Informtica

53

Microsoft Office Excel 2007

2. Cambiar el nombre de las hojas: Hoja1 por BAL2005 Hoja2 por BAL2006 Hoja3 por BAL2007 y Hoja4 por CONSOLIDADO. Seleccionar el rea de valores numricos a consolidar y asignarle los nombres de campo: TBAL2005, TBAL2006 y TBAL2007. 3. EN la hoja CONSOLIDADO, ubicarse en la celda C6. 4. Clic en la Ficha de Herramientas Datos; Comando Consolidar del Grupo Herramienta de datos

El sistema mostrar la siguiente ventana del Comando Consolidar

5. Seleccionar la funcin a realizar: Suma 6. En Referencia agregar los tres nombres de campos creados sobre los valores a Sumar de la hojas anteriormente creadas; digitar: TBAL2005 [Agregar], TBAL2006 [Agregar], TBAL2007 [Agregar] 7. Activar la Casilla de verificacin de Crear Vnculos para que el consolidado siempre este actualizado as se modifiquen los datos orgenes 8. Para ver el resultado, clic en Aceptar. 9. Observar que ha sucedido y comentar las dudas o sugerencias con el instructor.
54 SENATI-Computacin e Informtica

s de datos II

Paso a Paso: Consolidacin por frmula Podemos resolver el consolidado tambin de la siguiente manera; por REFERENCIA 3D. 1. Crear una nueva hoja e ingresar la informacin de acuerdo al diseo sugerido en la Hoja5. Crear una nueva hoja e ingresar la informacin de acuerdo al diseo sugerido en la Hoja5. 2. Cambiar el nombre de la Hoja5 por CONS_FORMULAS. 3. Clic en la celda C6 y escribir la siguiente frmula: ='BAL2005'!C6+'BAL2006'!C6+'BAL2007'!C6 o =SUMA('BAL2005:BAL2007'!C6) 4. Luego copiar la frmula, hasta total de ingresos. NOTAS Al establecer frmulas los nombres de las hojas se especfica entre comillas y luego un signo de admiracin, ejemplo: 'BAL2005'!C6 hace referencia a la celda C6 de la hoja BAL2005. Al establecer frmulas tambin puede especificarlas como rango de hojas, separndolos con dos puntos pero solamente especificando las comillas simples al inicio y final del rango de hojas, luego un signo de admiracin que indica que son nombres de hojas, ejemplo: =SUMA('BAL2005:BAL2007'!C6) hace referencia a la celda C6 del rango de hojas BAL2005 hasta BAL2007; esto quiere indicar a la suma del valor de las celda C6 de las hojas BAL2005, BAL2006 y BAL2007.

Referencias 3D
Una referencia a la misma celda o al mismo rango (rango: dos o ms celdas de una hoja. Las celdas de un rango pueden ser adyacentes o no adyacentes.) en varias hojas se denomina referencia 3D. Una referencia 3D es un mtodo til y cmodo de hacer referencia a varias hojas de clculo que siguen el mismo patrn y a las celdas de cada hoja de clculo que contienen el mismo tipo de datos para, por ejemplo, consolidar los datos presupuestarios de diferentes departamentos de la organizacin.

SENATI-Computacin e Informtica

55

Microsoft Office Excel 2007

Ejemplo 1 La Empresa Corp. Per desea realizar un consolidado de los ingresos y/o inversin de las reas de ventas, marketing y recursos humanos.

PASOS 1. 2. 3. 4. 5. NOTAS Al establecer frmulas referencias 3D debe especificarlas separndolos con dos puntos pero solamente especificando las comillas simples al inicio y final del rango de hojas, luego un signo de admiracin que indica que son nombres de hojas, posteriormente se indica la celda a operar; ejemplo:
56 SENATI-Computacin e Informtica

Crear las hojas BAL5, BAL6 y BAL7 con el diseo sugerido. Crear la hoja CONSOLIDADO con el diseo sugerido. Especificar la frmula de referencia 3D en la celda C6 =SUMA('BAL5:BAL7'!C6) Luego copiar la frmula y observar que ha sucedido.

s de datos II

=SUMA('BAL5:BAL7'!C6) hace referencia a la celda C6 del rango de hojas BAL5 hasta BAL7; esto quiere indicar a la suma del valor de las celda C6 de las hojas BAL5, BAL6 y BAL7. Puede utilizar las siguientes funciones en una referencia 3D: Funcin SUMA PROMEDIO PROMEDIOA CONTAR CONTARA MAX MAXA MIN MINA PRODUCTO DESVEST DESVESTA DESVESTP DESVESTPA VAR VARA VARP VARPA Descripcin Suma nmeros. Calcula el promedio (media aritmtica) de nmeros. Calcula el promedio (media aritmtica) de nmeros; incluye valores de texto y lgicos. Cuenta celdas que contienen nmeros. Cuenta las celdas que no estn vacas. Busca el valor mayor de un conjunto de valores. Busca el valor mayor de un conjunto de valores; incluye valores de texto y lgicos. Busca el valor menor de un conjunto de valores. Busca el valor menor de un conjunto de valores; incluye valores de texto y lgicos. Multiplica nmeros. Calcula la desviacin estndar de una muestra. Calcula la desviacin estndar de una muestra; incluye valores de texto y lgicos. Calcula la desviacin estndar de una poblacin. Calcula la desviacin estndar de una poblacin; incluye valores de texto y lgicos. Calcula la varianza de una muestra. Calcula la varianza de una muestra; incluye valores de texto y lgicos. Calcula la varianza de una poblacin. Calcula la varianza de una poblacin; incluye valores de texto y lgicos.

SENATI-Computacin e Informtica

57

Microsoft Office Excel 2007

Cuestionarios
1. Si tienen una base de datos con n registros duplicados ubicados en diferentes lugares, cmo los eliminara.

2. Si desea ingresar datos en un campo que solo permita de acuerdo a un formato preestablecido, cmo lo hara.

3. Cul es la diferencia entre 3D y Consolidacin de datos.

4. Cul es la utilidad del administrador de escenarios.

5. Cul es la utilidad de buscar objetivo.

58

SENATI-Computacin e Informtica

Captulo

Funciones Financieras
En este captulo trataremos:
Generalidades sobre Excel en el mundo de los negocios. Uso de funciones financieras Desarrollo de proyectos con funciones financieras

SENATI-Computacin e Informtica

59

Microsoft Office Excel 2007

Generalidades sobre Excel en el mundo de los negocios


Actualmente no hay ejecutivo que no utilice la hoja de clculo Microsoft Excel, la cual es una herramienta muy til para llevar disear modelos de clculo: Administrativos, de control, contables, financieros, estadsticos, econmicos, matemticos, ingeniera, etc.

Uso de funciones financieras


A continuacin se desarrollarn temas financieros con Excel, puntualmente se vern las siguientes funciones: PAGO, VA, VF, NPER, TASA, TIR

Consideraciones del ndice de inflacin


La inflacin se refiere a un aumento prolongado de todos los precios en la economa, el cual afecta el nivel general de precios de manera permanente. Si maana cae un huayco en la sierra central, paraliza el transporte y debido a eso suben los precios de los alimentos, no podemos decir que se trate de un proceso inflacionario: este aumento de precios no sera generalizado, ni tampoco tendra carcter de un proceso prolongado que afecta el nivel general de precios La tasa de inflacin depende mucho del ndice de precios que se emplea para calcularla, as como del perodo de referencia. El ndice ms empleado es el del precio al consumidor, mide el costo de la canasta de bienes finales que consume la familia promedio Otra tcnica de clculo es utilizando el ndice de precios al por mayor o el deflactor implcito del PBI. El deflactor implcito del PBI mide el costo promedio de los bienes de consumo privado y pblico, los bienes de inversin y de los bienes que se importan y/o exportan. Mide el costo en el ltimo mes del ao en cuestin

Inflacin Peruana utilizando El deflactor implcito del PBI 1988 629% 1989 2537% 1990 6135% Los ndices Latinoamericanos son los ms altos que se han alcanzado en el mundo durante toda la segunda mitad del siglo XX.

Hiperinflacin. Phillip Cagan lo defini como el proceso que comienza en aquel mes donde el alza de los precios excede el 50% , y concluye en el mes previo en que el alza mensual de los precios cae debajo de este nivel y permanece por debajo al menos durante un ao. Inflacin anual de ms de 12000%.
60 SENATI-Computacin e Informtica

Financieras

Si aplicamos la definicin de Cagan al caso peruano, tendramos que la hiperinflacin comenz en septiembre de 1988 y concluy en agosto de 1990. Durante 24 meses que dur este proceso hiperinflacionario, la inflacin acumulada fue de 3.38x105 (338,000%) y la inflacin mensual promedio fue de 46%

Causas de la inflacin Existen diferentes explicaciones sobre las causas de la inflacin. De hecho parece que existen diversos tipos de procesos econmicos diferentes que producen inflacin, y esa es una de las causas por las cuales existen diversas explicaciones: cada explicacin trata de dar cuenta de un proceso generador de inflacin diferente, aunque no existe una teora unificada que integre todos los procesos. De hecho se han sealado que existen al menos tres tipos de inflacin:

Inflacin de demanda (Demand pull inflation), cuando la demanda general de bienes se incrementa, sin que el sector productivo haya tenido tiempo de adaptar la cantidad de bienes producidos a la demanda existente. Inflacin de costos (Cost push inflation), cuando el coste de la mano de obra o las materias primas se encarece, y en un intento de mantener la tasa de beneficio los productores incrementan los precios. Inflacin autoconstruida (Build-in inflation), ligada al hecho de que los agentes prevn aumentos futuros de precios y ajustan su conducta actual a esa previsin futura. Como se mide ndice de precios al consumidor (IPC): diseado para registrar las variaciones en el poder adquisitivo del promedio de la poblacin (sobre la base de una canasta de productos de consumo representativa). ndice Laspeyres (ponderado en el ao base)

ndice Paasche (ponderado en el ao corriente)

En ambos casos aislamos el efecto de las cantidades ya que nos interesa el cambio en precios.

SENATI-Computacin e Informtica

61

Microsoft Office Excel 2007

IPC: ndice Laspeyres o Paasche?

Extrado del documento publicado por el profesor: Juan F. Castro del Departamento de Economa de la Universidad del Pacfico

Tasa nominal
Conocida tambin como tanto por uno o simplemente como tasa de inters, es la ganancia que genera un capital de $1 en un ao; o sea, es igual a la centsima parte de la razn o tanto por ciento (ganancia producida por un capital de $100 en un ao). Generalizando, cuando el tiempo n y el perodo en que est expresada la tasa i coinciden con la capitalizacin, se dice que la tasa i es nominal.

Paso a Paso: Convertir de tasa efectiva a tasa nominal

1. Dado una tasa nominal, tiempo de capitalizacin y tasa nominal mensual,


calcular la tasa efectiva.

62

SENATI-Computacin e Informtica

Financieras

Tasa efectiva (i)


Es el tanto por uno que, aplicado a un capital C en n perodos, produce un monto M2 igual al que se obtiene utilizando la tasa proporcional m veces en cada uno de los n perodos con capitalizacin subperidica. Aparece en la frmula de monto M2 = C (1 + i) n, de modo que M2 = M3. Partiendo de esta ltima igualdad, podemos expresar la tasa efectiva en funcin de la tasa proporcional: M2 = M3 C (1 + i) n = C (1 + i/m) n m 1 + i = (1 + i/m) m (Simplificamos C y n.) I = (1 + i/m) m 1 (Despejamos I.)

Paso a Paso: Convertir de tasa nominal a tasa efectiva

1. Disear el siguiente cuadro

SENATI-Computacin e Informtica

63

Microsoft Office Excel 2007

Paso a Paso: Conversin de tasa nominal a tasa efectiva 1. Editar y desarrollar la siguiente hoja.

= (1 + ($B$4/B9)) ^ B9 -1

= (1 + ($B$4/B8)) ^ B8 -1

Prstamo de un banco: Funcin PAGO


La funcin PAGO devuelve el importe de la renta constante vencida o anticipada en una anualidad simple, en funcin de su valor presente o futuro Sintaxis

PAGO(tasa;nper;va;vf;tipo)
Argumentos Tasa. Es el tipo de inters del prstamo. Nper. Es el nmero total de pagos del prstamo. La Tasa y Nper deben expresarse en la misma unidad de tiempo (Ambas trimestrales, anuales, etc.) Va. Es el valor actual o lo que vale ahora la cantidad total de una serie de pagos futuros, tambin se conoce como el principal.
64 SENATI-Computacin e Informtica

Financieras

Vf. Es el valor futuro o un saldo en efectivo que desea lograr despus de efectuar el ltimo pago. Si el argumento vf se omite, se asume que el valor es 0 (es decir, el valor futuro de un prstamo es 0). Si utiliza el argumento opcional Vf sin considerar valor alguno en el argumento obligatorio Va, la funcin PAGO obtiene la renta constante en funcin de ese valor futuro que nos permite constituir un fondo de amortizacin cuyo monto es el importe de Vf. Si utiliza conjuntamente el argumento obligatorio Va y el argumento opcional Vf la funcin PAGO trae al momento 0 el importe de Vf, lo resta del importe de Va y sobre este saldo le calcula la cuota constante vencida o anticipada. Tipo. Es el nmero 0 (cero) 1. Indica el vencimiento de los pagos. Defina tipo como 0 u omitido 1 Frmulas financieras Renta Vencida En funcin de P En funcin de S Si los pagos vencen Al final del perodo (Rentas vencidas) Al inicio del perodo (Rentas anticipadas)

Anticipada

Paso a Paso: Prstamo de banco (Amortizacin) 1. Utilizar la funcin pago para desarrollar una tabla de amortizacin de un prstamo utilizando el mtodo francs (Pago de cuotas iguales). Usar la funcin PAGO. 2. Desarrollaremos el siguiente caso: Se tiene un prstamo de $50,000. Por el cual se cobrar una tasa de 30% anual. Durante 12 aos. Se pide calcular la cuota constante que debe pagar para cancelar el prstamo. Tasa 30% Va=50,000 Pago? Pago? Pago? Pago? nper=12

SENATI-Computacin e Informtica

65

Microsoft Office Excel 2007

3. Disear el siguiente cuadro

Se considera como negativo por ser un desembolso

4. Se debe obtener como resultado el siguiente cuadro

66

SENATI-Computacin e Informtica

Financieras

Paso a Paso: Costo equivalente 1. Cul es el costo equivalente anual de una mquina cuyo precio es de $50,000 su vida til est estimada en 5 aos, su valor de salvamento al final de la vida til es de $ 10,000. La tasa de inters es de 12%. Vf = 10,000 Tasa 12% Va=50,000 Pago? Pago? Pago? Pago? nper=5

2. Disear el siguiente cuadro.

Paso a Paso: Prstamo de banco (Amortizacin) 1. Se tiene un prstamo de $ 10000 el cual debe cancelarse en el plazo de un ao con cuotas uniformes trimestrales aplicando una tasa del 15%. Calcular el importe de la cuota en el caso que sea vencida y en el caos de que sea anticipada. Desarrollar sus tablas de amortizacin 2. Disear el siguiente cuadro

3. El resultado queda como se muestra en la siguiente hoja de clculo

SENATI-Computacin e Informtica

67

Microsoft Office Excel 2007

Valor presente de la inversin/pagos futuros: Funcin VA


Uno de los indicadores ms importantes y utilizados en la evaluacin de inversiones es el Valor Actual VA. La funcin VA devuelve el valor actual de una inversin. El valor actual es el valor que tiene actualmente la suma de una serie de pagos que se efectuarn en el futuro. Por ejemplo, cuando toma dinero prestado, la cantidad del prstamo es el valor actual para el prestamista. Sintaxis

VA(tasa; nper; pago; vf; tipo)


Argumentos Tasa Es la tasa de inters por perodo. Por ejemplo, si obtiene un prstamo para una motocicleta con una tasa de inters anual del 10% y efecta pagos mensuales, la tasa de inters mensual ser del 10%/12 0,83%. En la frmula escribira 10%/12, 0,83% 0,0083 como tasa. Nper Es el nmero total de perodos en una anualidad. Por ejemplo, si obtiene un prstamo a cuatro aos para comprar un automvil y efecta pagos mensuales, el prstamo tendr 4*12 ( 48) perodos. La frmula tendr 48 como argumento nper. Pago Es el pago que se efecta en cada perodo y que no cambia durante la vida de la anualidad. Por lo general, el argumento pago incluye el capital y el inters pero no incluye ningn otro cargo o impuesto. Por ejemplo, los pagos mensuales sobre un prstamo de $10.000 a cuatro aos con una
68 SENATI-Computacin e Informtica

Financieras

tasa de inters del 12% para la compra de una motocicleta, son de $263,33. En la frmula escribira -263,33 como el argumento pago. Vf Es el valor futuro o el saldo en efectivo que desea lograr despus de efectuar el ltimo pago. Si el argumento vf se omite, se asume que el valor es 0 (por ejemplo, el valor futuro de un prstamo es 0). Si desea ahorrar $50.000 para pagar un proyecto especial en 18 aos, $50.000 sera el valor futuro. De esta forma, es posible hacer una estimacin conservadora a cierta tasa de inters y determinar la cantidad que deber ahorrar cada mes. Tipo Es el nmero 0 1 e indica el vencimiento de los pagos. Defina tipo como 0 u omitido 1 Frmulas financieras Si los pagos vencen Al final del perodo (Rentas vencidas) Al inicio del perodo (Rentas anticipadas)

Flujo Vencido

Flujo Anticipados

Paso a Paso: Calculo del Valor actual


1. Calcular el valor actual de una renta de S/. 1000 anuales durante 10 aos, si la

tasa de inters es de 5% efectivo anual.

1000 0 P=? 1 2

1000

1000 . 8

1000

1000 9

1000 10

SENATI-Computacin e Informtica

69

Microsoft Office Excel 2007 2. Disear el siguiente cuadro

3. El resultado queda como se muestra en la siguiente hoja de clculo

Valor futuro de la inversin: Funcin VF


Devuelve el valor futuro de una inversin basndose en pagos peridicos constantes y en una tasa de inters constante.
70 SENATI-Computacin e Informtica

Financieras

Sintaxis

VF(tasa; nper; pago; va; tipo)


Argumentos Tasa Es la tasa de inters por perodo. Por ejemplo, si obtiene un prstamo para una motocicleta con una tasa de inters anual del 10% y efecta pagos mensuales, la tasa de inters mensual ser del 10%/12 0,83%. En la frmula escribira 10%/12, 0,83% 0,0083 como tasa. Nper Es el nmero total de perodos en una anualidad. Por ejemplo, si obtiene un prstamo a cuatro aos para comprar un automvil y efecta pagos mensuales, el prstamo tendr 4*12 ( 48) perodos. La frmula tendr 48 como argumento nper. Pago Es el pago que se efecta en cada perodo y que no cambia durante la vida de la anualidad. Por lo general, el argumento pago incluye el capital y el inters pero no incluye ningn otro cargo o impuesto. Por ejemplo, los pagos mensuales sobre un prstamo de $10.000 a cuatro aos con una tasa de inters del 12% para la compra de una motocicleta, son de $263,33. En la frmula escribira -263,33 como el argumento pago. Va Es el valor actual de la cantidad total de una serie de pagos futuros. Si el argumento va se omite, se considerar 0. Tipo Es el nmero 0 1 e indica el vencimiento de los pagos. Defina tipo como 0 u omitido 1 Si los pagos vencen Al final del perodo (Rentas vencidas) Al inicio del perodo (Rentas anticipadas)

Paso a Paso: Calcular VF 1. Se quiere ahorrar un dinero para un proyecto especial que tendr lugar dentro de un
ao a partir de la fecha de hoy, para lo cual se cuenta con los siguientes datos:

Depositaremos $15000 en una cuenta de ahorros que devenga un inters anual de 6%, que se capitaliza mensualmente (inters mensual de 6%/12 sea 0.5%)

SENATI-Computacin e Informtica

71

Microsoft Office Excel 2007

Se depositar $1500 el primer da de cada mes durante los prximos 12 meses

2. Cunto dinero tendr en su cuenta al final de los 12 meses 3. Disear la siguiente hoja de clculo

4. El resultado queda como se muestra en la siguiente hoja de clculo

72

SENATI-Computacin e Informtica

Financieras

Nmero de pagos de inversin: Nper


Devuelve el nmero de rentas constantes vencidas o anticipadas, que forman una anualidad simple, en funcin de un stock de efectivo: inicial o final, en la que la tasa de inters efectiva no vara durante el plazo de la operacin. Nper en funcin del valor actual calcula el nmero de rentas con las que puede amortizarse totalmente un prstamo Nper en funcin del valor futuro calcula el nmero de rentas con las que se puede constituir un fondo de amortizacin

Paso a Paso: Nper en funcin del valor presente, con renta constante vencida 1. Nper en funcin del valor presente puede calcularse conociendo el importe de la renta constante vencida, o de la renta constante anticipada, que amortiza el prstamo. 2. Con cuntas cuotas trimestrales vencidas, pueden cancelarse un prstamo de $ 9,000 el mismo que devenga una tasa efectiva trimestral del 5% y se amortizar con pagos uniformes de $ 2500 cada 90 das. Va=9000 Nper=? Tasa=5% pago= -2500 3. Disear la siguiente hoja tasa=5% pago= -2500 tasa5% pago= -2500

SENATI-Computacin e Informtica

73

Microsoft Office Excel 2007

Paso a Paso: Nper en funcin del valor presente, con renta constante anticipada 1. Nper en funcin del valor presente puede calcularse conociendo el importe de la renta constante vencida, o de la renta constante anticipada, que amortiza el prstamo. 2. Con cuntas cuotas trimestrales anticipadas, pueden cancelarse un prstamo de $ 9,000 el mismo que devenga una tasa efectiva trimestral del 5% y se amortizar con pagos uniformes de $ 2500 cada 90 das. Va=9500 Nper=? Tasa=5% pago= -2500 3. Disear la siguiente hoja tasa=5% pago= -2500 tasa5% pago= -2500

Paso a Paso: Nper en funcin del valor futuro 1. Nper en funcin del valor futuro puede calcularse conociendo el importe de la renta constante vencida o de renta constante anticipada, que acumula un fondo de amortizacin. 2. Cuntos depsitos mensuales vencidos de $500, sern necesarios ahorrar en un banco que paga una tasa del 24% con capitalizacin mensual, para acumular un monto de $ 5474.86
74 SENATI-Computacin e Informtica

Financieras

Va=9500 Nper=? Tasa=5% pago= -2500 3. Disear la siguiente hoja tasa=5% pago= -2500 tasa5% pago= -2500

Funcin TASA
Devuelve la tasa de inters por perodo de una anualidad. TASA se calcula por iteracin y puede tener cero o ms soluciones. Si los resultados consecutivos de TASA no convergen en 0,0000001 despus de 20 iteraciones, TASA devuelve el valor de error #NUM! Sintaxis: TASA(nper; pago; va; vf; tipo; estimar)

Argumentos Nper Es el nmero total de perodos de pago en una anualidad. Pago Es el pago que se efecta en cada perodo y que no puede cambiar durante la vida de la anualidad. Generalmente el argumento pago incluye el capital y el inters, pero no incluye ningn otro arancel o impuesto. Va Es el valor actual de la cantidad total de una serie de pagos futuros. Vf Es el valor futuro o un saldo en efectivo que desea lograr despus de efectuar el ltimo pago. Si el argumento vf se omite, se asume que el valor es 0 (por ejemplo, el valor futuro de un prstamo es 0).

SENATI-Computacin e Informtica

75

Microsoft Office Excel 2007

Tipo Es el nmero 0 1 e indica el vencimiento de los pagos. Defina tipo como 0 u omitido 1 Estimar Es la estimacin de la tasa de inters. Si el argumento estimar se omite, se supone que es 10%. Si TASA no converge, trate de usar diferentes valores para el argumento estimar. TASA generalmente converge si el argumento estimar se encuentra entre 0 y 1. Si los pagos vencen Al final del perodo (Rentas vencidas) Al inicio del perodo (Rentas anticipadas)

Paso a Paso: Uso de la funcin Tasa


1. Calcular la tasa de un prstamo de $8000 a cuatro aos con pagos mensuales de $200

Tasa interna de retorno (TIR)


Devuelve la tasa interna de retorno de una inversin, sin costos de financiacin o las ganancias por reinversin representadas por los nmeros del argumento valores. Estos flujos de caja no tienen por qu ser constantes, como es el caso en una anualidad. La tasa interna de retorno equivale a la tasa de inters producida por un proyecto de inversin con pagos (valores negativos) e ingresos (valores positivos) que ocurren en perodos regulares. Sintaxis TIR(valores; estimar)

76

SENATI-Computacin e Informtica

Financieras

Argumentos Valores Es una matriz o referencia a celdas que contengan los nmeros para los cuales se desea calcular la tasa interna de retorno. El argumento valores debe contener al menos un valor positivo y uno negativo para calcular la tasa interna de retorno. TIR interpreta el orden de los flujos de caja siguiendo el orden del argumento valores. Asegrese de introducir los valores de los pagos e ingresos en el orden correcto. Si un argumento matricial o de referencia contiene texto, valores lgicos o celdas vacas, esos valores se ignoran. Estimar El un nmero que el usuario estima que se aproximar al resultado de TIR. Microsoft Excel utiliza una tcnica iterativa para el clculo de TIR. Comenzando con el argumento estimar, TIR reitera el clculo hasta que el resultado obtenido tenga una exactitud de 0,00001%. Si TIR no llega a un resultado despus de 20 intentos, devuelve el valor de error #NUM! En la mayora de los casos no necesita proporcionar el argumento estimar para el clculo de TIR. Si se omite el argumento estimar, se supondr que es 0,1 (10%). Si TIR devuelve el valor de error #NUM!, o si el valor no se aproxima a su estimacin, realice un nuevo intento con un valor diferente de estimar.

Paso a Paso: Calcular TIR 1. Supongamos que desea abrir un restaurante. El costo estimado para la inversin inicial es de $70.000, esperndose el siguiente ingreso neto para los primeros cinco aos: $12.000; $15.000; $18.000; $21.000 y $26.000. 2. Calcular la tasa interna de retorno de su inversin despus de 2, 3, 4 y 5 aos.

SENATI-Computacin e Informtica

77

Microsoft Office Excel 2007

Desarrollo de proyectos con funciones financieras


Comprar frente a un leasing
El leasing es una forma de financiamiento de activos. Tener en cuenta la siguiente frase: Para generar utilidades, no es necesario ser propietario del activo fijo, basta ser un usuario El arrendamiento puede ser operativo o financiero El arrendamiento operativo, nunca le har dueo del activo El arrendamiento financiero, si le har dueo del activo, a su solicitud y tiene la preferencia de compra, cuando termine de pagar la ltima cuota Financiador (Compra el activo)

Actores que participan en el Leasing

Proveedor del activo Como se gestiona -

Usuario del activo

El futuro usuario, busca al proveedor del activo que necesita solicitando cotizaciones Una vez elegido el proveedor se dirige a la entidad financiera de Leasing llevndole la informacin La sociedad de Leasing, compra el activo y se lo alquila al cliente usuario

Algunas diferencias entre comprar y alquilar El prstamo (COMPRAR) No financia el 100% de la inversin El Leasing (ALQUILAR) Si financia el 100% de la inversin

El estudio del prstamo demora varios La maquinaria se dispone a las 24 meses horas
78 SENATI-Computacin e Informtica

Financieras

El empresario es dueo del activo El empresario podra ser dueo, al final desde el inicio de plazo El empresario es el propietario y puede El financiador es el propietario. No el depreciar empresario Comprando o alquilando tenemos que efectuar un flujo de pagos, si comparamos que flujo de pagos es ms barato podramos saber que es ms conveniente comprar o alquilar Debemos tener en cuenta que al comprar un activo, es para hacerlo producir y obtener utilidades, el estado cobra impuestos y ello representa un costo. La ventaja relativa del financiamiento mediante Leasing, o mediante prstamo, depender de los flujos de fondos derivados de cada uno de ambos mtodos, y del costo de oportunidad de los fondos, despus de impuestos (Van Horne). Evaluacin por ingresos netos Permite ver panormicamente las diferencias en el estado de resultados de ambas formas de financiamiento Consideraciones El leasing, no afecta el pasivo del balance, por cuanto no es un prstamo, tampoco afecta el activo del balance, el empresario no es dueo del bien Con prstamo, usted es propietario y puede depreciar Con leasing, no puede depreciar. El propietario es el financiador Con prstamo, los intereses van antes de impuestos y, las amortizaciones despus de impuestos Con leasing, hay una sola cuota que ntegramente va a costos, antes de impuestos

Paso a Paso: Evaluacin por ingresos netos 1. Se quiere adquirir una mquina que cuesta $5000 y tiene una vida til de 2 aos. Tasa para leasing 18 %, tasa para prstamo 25% 2. Alternativa con leasing

SENATI-Computacin e Informtica

79

Microsoft Office Excel 2007

3. Alternativa con prstamo

Inters = Tasa*Saldo actual Saldo = saldo ant. Amort.

=F10*$F$4
Amort = Cuota - inters

=F10-H10 =I10-G10

=$F$6

4. Desarrollando el flujo de fondos

80

SENATI-Computacin e Informtica

Financieras

5. Calculando el valor presente, elegir el que tiene mayor valor presente.

Evaluacin por costos netos Consta de tres pasos. Preparar el flujo de pagos con Leasing, despus de impuestos Preparar el flujo de pagos con prstamos, despus de impuestos Hallar el valor presente de ambos flujos, al costo del capital despus de impuestos y, elegir la alternativa de menor costo

Paso a Paso: Evaluacin por costos netos 1. Se quiere adquirir una mquina que cuesta $5000 y tiene una vida til de 2 aos. Tasa para leasing 18 %, tasa para prstamo 25% Tasa de evaluacin para calcular el valor presente 10%.

SENATI-Computacin e Informtica

81

Microsoft Office Excel 2007

Calcular la tasa interna de devolucin para un flujo de liquidez no peridico


Funcin TIR.NO.PER Devuelve la TIR de un proyecto cuyos flujos de caja netos son de diferentes magnitudes, estn distribuidos en plazos diferentes, se puede considerar flujo positivo o negativo. Sintaxis TIR.NO.PER(valores;fechas;estimar) Valores Es una serie de flujos de caja que corresponde a un calendario de pagos determinado por el argumento fechas. El primer pago es opcional y corresponde al costo o pago en que se incurre al principio de la inversin. Si el primer valor es un costo o un pago, debe ser un valor negativo. Todos los pagos sucesivos se descuentan basndose en un ao de 365 das. La serie de valores debe incluir al menos un valor positivo y un valor negativo. Fechas Es un calendario de fechas de pago que corresponde a los pagos del flujo de caja. La primera fecha de pago indica el principio del calendario de pagos. El resto de las fechas deben ser posteriores a sta, pero pueden aparecer en cualquier orden. Las fechas deben especificarse utilizando la funcin FECHA o como resultado de otras frmulas o funciones. Por ejemplo, utilice FECHA(2008;5;23) para el 23 de mayo de 2008. Pueden producirse problemas si las fechas se escriben como texto. Estimar Es un nmero que el usuario estima que se aproximar al resultado de TIR.NO.PER.
82 SENATI-Computacin e Informtica

Microsoft Office Excel 2007

Tasa_reinversin Es la tasa de inters obtenida por los flujos de caja a medida que se reinvierten. Si n es el nmero de flujos de caja en valores, tasaf es la tasa_financiamiento y tasar es la tasa_reinversin, la frmula de TIRM es:

Paso a Paso: TIRM Un proyecto cuya inversin inicial es de 120,000, y se tiene flujos de 39000, 30000, 21000, 37000, 46000 cada ao. La tasa de inters del prstamo es de 10% La tasa de inters anual de los beneficios reinvertidos es de 12% Calcular TIRM

SENATI-Computacin e Informtica

83

Financieras

Cuestionarios
1. Cul es la diferencia entre un inters simple y un inters compuesto.

2. Cul es la diferencia entre valor presente y valor futuro.

3. Para que sirve la funcin TIR.

4. Cul es la diferencia entre activo y pasivo.

5. Qu es un Leasing.

84

SENATI-Computacin e Informtica

Captulo

Anlisis de Datos II
En este captulo trataremos:
Herramientas de anlisis estadstico Uso de cuadros de histogramas Uso de Solver

SENATI-Computacin e Informtica

85

s de datos III

Herramientas de Anlisis Estadstico


Excel presenta un conjunto de herramientas para proyectar resultados de ingresos, gastos de su negocio. A continuacin se describe el uso de estas herramientas.

Tendencia lineal de ajuste perfecto automticamente


En una serie lineal, el incremento, o diferencia entre el primer valor de la serie y el siguiente, se agrega al valor inicial y, a continuacin, a cada uno de los valores siguientes. Paso a Paso: Tendencia lineal de ajuste perfecto

1. La empresa Productos Agrcolas SAC desea proyectar sus ventas del ltimo
semestre del ao, para ello nos presenta la informacin de ventas de los seis primeros meses.

2. Utilizaremos el procedimiento para proyectar la tendencia lineal

a. Seleccionar el bloque celdas A4:B9

de

b. Sealar con su mouse este cuadradito y arrastrar con el botn derecho del mouse hasta la fila 15, luego soltar el mouse SENATI-Computacin e Informtica

c. Del men contextual presentado elegir La opcin Tendencia lineal

87

Microsoft Office Excel 2007

3. Se debe mostrar como resultado el siguiente cuadro

Ventas del primer semestre

Ventas proyectadas con tendencia lineal automtica, para el ltimo semestre

Tendencia geomtrica de forma automtica


En una serie geomtrica, el valor inicial se multiplica por el incremento para obtener el siguiente valor en la serie. El resultado y los siguientes resultados se multiplican a continuacin por el incremento.

Paso a Paso: Tendencia geomtrica de forma automtica 1. Utilizando el cuadro anterior, pero esta vez proyectar con tendencia geomtrica.
b. Seleccionar el bloque de celdas B4:B9

b. Arrastrar con el botn derecho del mouse hasta la fila 15, luego soltar el mouse

c. Del men contextual presentado elegir La opcin Tendencia geomtrica

88

SENATI-Computacin e Informtica

s de datos III

2. Se presentar como resultado el siguiente cuadro

Ventas del primer semestre

Ventas proyectadas con tendencia geomtrica, para el ltimo semestre

Tendencia lineal o geomtrica de forma manual


En una serie lineal, los valores iniciales se aplican al algoritmo de tendencia lineal (y = mx+b) para generar la serie. En una serie geomtrica, los valores iniciales se aplican al algoritmo de curva exponencial (y=b*m^x) para generar la serie. En ambos casos, se omite el incremento. La serie creada es equivalente a los valores devueltos por las funciones TENDENCIA o CRECIMIENTO. Paso a Paso: Tendencia lineal o geomtrica de forma manual

1. Disear el siguiente cuadro


a. Arrastre este recuadro pequeo con el botn derecho del mouse, hasta la celda B9. Y suelte el mouse

b. Hacer clic sobre la opcin Series

SENATI-Computacin e Informtica

89

Microsoft Office Excel 2007

2. Se presenta el siguiente cuadro de dilogo.


Seleccione tipo de tendencia: Lineal o geomtrica

Elegir columna, para que la serie se extienda hacia abajo

Active la casilla Tendencia

3. Hacer clic en el botn

para terminar

Se genera la tendencia reemplazando a los tres primeros valores e la serie original

Agregar una lnea de tendencia a un grfico


Las lneas de tendencia se utilizan para el estudio de problemas de prediccin, lo que se denomina tambin anlisis de regresin. En un grfico si tiene los datos de ventas de los primeros meses del ao, puede agregar una lnea de tendencia al grfico que muestre la tendencia general de las ventas (creciente, decreciente o uniforme) o que muestre la tendencia prevista para los meses venideros. Media mvil. Se puede crear una media mvil, que suaviza las fluctuaciones en los datos y muestra la trama o tendencia con ms claridad. Tipos de grfico que admiten lneas de tendencias Pueden agregarse lneas de tendencia a las series de datos en los siguientes grficos:
90 SENATI-Computacin e Informtica

s de datos III reas 2D no apiladas

Barras Columnas Lneas Cotizaciones Tipo XY (Dispersin), y Burbujas. No pueden agregarse lneas de tendencia a las series de datos en los grficos 3D, radiales, circulares, de superficie o de anillos. Si se cambia un grfico o una serie de datos de modo que ya no permita la lnea de tendencia asociada (por ejemplo, si se cambia el tipo de grfico por un grfico de reas 3D o si se cambia la vista de un informe de grfico dinmico o de un informe de tabla dinmica asociado), se perdern las lneas de tendencia. Paso a Paso: Agregar lnea de tendencia a un grfico

1. Disear el siguiente cuadro

a. Hacer clic en botn

2. Seleccionar el bloque de de celdas A2:B7

b. Hacer clic en la ficha Insertar c. Seleccionar celdas A2:B7 las

d. Elegir este tipo de grfico

SENATI-Computacin e Informtica

91

Microsoft Office Excel 2007

3. Se muestra el siguiente grfico


Tasa de inflacin Per
4 3 2 1 0 2003 2004 2005 2006 2007

4. Para agregar la lnea de tendencia, realice las siguientes operaciones


a. Hacer un clic sobre el grfico para seleccionarlo. b. Hacer clic sobre la ficha presentacin

c. Hacer clic sobre el botn

Mas opciones de lnea de tendencia


d. Se presenta el siguiente cuadro de dilogo

e. Elegir Lineal

f.

Activar la casilla Presentar ecuacin en el grfico

92

SENATI-Computacin e Informtica

s de datos III

5. Se muestra el siguiente grfico


4 2 0 2003 2004 Tasa de inflacin Per 2005

y = -0.27x + 3.09
2006 2007

Lineal (Tasa de inflacin Per)

Si se reemplaza x en la ecuacin por el nmero del ao siguiente se obtienen los pronsticos de la inflacin de los prximos aos (2008, 2009, etc.)

Proyectar valores
Funcin PRONSTICO Calcula un valor futuro utilizando los valores existentes. El valor previsto es un valor del eje Y para un valor del eje X dado. Los valores conocidos son valores de x e y existentes, y el nuevo valor se calcula utilizando una regresin lineal. Esta funcin se puede utilizar para prever las ventas futuras, las necesidades de inventario y las tendencias de los consumidores. Sintaxis PRONOSTICO(x;conocido_y;conocido_x) Argumentos X Conocido_y Conocido_x Es el punto de datos cuyo valor se desea predecir. Es la matriz o rango de datos dependientes. Es la matriz o rango de datos independientes.

La ecuacin de la funcin pronstico es a + bx, donde:

y Y donde x e y son las medias de muestra PROMEDIO(conocido_x) y PROMEDIO (conocido y).

SENATI-Computacin e Informtica

93

Microsoft Office Excel 2007

Paso a Paso: Uso de la funcin Pronstico

1. Disear el siguiente cuadro

94

SENATI-Computacin e Informtica

s de datos III

Funcin TENDENCIA Devuelve valores que resultan de una tendencia lineal. Ajusta una recta (calculada con el mtodo de mnimos cuadrados) a los valores de las matrices definidas por los argumentos conocido_y y conocido_x. Devuelve, a lo largo de esa recta, los valores y correspondientes a la matriz definida por el argumento nueva_matriz_x especificado. Sintaxis TENDENCIA(conocido_y;conocido_x;nueva_matriz_x;constante) Argumentos Conocido_y Conocido_x Es el conjunto de valores de y que se conocen en la relacin y = mx+b. Es un conjunto opcional de valores x que se conocen en la relacin y = mx+b.

Nueva_matriz_x Son los nuevos valores de x para los cuales desea que TENDENCIA devuelva los valores de y correspondientes Paso a Paso: Uso de la funcin Tendencia

1. Disear el siguiente cuadro

SENATI-Computacin e Informtica

95

Microsoft Office Excel 2007

Uso de cuadros de Histogramas para el clculo de frecuencias individuales y acumulativas


El grfico de la distribucin de frecuencias, se llama histograma. El histograma de frecuencias es una representacin visual de los datos en donde se evidencian fundamentalmente tres caractersticas: forma, acumulacin o tendencia posicional y dispersin o variabilidad. El histograma (de frecuencias) en si es una sucesin de rectngulos construidos sobre un sistema de coordenadas de la siguiente manera: 1. Las bases de los rectngulos se localizan en el eje horizontal. La longitud de la base es igual al ancho del intervalo. 2. Las alturas de los rectngulos se registran sobre el eje vertical y corresponden a las frecuencias de los intervalos. 3. Las reas de los rectngulos son proporcionales a las frecuencias de las clases. Para que usar los histogramas
1. Los histogramas de frecuencia son una herramienta til cuando hay que

analizar una gran cantidad de datos. a. Para mostrar en forma de grficos de barras las caractersticas de un producto o servicio: Tipos de defectos Problemas Riesgos de seguridad, etc.

2. Un histograma toma datos de mediciones a. Temperatura, presiones, alturas, pesos, etc. b. Muestra su distribucin. 3. Un histograma revela la cantidad de variacin propia de un proceso. Datos necesarios para construir un histograma en Excel Datos de Entrada. Nmeros de clase. Estos son los datos que desea analizar mediante la herramienta Histograma. Estos nmeros representan los intervalos que desea que utilice la herramienta Histograma para medir los datos de entrada en el anlisis de datos.

Paso a Paso: Construccin de un histograma

1. Disear el siguiente cuadro


96 SENATI-Computacin e Informtica

s de datos III

2. Hacer clic en la ficha


cuadro de dilogo.

, se presenta el siguiente

3. Hacer clic sobre la opcin Histograma 4. Hacer clic en el botn Aceptar. Se presenta el siguiente cuadro de dilogo.

Seleccionar rango de entrada y rango de clase segn se muestra en la grfica.

Como opciones de salida hacer clic en la opcin En una hoja nueva.

Hacer clic en Crear grfico. SENATI-Computacin e Informtica 97

Microsoft Office Excel 2007

, se agregar una nueva hoja con el cuadro de 5. Hacer clic en el botn clases, frecuencias y la grfica del histograma.

Interpretacin de un Histograma Se trata de identificar y clasificar la pauta de variacin del conjunto de datos estudiado, que relacione la variacin con el proceso o fenmeno en estudio. El resultado de este anlisis es una teora sobre el funcionamiento del proceso o sobre la causa del problema que se est investigando. A continuacin se presentan pautas de variacin tpicas:
a. Distribucin en forma de campana

Es la distribucin normal. La desviacin respecto a esta forma puede indicar la existencia de problemas externas al proceso. La forma de campana no asegura, por s misma y sin analizar su valor medio y el recorrido de los datos, que el proceso funcione de forma satisfactoria.
Pico

b. Distribucin con doble campana o con doble pico

Representa generalmente la combinacin de dos distribuciones y sugiere la presencia de dos procesos distintos.

Programa N

s de datos III

c. Distribucin plana

Representa un caso tpico de departamentos que no tienen el trabajo bien definido y cada cual lo hace "a su manera".
Varias distribuciones en campana con sus centros distribuidos uniformemente a lo largo del recorrido de los datos.

d. Distribucin en peine

Esta pauta de variacin es tpica de errores de medicin, errores en la forma de agrupar los datos o sesgos sistemticos de redondeo. Debe revisar los procesos de recogida de datos y construccin del Histograma.
Valores altos y bajos se alternan de forma regular

e. Distribucin con un pico aislado

El proceso con el pico pequeo ser una anormalidad o deficiencia que no sucede a menudo o regularmente. Estos picos unidos a distribuciones sesgadas o truncadas indican falta de eficacia en la eliminacin de elementos defectuosos.
Esta forma sugiere la existencia de dos procesos distintos

SENATI-Computacin e Informtica

99

Microsoft Office Excel 2007 f. Distribucin con un pico en el extremo

Esta forma se presenta cuando la cola de una distribucin regular se ha cortado y acumulado en una sola categora en el extremo del recorrido de los datos. Suele indicar un registro poco cuidadoso o sesgado de los datos.
Un pico situado en un extremo de una distribucin regular

g. Distribucin sesgada o truncada

Esta distribucin es tpica de procesos con lmites prcticos a un lado del valor nominal o a datos parciales de un proceso (distribuciones con parte de los datos suprimidos). Distribucin sesgada
Pico descentrado Descendencia brusca de la cola

Distribucin truncada
Descendencia suave de la cola.

Posibles problemas y deficiencias de interpretacin a. Si los datos utilizados no son adecuados (sesgados, inexactos, anticuados, poco significativos, etc) las conclusiones no reflejarn la situacin real. b. Muestra pequea y poco representativa. Se requiere mnimo cuarenta observaciones para cada uno de los Histogramas que se desee realizar. c. Aceptar las conclusiones del anlisis como hechos. La interpretacin de un Histograma es una simple teora y por tanto deber ser confirmada posteriormente mediante el anlisis adicional y la observacin de los hechos reales.

100

SENATI-Computacin e Informtica

s de datos III

Definicin y resolucin de problemas con Solver


Solver se utiliza cuando queremos encontrar la mejor manera de hacer algo. O dicho de un modo ms formal: queremos encontrar los valores de determinadas celdas de una hoja de clculo que optimicen (aumenten o disminuyan) un determinado objetivo.

Generalidades sobre Solver


Un modelo de optimizacin consta de tres partes: la celda objetivo, las celdas cambiantes y las restricciones. a. La celda objetivo representa el objetivo como, por ejemplo, aumentar las ganancias mensuales. b. Las celdas cambiantes son las celdas de la hoja de clculo que podemos cambiar o ajustar para optimizar la celda objetivo como, por ejemplo, la cantidad de cada producto fabricada durante un mes. c. Las restricciones son delimitaciones que se aplican a las celdas cambiantes como, por ejemplo, no usar ms recursos que los disponibles y no producir ms cantidad de un producto que la que pueda venderse.

Carga del programa de complemento Solver


1. Hacer clic en el Botn Microsoft Office 2. Hacer clic en la opcin 3. En el cuadro de dilogo Administrar, hacer clic en la opcin Complementos de Excel y luego hacer clic en el botn Ir. 4. En el cuadro de dilogo Complementos disponibles, active la casilla de verificacin Complemento Solver ,

Hacer clic para carga el complemento Solver

SENATI-Computacin e Informtica

101

Microsoft Office Excel 2007

5. Para terminar hacer clic en el botn

Paso a Paso: Desarrollo de casos utilizando Solver 1. La empresa Comida a su puerta basado en la experiencia del ao anterior sabe que por cada sol gastado en publicidad ingresa aproximadamente como promedio 8.75 soles en pedidos. El negocio est sujeto a variaciones estacinales muy acentuadas. Este ao 2009 se tiene proyectado unos pedidos de 300,000 nuevos soles la pregunta es cuanto se debe invertir en publicidad. 2. Disear el siguiente cuadro se considera 20,000 en inversin en publicidad distribuido entre los 4 trimestres.

=B5*$F$2*B4

=SUMA(B5:E5)

3. Hacer clic en la ficha

, luego hacer clic en el botn

4. Se presenta el cuadro de dilogo parmetros de Solver


Escriba F5. Que define la celda que mostrar el valor en pedidos que se desea alcanzar

Grupo de celdas cambiantes

Valor de la celda objetivo, Monto que deseamos obtener como pedidos

5. Haga clic en el botn


102

para hallar una solucin


SENATI-Computacin e Informtica

s de datos III

Hacer clic para guardar este escenario

6. Hacer clic en el botn

para almacenar esta solucin

7. Para terminar haga clic en el botn solucin.

. Se presenta la siguiente

Paso a Paso: Agregar restricciones a Solver 1. Del ejemplo anterior busque una solucin que mantenga el presupuesto publicitario total por debajo de 25,000. 2. Hacer clic en la ficha Luego hacer clic en el botn 3. Se presenta el cuadro de dilogo parmetros de Solver 4. Hacer clic en el botn .

5. Defina la siguiente restriccin. Presupuesto de publicidad <= 25,000

SENATI-Computacin e Informtica

103

Microsoft Office Excel 2007

6. Haga clic en el botn

. Su cuadro de dilogo debe quedar as.

7. Haga clic en el botn , solucin con la restriccin especificada

. Para mostrar la nueva

Cmo configura Solver


1. Hacer clic en la ficha Luego hacer clic en el botn 2. Del cuadro de dilogo presentado Hacer clic en el botn
104 SENATI-Computacin e Informtica

s de datos III
Se aplica slo a los problemas no lineales. Se indica mediante una fraccin entre 0 y 1. Cuantos ms decimales tenga el nmero, menor ser la convergencia Porcentaje donde la celda objetivo da una solucin satisface las restricciones externas. Una tolerancia mayor tiende a acelerar el proceso de solucin. Tiempo que tarda el proceso de solucin. Tiempo que tarda el proceso de solucin. Debe indicarse la precisin mediante una fraccin entre 0 (cero) y 1. Cuantas ms posiciones decimales tenga el nmero que se escriba, mayor ser la precisin; por ejemplo, 0,0001 indica una precisin mayor que 0,01.

Para resolver un problema de optimizacin lineal. Hace que Solver presuponga un lmite de 0 (cero) para todas las celdas ajustables en las que no se haya establecido un lmite inferior en el cuadro Restriccin Utiliza la extrapolacin lineal de un vector tangente. Utiliza la extrapolacin cuadrtica, que puede mejorar en gran medida los resultados de problemas no lineales

Utilizar la escala automtica cuando haya grandes diferencias de magnitud entre las entradas y los resultados Newton Utiliza un mtodo quasi-Newton que normalmente necesita ms memoria pero menos iteraciones que el mtodo de gradiente conjugada. Progresiva Se utilizan para la mayor parte de los problemas, en los que los valores de restriccin cambian relativamente poco. Central Se utiliza en los problemas en que las restricciones cambian rpidamente, en especial cerca de los lmites. Conjugado Necesita menos memoria que el mtodo Newton, pero normalmente necesita ms iteraciones para alcanzar un nivel de exactitud concreto

3. En este cuadro de dilogo puede especificar sus opciones de clculo.

Modificacin de forma de bsqueda de soluciones en Solver


1. Hacer clic en la ficha Luego hacer clic en el botn 2. Del cuadro de dilogo presentado Hacer clic en el botn

SENATI-Computacin e Informtica

105

Microsoft Office Excel 2007

Cambie las opciones de Estimacin, Derivadas y Buscar para optimizar su modelo

Desarrollo de casos tipo utilizando Solver


1. Disear el siguiente cuadro

2. Ajustar los precios de los productos de forma que el precio de venta al pblico (P.V.P.) (F7) se rebaje a 17000. Se debe tener en cuenta que el precio de cada producto no puede ser superior o inferior a un precio determinado.
Escriba F7. Que define la celda que mostrar el valor en pedidos que se desea alcanzar

Grupo de celdas cambiantes

Valor de la celda objetivo, Monto que deseamos ajustar el precio de venta. 106 SENATI-Computacin e Informtica

s de datos III

3. Hacer clic en la ficha 4. Haga clic en el botn

, luego hacer clic en el botn para hallar una solucin Se presenta la siguiente

5. Para terminar haga clic en el botn primera solucin sin aplicar restricciones.

6. Ahora aplicar a los precios de los productos las siguientes restricciones. B4 > 900 and B4 <1250 B5 > 1300 and B5 <1500 B6 > 1600 and B6 <1850 7. Hacer clic en la ficha , luego hacer clic en el botn

8. Se presenta el cuadro de dilogo parmetros de Solver 9. Hacer clic en el botn parmetros de Solver. se presenta el cuadro de dilogo

Como no se puede comprar fracciones de artefactos modificaremos el rango de celdas cambiantes a: B4:B6

Agregar la siguiente lista de restricciones

8. Haga clic en el botn


SENATI-Computacin e Informtica

para hallar una solucin


107

Microsoft Office Excel 2007

9. Para terminar haga clic en el botn solucin esta vez incluye las restricciones.

Se presenta la siguiente

Cuestionarios
1. Cul es la utilidad de las herramientas de anlisis estadsticos.

2. Cul es la diferencia entre tendencia lineal y geomtrica.

3. Cul es la utilidad de un Histograma.

4. En que aplicara Solver.

5. Cul es la diferencia de las funciones Pronstico y Tendencia.

108

SENATI-Computacin e Informtica

Captulo

Formularios
En este captulo trataremos:
Activacin de la ficha PROGRAMADOR Diseo de formularios Desarrollo de ejemplos tipo con formularios

SENATI-Computacin e Informtica

109

Microsoft Office Excel 2007

Activacin de la ficha programador


La ficha Programador se utiliza cuando vaya a escribir macros, ejecutar macros que haya grabado previamente, o crear aplicaciones para utilizar con programas de Microsoft Office. Tambin puede utilizarlo para el diseo de formularios.

Paso a Paso: Activar la ficha programador

1. Hacer clic en el botn

Botn Office

2. Hacer clic en el botn ,se presenta el cuadro de dilogo Opciones de Excel. 3. Hacer clic en la opcin 4. Se presenta el cuadro de dilogo de opciones ms frecuentes.

Activar la casilla Mostrar ficha Programador en la cinta de opciones.

5. Hacer clic en el botn

para terminar.

110

SENATI-Computacin e Informtica

Formularios

Diseo de formularios
Un formulario es una hoja de clculo con un formato y diseo ya establecido. Puede contener frmulas, funciones e incluso controles (una lista, botones de opcin, casillas de verificacin). Gracias a un formulario limitamos el ingreso y manipulacin de datos a nuestras hojas, as como brindamos soluciones de negocios para nuestros clientes.

Mostrar y ocultar elementos


Lo primero que debemos modificar, es la pantalla de presentacin de nuestra solucin, interfaz que debe ser mucho ms elaborada, ms limpia, sin los elementos propios de una hoja de clculo, como las lneas de divisin o las etiquetas de hojas. Mucho de los elementos que usted nota en Excel pueden ser ocultados, de esta manera lograr que su pantalla sea visualmente ms sencilla y simple. Los elementos que se ocultaran son: Lneas de divisin, Encabezados de fila y Columna y Etiquetas de hojas.

Encabezado de columna

Encabezado de fila

Lneas de divisin

Etiquetas de hojas

Paso a Paso: Modificar el diseo de la hoja 1. Hacer clic en la ficha

2. Hacer clic en el botn

se muestra el siguiente cuadro de dilogo

SENATI-Computacin e Informtica

111

Microsoft Office Excel 2007

Hacer clic para ocultar: Lneas de cuadrcula, Ttulos

3. Hacer clic con el botn derecho de la hoja que desea ocultar, luego hacer clic en el botn Ocultar.

Trabajando con Controles


Los controles nos permiten interactuar con nuestra ventana en forma ms intuitiva, a travs de listas, botones de opcin y botones de comando, tal como si fueran cuadros de dilogos de Windows. Controles de Formularios
CONTROL NOMBRES DETALLES

Botn Etiqueta Campo de texto Cuadro de grupo Casillas de verificacin Botn de opcin Control de nmero Cuadro combinado
112

Permite ejecutar una macro. Macros automatiza procesos repetitivos. Sirve para agregar rtulos al formulario. Sirve para agregar datos al formulario. Para agrupar controles como casillas y botones de opcin. Podr elegir una, varias o ninguna de las opciones. Slo podr elegir una de un grupo de opciones. Para cambiar el valor de una celda Muestra una lista de opciones.
SENATI-Computacin e Informtica

Formularios

Cuadro de lista Barra de desplazamiento

Muestra una desplegables.

lista

de

opciones

Permite es desplazamiento por un objeto.

Uso de los controles de formulario


Los controles tienen la funcin de permitir al usuario indicar las operaciones a realizar. Los controles son el mecanismo que utiliza el usuario para indicar a las acciones a efectuar. A continuacin describiremos los controles ms importantes a utilizarse en Excel. Paso a Paso: Uso del control casilla de verificacin 1. Crear una casilla de verificacin que al activarla permita mostrar el valor del Flete del transporte de un determinado producto, el cual equivale a S/. 20.00; cabe mencionar que si se desactiva la casilla de verificacin mostrar el valor de cero o vaco. 2. Hacer en la ficha , botn

3. Hacer clic en el control casilla de verificacin 4. Clic en cualquier celda de la hoja de clculo 5. Disear el control en la pantalla y vincularlo, es necesario la vinculacin de los controles de formularios con una celda, dado que posteriormente por la celda vinculante aplicaremos lgica para solucionar el problema.

6. Hacer clic derecho sobre este control y elegir la opcin

Hacer clic para activar el control Escribir $E$3 para vincular este control con la celda en mencin

SENATI-Computacin e Informtica

113

Microsoft Office Excel 2007

Las casillas verificacin devuelven como resultado en la celda vinculante Si est activado, devuelve VERDADERO Si est desactivado, devuelve FALSO 7. Para resolver el problema, aplicaremos funciones lgicas en la ceda C2

=SI(E2=VERDADERO;20;0) Tambin puede hacerlo de la siguiente manera =SI(E2;20;0) Dado que el sistema asume por defecto en la condicin lgica la expresin VERDADERO. 8. Ahora recomendamos activar y desactivar la casilla de verificacin y observar que sucede.

Paso a Paso: Uso del control botn de opcin 1. Crear tres botones de opcin que permitan mostrar el Precio a pagar entre tres diferentes equipos de Cmputo. HP Core 2, RAM 4 Mb, HD 250 GB Dell Dual Core, RAM 4 Mb, HD 250 GB IBM Core Quad, RAM 8 Mb, HD 250 GB $ 1,000.00 $ 900.00 $ 1,300.00

2. Hacer en la ficha

, botn

3. Hacer clic en el control botn de opcin 4. Disear la siguiente pantalla

5. Hacer clic derecho sobre el primer botn de opcin y elegir la opcin

114

SENATI-Computacin e Informtica

Formularios

Hacer clic para activar el control Escribir $F$2 para vincular este control con la celda en mencin

6. Repetir este procedimiento para los otros dos controles. 7. Los botones de opcin devuelven como resultado en la celda vinculante: 1 = Si se eligi la primera opcin, Computadora HP 2 = Si se eligi la primera opcin, Computadora DELL 3 = Si se eligi la primera opcin, Computadora IBM 8. Para resolver el problema, aplicaremos la funcin INDICE en la ceda D2

9. Ahora cada vez que hagamos clic, en las opciones de los productos, mostrar el precio que le corresponde. Paso a Paso: Uso de control numrico

1. Abrir el archivo 4 Prestamo Bancario

SENATI-Computacin e Informtica

115

Microsoft Office Excel 2007

Agregar el control numrico para el principal

2. Hacer en la ficha

, botn

3. Hacer clic en el control numrico 4. Agregar el control numrico sobre la celda C3 5. Hacer clic derecho sobre este control y elegir la opcin 6. Se presenta el siguiente cuadro de dilogo defina los datos mostrados en la grfica.

Estos datos se utilizarn en el control numrico que se vincular con el principal, celda B3

Agregar el control numrico para la tasa de inters

7. Hacer en la ficha

, botn

8. Hacer clic en el control numrico 9. Agregar el control numrico sobre la celda C4 10. Hacer clic derecho sobre este control y elegir la opcin 11. Se presenta el siguiente cuadro de dilogo defina los datos mostrados en la grfica.

116

SENATI-Computacin e Informtica

Formularios

Estos datos se utilizarn en el control numrico que se vincular con la tasa de inters, celda C4

12. Finalmente su hoja de clculo queda como se muestra a continuacin.

Utilice estos controles para definir el principal y la tasa de inters. =c4/100

Paso a Paso: Uso del cuadro combinado


1. Crear un Cuadro combinado que permita la eleccin entre tres productos. Computadora HP Optimux Impresora HP 840C Scanner HP 3500 $ 1,000.00 $ $ 150.00 100.00

2. Hacer en la ficha

, botn

3. Hacer clic en el cuadro combinado 4. Agregar el control cuadro combinado sobre la celda A3
5. Disear los cuadros adicionales

SENATI-Computacin e Informtica

117

Microsoft Office Excel 2007

6. Hacer clic derecho sobre el control cuadro combinado y elegir la opcin

7. Se presenta el siguiente cuadro de dilogo defina los datos mostrados en la grfica.

8. Las opciones del Cuadro combinado devuelven como resultado en la celda vinculante: 1 = Si se eligi la primera opcin, Computadora HP Optimux 2 = Si se eligi la primera opcin, Impresora HP 640C 3 = Si se eligi la primera opcin, Scanner 3500 9. Para resolver el problema, aplicaremos la funcin INDICE en la ceda A6

10. Ahora cada vez que hagamos clic, en las opciones de los productos, mostrar el precio que le corresponde.
118 SENATI-Computacin e Informtica

Formularios

Paso a Paso: Ejemplos tipo con formularios 1. Abrir el archivo Controles - para elaborar . XLSX

2. El archivo contiene dos pginas: Cotizacin y Lista de productos

3. La idea es desarrollar la hoja de cotizacin. Comenzaremos con la hoja Lista de productos. Asignaremos nombres de rango a la lista de productos y lista de precios. Para hacer referencia a ellos desde la hoja de cotizacin. Asignar nombre de rango a la lista de productos 4. Seleccionar el bloque de celdas A2:A21 5. Hacer clic derecho sobre el bloque seleccionado, del men presentado elegir la opcin 6. Del cuadro de dilogo presentado en el recuadro Nombre, escriba Productos

SENATI-Computacin e Informtica

119

Microsoft Office Excel 2007

7. Hacer clic en el botn

para terminar

Asignar nombre de rango a la lista de productos y precios 8. Seleccionar el bloque de celdas A2:B21 9. Hacer clic derecho sobre el bloque seleccionado, del men presentado elegir la opcin 10. Del cuadro de dilogo presentado en el recuadro Nombre, escriba ProducPrecio

11. Hacer clic en el botn

para terminar

Insertar control casilla de verificacin en la hoja de cotizacin. 12. Hacer clic para cambiar a la hoja cotizacin

13. Hacer en la ficha

, botn

14. Hacer clic en el control casilla de verificacin


120 SENATI-Computacin e Informtica

Formularios

15. Agregar este control sobre la celda A3

Hacer clic para asignar como nombre: Tarjeta Bonus

16. Hacer clic derecho sobre este control y elegir la opcin

Hacer clic para activar el control Escribir $A$3 para vincular este control con la celda en mencin

Insertar controles botones de opcin

17. Hacer en la ficha

, botn

18. Hacer clic en el control botn de opcin 19. Agregar tres de estos controles sobre las A5 A9 celdas

Hacer clic derecho y luego clic izquierdo para al entrar al modo edicin y cambiar el nombre de los controles. Asignar los nombres mostrados en la grfica.

20. Hacer clic derecho sobre este control y elegir la opcin

SENATI-Computacin e Informtica

121

Microsoft Office Excel 2007

Hacer clic para activar el control Escribir $A$7 para vincular este control con la celda en mencin

21. Repetir el paso 20 para vincular los otros dos controles de opcin con la celda A7 Asignar validacin de datos al rango de celdas A13:A18 22. Seleccionar el bloque de celdas A13:A18
23. Hacer clic en

24. Se presenta el siguiente cuadro de dilogo

Elegir la opcin Lista

Presione la tecla F3 para presentar la lista de nombres de rango, elegir Productos.

25. Hacer clic en el botn


122

para terminar
SENATI-Computacin e Informtica

Formularios

26. Su cuadro de dilogo queda como se muestra en la grfica.

Adicionar las frmulas 27. Ingresar las frmulas mostradas para terminar el mdelo

=SI(ESBLANCO(B13);"";C13*B13) =SI(ESBLANCO(A13);"";BUSCARV(A13;ProducPrecio;2;0))

=SI(A3=VERDADERO;D19*10%;0) =D19*ELEGIR(A7;10%;5%;0)

SENATI-Computacin e Informtica

123

Microsoft Office Excel 2007

Paso a Paso: Ejemplos tipo con formularios 1. Realizar el siguiente diseo y asigne a la hoja el nombre ENCOMIENDA.

ENCOMIENDA

Hoja ENCOMIENDA del libro Proformas.

2. Luego cree el siguiente diseo y asgnele el nombre a la hoja de COSTOS.

COSTO

Hoja COSTOS del libro Proformas. 3. Aada los controles de formulario a su hoja de clculo, para tener un diseo de acuerdo a la figura.

124

SENATI-Computacin e Informtica

Formularios

Formato de control Para terminar con el diseo, debe modificar el formato de los controles para que interacten con celdas de su hoja de clculo. Es decir, por ahora los controles son slo elementos que no se relacionan con la hoja de clculo, al modificar el formato de los controles, logramos que dichos controles se vinculen a celdas y as podemos construir frmulas basadas en los valores de esas celdas. Para modificar el formato de un control Use el men contextual sobre el control. Elija Formato de control

Opcin Formato de control Control numrico Kilogramos Asignarle las siguientes propiedades:

SENATI-Computacin e Informtica

125

Microsoft Office Excel 2007

Valor actual Valor mnimo Valor mximo Incremento Celda vinculante

:0 :1 : 50 :1 : C7

Botones de opcin Normal y Express De igual manera, debe modificar el formato de cada uno de los controles de su formulario. En el caso de los botones de opcin (Normal y Express) debemos indicar una celda con la que se vincule H1.

Al elegir uno de los botones de opcin, la celda H1 toma un valor. Casilla de verificacin Delivery Adems, se debe modificar el formato de la casilla de verificacin (Delivery) para que se vincule con una celda, si la casilla est marcada muestra VERDADERO, si no muestra FALSO. Debemos indicar una celda con la que se vincule H2.

Al activar Delivery, la celda H2 toma un valor lgico Lista Destino Finalmente, debe modificar el formato de la lista. En el caso de una lista o un cuadro combinado, en necesario indicar un Rango de Entrada, es decir el rango que tenga los elementos que desea mostrar en su lista. Adems, debe vincular el control a una celda de su hoja de clculo. Asigne el nombre DESTINO al rango B5:B11 (Hoja Costos).
126 SENATI-Computacin e Informtica

Formularios

Debemos definir un Rango de entrada DESTINO y una celda vinculante H3

Formato del control Lista Observe que la lista se llena con las ciudades indicadas en el rango de entrada.

La lista se llena con las ciudades Observe que al hacer sobre algunas de las ciudades, la celda H3 muestra el nmero del elemento seleccionado de la lista.

La celda H3 muestra el nmero del elemento seleccionado Frmulas relacionadas a controles. Gracias a las celdas vinculadas de sus controles, usted podr definir ciertas frmulas basados en los valores de las celdas vinculadas.

SENATI-Computacin e Informtica

127

Microsoft Office Excel 2007

Calcular el Costo Bsico Debe multiplicar los Kilogramos por el Costo de acuerdo a la ciudad (vea la tabla Costos). Antes de realizar los clculos asigne el nombre COSTO al rango C5:C11. En la celda C16 de la Hoja Encomienda escriba: =INDICE(COSTO; H3) * C7 Gracias a la funcin INDICE podemos ubicar directamente el costo en base al nmero de elemento seleccionado de su lista (recuerde, la celda H3 posee este valor). Calcular el Recargo de Servicio Debe considerar un recargo del 50% del Costo Bsico s el servicios es Express. En la celda C17 escriba la frmula: =SI( H1=2; C16 * 50%; 0) Recuerde: El valor 2 en la celda H1 indica que se ha elegido el tipo Express Calcular Delivery Debe considerar S/. 10.00 si la casilla esta activa y 0 en caso contrario. En la celda C18 escriba la frmula: =SI (H2 = VERDADERO; 10; 0) Recuerde: Si la casilla est activa la celda H2 muestra VERDADERO y sino FALSO. Completar frmulas Escribir frmulas en base las celdas vinculadas de sus controles, sabiendo: Total del Servicio = Suma del Costo + Recargo + Delivery IGV = 19% del Total del Servicio Total a Pagar = Total del Servicio + IGV Pruebe la funcionalidad de sus frmulas, interactuando con sus controles, por ejemplo, haga clic en su control nmero o elija otra ciudad.

128

SENATI-Computacin e Informtica

Captulo

Macros
En este captulo trataremos:
Seguridad de macros Grabar una nueva macro Editar una macro utilizando Visual Basic Eliminar macros Uso de macros en formularios Plantillas con formularios y macros Desarrollo de proyectos con macros y formularios

SENATI-Computacin e Informtica

129

Macros
Cada da las grandes y pequeas empresas estn descubriendo el poder de utilizar conjuntamente las macros con Excel, las compaas requieren de programas informticos realizados a "medida" de sus necesidades, para gestionar de manera automtica, rpida y eficaz los procesos internos del negocio. A la vez muchas personas en su trabajo diario realizan tareas repetitivas frente a sus hojas Excel, desperdiciando das enteros en realizar informes de manera manual los cuales, con un simple clic a un botn en cuestin de segundos estara realizado. Las macros nos permiten automatizar y realizar tareas complejas, aumentando la eficiencia y eficacia del trabajo.

Definicin
Las macros son un grupo de instrucciones programadas bajo entorno VBA (Visual Basic para aplicaciones), cuya tarea principal es la automatizacin de tareas repetitivas y la resolucin de clculos complejos. El lenguaje VBA, es un lenguaje de programacin basado en el Visual Basic, enfocado a la realizacin de programas sobre las herramientas Excel, Access, Word...., mediante macros en VBA podemos crear nuevas funciones para nuestras hojas Excel, personalizar estilos y formatos, crear programas para la resolucin de clculos complejos, automatizar tareas...

Ejemplo de cdigo VBA aplicado en Excel Una vez realizado el cdigo VBA, podemos ejecutar el programa mediante la creacin de botones, nuevos mens... de tal forma que la aplicacin creada resulte intuitiva y de fcil manejo. Tambin puede crear una macro utilizando el Editor de Visual Basic.

Editor de Visual Basic


Entorno en el que puede escribir y modificar cdigo y procedimientos de Visual Basic para Aplicaciones.

SENATI-Computacin e Informtica

131

Microsoft Office Excel 2007

El Editor de Visual Basic contiene un conjunto completo de herramientas de depuracin para buscar sintaxis, tiempo de ejecucin y problemas lgicos en el cdigo en uso en Microsoft Visual Basic para escribir sus propias secuencias de comandos de macro o para copiar toda o parte de una macro en una nueva macro. Una vez creada una macro, puede asignarla a un objeto (como un botn de barra de herramientas, un grfico o un control) para que pueda ejecutarla haciendo clic en ese objeto.

Sin embargo es importante mencionar que usted debe contar con conocimientos de programacin y conocer los objetos de Microsoft Excel.

Para que se utilizan las Macros


Mediante macros VBA podemos crear mltiples aplicaciones que realicen los clculos automticamente y obtengamos resultados en apenas unos segundos. Nos permite automatizar procesos y evitar estar dependiendo de personas con conocimientos superiores para el manejo de procesos diseado especialmente para las necesidades de los usuarios. Las macros VBA trabajan en diversos programas, los ms conocidos son los programas que se incluyen en el paquete Office (Excel ,Word, Access...) pero adems las macros VBA tambin trabajan en diversos programas como SolidWorks, Autocad... (software creado para el diseo de ingeniera) lo cual proporciona una enorme versatilidad de utilizacin, as como una comunicacin entre diversos programas.

132

SENATI-Computacin e Informtica

Macros VBA con Excel


Creacin de nuevas funciones- como por ejemplo la funcin "cdigo" que convierte dgitos alfanumricos a dibujos basados en codificacin de cdigo de barras. Automatizacin de tareas repetitivas- realizacin de informes automticos, conexin con bases de datos y otros programas. Resolucin de clculos complejos e iterativos Creacin de programas, como gestores documentales, software de planificacin.

Ventajas
Realizacin de programas a medida Cada empresa posee sus peculiaridades y caractersticas, en muchas ocasiones se adquieren paquetes de software estandarizado que no cumplen las expectativas inciales y que acaban por no aportar una solucin real a las necesidades del negocio, mediante las macros en Excel cada programa desarrollado se adapta fcilmente a cada tipo de empresa, proporcionando un versatilidad y flexibilidad incomparable.

Rpido y fcil manejo De los programas desarrollados bajo entorno Excel, cuando la empresa adquiere un software nuevo ha de dedicar cierta parte de tiempo en adquirir los conocimientos necesarios para el buen manejo del software, la gran ventaja que nos aporta las macros es que estn desarrolladas bajo Excel, herramienta muy conocida y utilizada en la mayora de las empresas.

Realizacin de tareas y clculos complejos En muchas ocasiones dejamos de utilizar tcnicas conocidas para la resolucin de problemas, que nos podran aportar datos de vital importancia, por la gran complejidad de clculo que conllevan, mediante macros en Excel estas tareas y clculos pasaran a la historia, realizando la propia hoja Excel el trabajo por nosotros.

Aumento de eficacia y eficiencia En el trabajo, puesto que reducimos horas y horas de nuestro trabajo en realizar tareas manuales al convertirlas en automticas, ocupando el tiempo ganado en otros asuntos.

SENATI-Computacin e Informtica

133

Microsoft Office Excel 2007

Seguridad de Macros
Los Macrovirus
Los macro virus son una nueva familia de virus que infectan documentos y hojas de clculo. Fueron reportados a partir de Julio de 1995, cambiando el concepto de aquella poca, de que los virus tan slo podan infectar o propagarse a travs de archivos ejecutables con extensiones .EXE o .COM Hoy en da basta con abrir un documento en Word o una hoja de clculo de Excel infectados para que un sistema limpio de virus sea tambin infectado. Los macro virus tienen 3 caractersticas bsicas: Infectan documentos de MS-Word o MS-Excel y archivos de bases de datos en MS-Access. Poseen la capacidad de infectar y auto-copiarse en un mismo sistema, a otros sistemas o en unidades de red a las cuales estn conectadas. Haciendo uso de las funciones de la interfaz de las libreras MAPI (Messaging Application Programming Interface), desde el sistema infectado se enva a todos los buzones de la libreta de direcciones de MS Outlook y Outlook Express. Parte del MacroVirus Melissa
Private Sub AutoOpen() On Error Resume Next p$ = "clone" If System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") <> "" Then CommandBars("Macro").Controls("Security...").Enabled = False System.PrivateProfileString("", "HKEY_CURRENT_USER\Software\Microsoft\Office\9.0\Word\Security", "Level") = 1& Else p$ = "clone" CommandBars("Tools").Controls("Macro").Enabled = False Options.ConfirmConversions = (1 - 1): Options.VirusProtection = (1 - 1): Options.SaveNormalPrompt = (1 - 1) End If

... ...
End sub

134

SENATI-Computacin e Informtica

A pesar de que los macro virus son escritos en los lenguajes macro de MS-Word o MS-Excel y por consiguiente deberan infectar nicamente a documentos y hojas de clculo, es posible desarrollar macro virus que ejecuten llamadas al sistema operativo, dando rdenes de borrar archivos o hasta de reformatear al disco duro. Otra caracterstica de los macro virus es que sus acciones estn destinadas exclusivamente a un tipo de documento, hoja de clculo o archivo de base de datos, creados en MS-Word, MS-Excel y MS-Access. Cada vez aparecen y se propagan una mayor cantidad de macro virus que los virus de archivos ejecutables y esto se debe a dos simples razones: Los macro virus a pesar de tener acciones muy sofisticadas en sus procesos de infeccin, son sumamente fciles de crear o modificar, pues tan slo es necesario tener nociones de programacin en lenguaje macro. Incluso se distribuyen Generadores de Macro Virus en muchos sitios de Internet. Ahora todos los usuarios intercambian ms documentos que archivos ejecutables, ya sea a travs de diskettes, correo electrnico u otro medio, lo cual alienta a los desarrolladores de virus.

Ayudar a proteger archivos de virus en macros


Las macros se graban en el lenguaje de programacin Visual Basic para Aplicaciones.) dentro de un archivo, plantilla (plantilla: archivo o archivos que contienen la estructura y las herramientas para dar forma a elementos como el estilo y el diseo de pgina de los archivos terminados. Para reducir ms el riesgo de infeccin con virus en los archivos de Office, establezca el nivel de seguridad de las macros y use firmas digitales (firma digital: sello electrnico seguro basado en cifrado para autenticar una macro o un documento. Esta firma garantiza que la macro o el documento fueron creados por el firmante y que no se han modificado.). Para aplicar seguridad hacer los siguientes pasos:
o o

Hacer clic en la ficha Hacer clic en el botn

de la cinta de opciones

SENATI-Computacin e Informtica

135

Microsoft Office Excel 2007

Firmas digitales
Una firma digital en una macro es como un sello de cera en un sobre: confirma que la macro se origin en el programador que la ha firmado y que no se ha modificado. Al abrir un archivo o cargar un complemento que contenga una macro con firma digital, esta firma aparece en el equipo en forma de certificado. El certificado menciona la fuente de la macro, y otra informacin acerca de la identidad e integridad de la fuente. Una firma digital no garantiza necesariamente la seguridad de una macro, por ello el usuario debe decidir si confiar en una macro que lleva firma digital. Cmo obtener un certificado Digital? Puede obtener un certificado digital de una autoridad de certificacin comercial, como VeriSign, Inc. o de su administrador de seguridad interna o profesional de Tecnologas de la Informacin (TI). Tambin puede crear una firma digital mediante la herramienta Selfcert.exe. Para obtener ms informacin acerca de las autoridades de certificacin que ofrecen servicios para productos de Microsoft, vea la lista de Microsoft Root Certificate Program Members (Integrantes del programa de certificados raz de Microsoft). Para agregar un certificado digital Hacer clic en la ficha Hacer clic en el men Se presenta el cuadro de dilogo , , opcin botn

Hacer clic en el botn

Se presenta el siguiente cuadro de dilogo

136

SENATI-Computacin e Informtica

Elegir el certificado desea utilizar

que

Lista de editores de confianza


Al abrir un archivo que incluye macros con firma, se le pregunta si desea confiar en todas las macros originadas en ese editor. Si selecciona esta opcin, agrega el propietario del certificado a su lista de editores de confianza. Antes de decidirse, debe revisar los detalles del certificado digital, como por ejemplo, mirar los campos Emitido para y Emitido por, para determinar si confa en el editor, y mirar el campo Vlido desde para determinar si el certificado es actual. El certificado tambin puede incluir detalles como la direccin de correo electrnico o e sitio Web de la persona que lo ha obtenido. Una vez que haya agregado una persona (o corporacin) a la lista de editores de confianza, Office activar las macros firmadas por este editor sin mostrarle una advertencia de seguridad. De todos modos, se puede eliminar entradas de la lista de editores de confianza. Nota. Cualquier certificado que figure como certificado de confianza en la lista de editores de confianza ser tambin considerado de confianza en Internet Explorer.

Advertencias acerca de plantillas y complementos instalados


Al abrir una plantilla o cargar un complemento desde la carpeta Inicio, las macros del archivo se pueden activar automticamente. De todos modos, puede desactivar la opcin de seguridad Confiar en todas las plantillas y complementos instalados, para recibir una advertencia acerca de estas macros. La advertencia variar en funcin del nivel de seguridad que haya elegido.

SENATI-Computacin e Informtica

137

Microsoft Office Excel 2007

Grabar una nueva Macro


Hacer clic en la ficha , botn Se presenta el siguiente cuadro de dilogo

Escribir el nombre de la Macro Especificar donde se grabar la Macro

Escriba una descripcin de lo que realiza su Macro

Paso a Paso: Grabar una Macro 1. Abrir el archivo 5 Macro1. 2. En la siguiente hoja de clculo crear una macro que permita automticamente ordenar la tabla por categora del empleado.

3. Hacer clic en la ficha


138

, botn
SENATI-Computacin e Informtica

4. Se presenta el siguiente cuadro de dilogo


Escriba como nombre de la Macro OrdenarLista

Hacer clic en el botn

5. A partir de este momento todo accin que realice se grabar como parte d e la Macro 6. Presione las teclas Ctrl + Inicio para ubicarse en la primera celda. 7. Haga un clic en la celda A4, luego presione [Ctrl] + [*] para seleccionar toda la base de datos.

8. Hacer clic en la ficha

, elegir

Elegir la opcin CATEGORA

9. Hacer clic en la ficha

, botn

SENATI-Computacin e Informtica

139

Microsoft Office Excel 2007

Editar una Macro utilizando Visual Basic


La macro se graba en cdigo de Visual Basic en una hoja de mdulo.

Hacer clic en la ficha

, botn

Del cuadro de dilogo presentado elegir su macro.

Elegir la Macro OrdenarLista

Hacer clic en el botn

se muestra el cdigo

Ahora puede modificar el cdigo segn sus nuevos requerimientos.

140

SENATI-Computacin e Informtica

Eliminar macros
Para eliminar una Macro seguir el siguiente procedimiento.

Hacer clic en la ficha

, botn

Del cuadro de dilogo presentado elegir su macro.

Elegir la Macro desea eliminar

que

Hacer clic en el botn

se muestra el cdigo

Referencias Relativas
Una referencia es la ubicacin de una celda en Microsoft Excel, tal como A1, B4. En Microsoft Excel se tiene dos tipos de referencia: Absoluta o relativa. Si configura el tipo de referencia en absoluta, Microsoft Excel lleva un control de la posicin exacta de cada celda seleccionada. Por ejemplo si crea una macro que subraya la celda A1, cuando ejecute la macro siempre va a afectar a la celda A1. Si configura el tipo de referencia en relativa, Microsoft Excel lleva un control de la posicin de cada celda seleccionada en relacin a la celda seleccionada con anterioridad. Por ejemplo si me ubico en la celda A1 y crea una macro que pone en subrayado a la celda B2. Observe que B2 se encuentra una celda a la derecha y una celda hacia abajo de la celda A1. Si me ubico en la celda A4 y ejecuto la macro se pondr en subrayado la celda B5. Ya que esta es la celda que se encuentra una celda ms a la derecha y una celda ms hacia abajo.

SENATI-Computacin e Informtica

141

Microsoft Office Excel 2007

Como usted puede observar configurar como absoluta o relativa tiene sus ventajas segn el caso presentado. Para lograr que las celdas empleadas en su macro sean consideradas como relativas, al grabar una Macros, debe activar Referencias relativa. Usted puede combinar celdas absolutas y relativas en una macro.

Diferencia entre celda relativa y absoluta


Celda absoluta Hace referencia siempre a una celda fija. Ejemplo: Range(A1).Select Selecciona la celda A1

Celda relativa

Se basa en una referencia de celda, la cual si cambia la posicin de las celda que involucra la sentencia, esto se ver reflejado en el resultado. Ejemplo: ActiveCell.FormulaR1C1 = "=R[-1]C+1" Realiza la frmula n = n +1

Paso a Paso: Crear Macro con referencia relativa 1. Hacer clic en la ficha , botn

Uso de Macros en Formularios


Es posible asignar Macros a los controles de un formulario, esto permite mejorar la interfaz de su aplicacin y automatizar sus tareas. Paso a Paso: Asignar Macro a botones 1. Abrir el archivo 5 Macro1. 2. En la siguiente hoja de clculo crear tres Macros:
142 SENATI-Computacin e Informtica

Ordenar_Por_Apellidos Ordenar_Por_Ocupacin Ordenar_Por_Sueldo

3. Hacer clic en la ficha

, botn

4. Se presenta el siguiente cuadro de dilogo


Escriba como nombre de la Macro Ordenar_Por_Apellidos

Hacer clic en el botn

5. A partir de este momento todo accin que realice se grabar como parte de la Macro 6. Presione las teclas Ctrl + Inicio para ubicarse en la primera celda. 7. Haga un clic en la celda A4, luego presione [Ctrl] + [*] para seleccionar toda la base de datos.
SENATI-Computacin e Informtica 143

Microsoft Office Excel 2007

8. Hacer clic en la ficha

, elegir

Elegir la opcin APELLIDOS Y NOMBRES

9. Hacer clic en la ficha

, botn

10. Repetir este proceso para crear a las otras dos Macros. 11. Adicionar los botones de comando a la hoja

12. Hacer en la ficha 13. Hacer clic en el control Botn

, botn

14. Al dibujarla en la hoja de clculo se presenta el siguiente cuadro de dilogo


Elegir Ordenar_Por:Apellidos y hacer clic en el botn

15. Agregar los otros dos botones y asignar la Macro, su hoja debe quedar como se muestra en la grfica, cada vez que presione los botones se ordenar la tabla.

144

SENATI-Computacin e Informtica

Paso a Paso: Asignar Macro a botones de opcin 1. Abrir el archivo 5 Macro1. 2. En la siguiente hoja de clculo crear tres Macros: Filtrar_Afil_AFP Sueldo_Mayor_30000 Elimina_Filtro

3. Hacer clic en la ficha

, botn

4. Se presenta el siguiente cuadro de dilogo


SENATI-Computacin e Informtica 145

Microsoft Office Excel 2007

Escriba como nombre de la Macro Filtra_Afil_AFP

Hacer clic en el botn

5. A partir de este momento todo accin que realice se grabar como parte de la Macro 6. Presione las teclas Ctrl + Inicio para ubicarse en la primera celda. 7. Haga un clic en la celda A4, luego presione [Ctrl] + [*] para seleccionar toda la base de datos.

8. Hacer clic en la ficha

, elegir

Hacer clic sobre el filtro A_AFP.

Desactive la casilla N

146

SENATI-Computacin e Informtica

9. Hacer clic en la ficha

, botn

10. Repetir este proceso para crear a las otras dos Macros. 11. Adicionar los botones de opcin en la hoja

12. Hacer en la ficha 13. Hacer clic en el control Botn

, botn

14. Dibujar los tres botones de opcin en la hoja y asignar sus nombres segn la grfica

15. Hacer clic derecho sobre uno de los botones de opcin 16. Del men contextual presentado elegir la opcin

Elegir la opcin Filtra_Afil_AFP

Hacer clic en el botn para terminar

17. Repetir este procedimiento para signar Macro a los otros dos botones de opcin
SENATI-Computacin e Informtica 147

Microsoft Office Excel 2007

Plantillas con formularios y Macros


Para mejorar la forma de trabajo con archivos semejantes que se generan cada mes, puede disear un modelo y grabarlo como plantilla, esta plantilla puede ncluir Macros y controles de formulario. Una plantilla es un archivo que se utiliza como base para generar nuevos archivos los cuales tienen las mismas caractersticas.

Paso a Paso: Uso de plantillas predefinidas

1. Hacer clic en el botn 2. Hacer clic en el botn

Botn Office,

3. Se presenta el siguiente cuadro de dilogo

Seleccionar la opcin Plantillas instaladas

Seleccionar una de las plantillas mostradas

4. Hacer clic en el botn


148 SENATI-Computacin e Informtica

Paso a Paso: Uso de plantillas de MS Office Online 1. Hacer clic en el botn 2. Hacer clic en el botn 3. Se presenta el siguiente cuadro de dilogo Botn Office,

Seleccionar una de las plantillas Microsoft Office Online

Seleccionar una de las plantillas mostradas

4. Hacer clic en el botn 5. A continuacin se muestran algunas plantillas de Ms Office OnLine

SENATI-Computacin e Informtica

149

Microsoft Office Excel 2007

Crear Plantillas personalizadas


1. Para crear una plantilla disee su hoja de clculo y al guardarla elegir el tipo

150

SENATI-Computacin e Informtica

2. De esta forma puede utilizar esta plantilla para generar nuevos archivos

Utilizar Plantillas personalizadas


1. Para utilizar una plantilla hacer clic en el botn Office , 2. Se presenta el siguiente cuadro de dilogo

Elegir la plantilla que quiera utilizar

Elegir plantillas

Desarrollo de proyectos con Macro y formularios


La Empresa JH Import's dedicada al Rubro de Importacin y Exportacin de Productos en general, ha adquirido una Computadora Core 2 DUO, 2GHZ y 1GB RA, Disco duro 80GB para automatizar los procesos que realiza. La Empresa cuenta actualmente con 50 trabajadores y dentro de los primeros procesos que desea automatizar es de un Sistema para el Control de Pagos implementando controles y Macros a su solucin actual, para lo cual ha contratado los Servicios de un Profesional de Computacin de SENATI, el cual ser el encargado de desarrollar esta aplicacin.
SENATI-Computacin e Informtica

151

Microsoft Office Excel 2007

Consideraciones El Programa que se determin utilizar ser MICROSOFT EXCEL For Windows, ya que se maneja poca informacin y dado el conocimiento de su personal del Suite Office. El Sistema de Planillas ser almacenado en el archivo PLANI2008.XLS y el anlisis ha determinado que ser distribuido en varias hojas de clculo, segn el siguiente flujograma de datos. Flujo Lgico del Programa

Proceso de Automatizacin 1. Automatizacin del Sistema de Planillas 1.1. Crear un nuevo Libro o Cuaderno de Trabajo 1.2. Asignar nombres a las Hojas de Clculo Para una mejor comprensin de donde se encuentra cada Informacin, se le asignarn nombres a todas las hojas segn el Flujo Lgico del Programa (ver parte inferior del libro).

En adelante nos referiremos a las hojas por sus respectivos nombres. 1.3. Automatizacin de la Planilla

152

SENATI-Computacin e Informtica

Recomendamos para los Nombres de Campos utilizar un tipo de letra diferente al de los datos. Ejemplo: Nombres de Campo: Letra Times New Roman 12 puntos y Datos: Letra Arial 10 puntos. Formatear las Hojas de Clculo segn su criterio y darle un aspecto presentable y agradable (utilizar tipos de letras, bordes, sombreados, datos numricos a 2 decimales y en millares, etc.) Hoja: Datos Personales Lo nico que tiene que hacer, es ingresar los datos de los trabajadores conforme se muestra en la hoja de Datos Personales y darle un formato apropiado. Hoja: Tabla AFP Lo nico que tiene que hacer, es ingresar los datos de descuentos de la Tabla de AFP conforme se muestra en la hoja de Tabla AFP y darle un formato apropiado. Hoja: Planilla A. El nico dato ingresado ser el No. DE CARNET. B. Los datos: APELLIDOS Y NOMBRES, OCUPACION, AFILIADO A AFP, CODIGO DE AFP y SUELDO BASICO deben ser extrados de la hoja Datos Personales mediante el campo No. DE CARNET. Para realizar esta operacin de bsqueda y extraccin de datos utilice la funcin BUSCARV... Recomendamos utilizar el Asistente para funciones. Ejemplo: Para extraer los APELLIDOS Y NOMBRES mediante el Campo NUMERO DE CARNET. Pasos: 1.- Ubicarse en la Hoja Datos Personales y anote el No. de columna donde se encuentra el Campo a extraer APELLIDOS Y NOMBRES (ver Hoja Datos Personales celda B57) 2.- Ahora ubquese en la Hoja Planilla, en la celda B10 y realice lo siguiente 3.- Haga Clic en el icono Asistente para funciones o en el men Insertar, Funcin... 4.- Luego, haga Clic en Bsqueda y referencia, BUSCARV 5.- Haga Clic en el primer dato del campo No. CARNET de la Hoja Planilla (Celda A10), mediante el cual se extrae la informacin.
6.- Haga Clic en el recuadro de matriz_a_buscar_en, luego

en la Hoja Datos Personales seleccione el rango A6..K55 y presione la tecla F4 (celdas absolutas), lo cual permitir

SENATI-Computacin e Informtica

153

Microsoft Office Excel 2007

realizar la bsqueda del dato de la celda A10 en el rango especificado. 7.- Haga Clic en el recuadro de indicador_columnas y digite 2 No. de columna a extraer. 8.- Haga Clic en el botn Terminar y copie la frmula (B6 a B59) para extraer los APELL. Y NOMBRES.

C. Clculo de los Ingresos Por poltica de la empresa se le asignar a todos los trabajadores 5% de Bonificacin por Costo de Vida el cual ser deducido del sueldo bsico. BONIFICACION = 5% del SUELDO BASICO Por acuerdo con el sindicato de la Empresa se acord asignar 10 soles por c/hijo como asignacin familiar. ASIGNACION FAMILIAR = 10 * Nmero de hijos El nmero de hijos debe ser extrado de la hoja de Datos Personales. Utilizar funcin BUSCARV... El INCREMENTO es de 10% y slo se les asignar a los trabajadores afiliados a una AFP. Recomendamos utilizar la funcin lgica =SI... para realizar este clculo. El INCENTIVO es de 3% y slo se le asignar a los empleados afiliados a una AFP. Recomendamos utilizar la funcin lgica =SI... para realizar este clculo. El Total de Ingresos se obtiene de la suma de los siguientes campos:
TOTAL INGRESOS = SUELDO BASICO + BONIFICACION + ASIG. FAMILIAR + INCREMENTO + INCENTIVO

D. Aportaciones del Empleado Cuando un trabajador es contratado o estable se le descuenta por Ley IPSS, SNP y FONAVI. Prestaciones de salud 0% el cual ser deducido del Total de Ingresos. IPSS = 0% del TOTAL DE INGRESOS
154 SENATI-Computacin e Informtica

SNP (Seguro Nacional de Pensiones) slo se le debe descontar 11% deducido del Total de Ingresos, a los trabajadores afiliados al SNP (no estar afiliados a una AFP). Recomendamos utilizar la funcin lgica =SI... para realizar este clculo. SNP = 11% del TOTAL DE INGRESOS FONAVI (Fondo Nacional de Vivienda) 0% el cual ser deducido del Total de Ingresos FONAVI = 0% del TOTAL DE INGRESOS Aportaciones de los trabajadores Afiliados a una AFP A los trabajadores afiliados a una AFP se le descuentan adicionalmente los siguientes rubros:
CUENTA INDIVIDUAL = % de Cta. Individual * Total de ingresos SOLIDARIDAD IPSS = % de solid. IPSS * Total de ingresos SEG. INV. GTOS. SEPELIO = % Seg. Inv. Gtos. sepelio * Total de ing COMISION FIJA = VALOR DE LA COMISION FIJA VARIABLE = %Comisin variable * Total de ingresos. COMISION

Para Calcular los datos recomendamos utilizar la funcin lgica =SI(...BUSCARV(... Ejemplo.
=SI(esta Afiliado a AFP,Extraer el % de descuento de la Tabla AFP * Total Ingresos,Caso Contrario 0)

Frmula Hoja Planilla Celda O10: Cta Individual


=SI(D10="S";BUSCARV(E10;'Tabla AFP'!$B$6:$H$12;3);0)*K10

5ta CATEGORIA se le dscta. 15% sobre la cantidad excedida, si su Sueldo (Total Ingresos) excede a 1,200 Recomendamos utilizar la funcin lgica =SI... para realizar este clculo. El Total de Aportaciones del Empleado se obtiene de la suma de lo siguientes campos: TOTAL DSCTO = IPSS+ SNP + FONAVI + CTA. INDIV. + SOLID. IPSS + SEG. INV. GTOS. SEPELIO + COMISION FIJA + COMISION VARIABLE + 5ta CATEGORIA E. Clculo del Total a Pagar TOTAL PAGAR = TOTAL INGRESOS - TOTAL DE DESCUENTOS F. Aportaciones del Empleador - referencial para est planilla Cuando un trabajador es contratado o estable, la Empresa va a aportar por este trabajador por:

SENATI-Computacin e Informtica

155

Microsoft Office Excel 2007

Prestaciones de salud 9% el cual ser deducido del Total de Ingresos. IPSS = 9% del TOTAL DE INGRESOS SNP (Seguro Nacional de Pensiones) slo se le debe descontar 0% deducido del Total de Ingresos, a los trabajadores afiliados al SNP (no estar afiliados a una AFP). Recomendamos utilizar la funcin lgica =SI... para realizar este clculo. SNP = 0% del TOTAL DE INGRESOS FONAVI (Fondo Nacional de Vivienda) 9% el cual ser deducido del Total de Ingresos FONAVI = 9% del TOTAL DE INGRESOS El Total de Aportaciones del Empleador se obtiene de la suma de lo siguientes campos:
TOTAL APORTACIONES DEL EMPLEADOR = IPSS + SNP +FONAVI

MANTENIMIENTO DE LA PLANILLA Una vez culminada la Planilla: Copiar la hoja Planilla a Plani Ago 2008 (Hoja Histrica) Copiar todos las frmulas a valores (para que no cambien su valor si hay modificaciones) Ahora puede generar las Planillas de los siguientes meses, guardando como una Hoja Histrica la Planillas ya realizadas. DISEAR LA HOJA DE DATOS PERSONALES

156

SENATI-Computacin e Informtica

DISEAR LA HOJA DE TABLA AFP

DISEAR LA HOJA DE PLANILLA

DISEAR LA HOJA BOLETA DE PAGO

SENATI-Computacin e Informtica

157

Microsoft Office Excel 2007

Cuestionarios
1. Cules son los pasos para crear una macro.

2. Es posible asignarle un atajo a una macro, para ejecutarlo rpidamente.

3. Para programar en una Macro, que lenguaje de programacin se utiliza.

4. Qu es un Macrovirus.

5. Cual es la utilidad de la creacin de plantillas, aplicando formularios y macros.

158

SENATI-Computacin e Informtica

Captulo

Programacin con VBA


En este captulo trataremos:
Programacin con Visual Basic

SENATI-Computacin e Informtica

159

Microsoft Office Excel 2007

Introduccin al Visual Basic


Microsoft VBA (Visual Basic for Applications) es el lenguaje de macros de Microsoft Visual Basic y viene integrado en aplicaciones de Microsoft Office, como Word, Excel y Access, Powerpoint y Visio. VBA permite acceder a las funcionalidades de un lenguaje orientado a eventos con acceso a la API de Windows. La utilidad de VBA es automatizar tareas cotidianas, el programa generado slo se puede compilar con el documento, hoja o base de datos en que fue creado Visual Basic es una herramienta de diseo de aplicaciones para Windows, en la que estas se desarrollan en una gran parte a partir del diseo de una interface grfica. En una aplicacin Visual Basic, el programa est formado por una parte de cdigo puro, y otras partes asociadas a los objetos que forman la interface grfica.

Objetos

Procedimientos

Cdigo

Es por tanto un trmino medio entre la programacin tradicional, formada por una sucesin lineal de cdigo estructurado, y la programacin orientada a objetos. Combina ambas tendencias. Ya que no podemos decir que Visual Basic pertenezca por completo a uno de esos dos tipos de programacin, debemos inventar una palabra que la defina: PROGRAMACION VISUAL. Pasos para la creacin de un programa en VBA La creacin de un programa bajo Visual Basic lleva los siguientes pasos: Anlisis, planteamiento lgico de la solucin del problema, diagrama de flujo, diseo del formulario, programa.
SENATI-Computacin e Informtica

160

cin con VBA

Anlisis En esta etapa se construye un modelo del problema extrado del mundo real especificando los elementos que alimentan el proceso (especificaciones de entrada), los elementos que se espera produzca el proceso (especificaciones de salida) y se define lo mejor posible al problema en s mismo. Para poder definir bien un problema es conveniente responder a las siguientes preguntas 1. Qu es lo que me pide que realice el problema? 2. Qu datos se requieren ingresar, analice el tipo de dato que necesita (numrico, texto, fecha, hora, ) y su valor inicial? 3. Qu resultado desea hallar, clculos, reportes, consultas, analice el tipo de dato? 4. Qu mtodo puedo utilizar para encontrar este resultado? Requerimientos del anlisis del problema: Anlisis del problema

Definicin del problema

Definir datos de entrada

Definir datos de salida

Planteamiento lgico de la solucin del problema. El planteamiento lgico de basa en la idea que uno tiene para resolver el problema, basado en un modelo matemtico o secuencia de procesos (leer datos, registrar datos, consultar datos, reportar datos, etc.). Diagrama de flujo Es una herramienta que permite plantear una solucin lgica a un problema de computadoras. Diseo del formulario Es la interfaz de comunicacin hombre mquina, tanto para salida de datos como para entrada. Programa El programa est distribuido en: Las propiedades de los controles, los procedimientos (Eventos Click, keypress, etc.)

SENATI-Computacin e Informtica

161

Microsoft Office Excel 2007

Fundamentos de programacin VBA


Los algoritmos se estructuran de diversas formas, en algunos casos simplemente su desarrollo es consecutivo, a este tipo de algoritmos se denomina de estructura secuencial, en otros casos durante el desarrollo secuencial se generan preguntas a este tipo de algoritmos se denomina de estructura condicional y en otros casos generan bucles es decir repeticin de ciertas lneas de programas, a estos algoritmos se denominan de estructura repetitiva. Estructura bsica para cualquier algoritmo a desarrollar:

Declaracin de variables

Captura de datos

Proceso de datos

Salida de informacin

Estructura Secuencial.
Este tipo de algoritmos se caracteriza por que entre sus instrucciones no existen estructuras condicionales ni repetitivas, se desarrollan lnea a lnea hasta culminar con su ejecucin, grficamente se observara de la siguiente manera:

162

SENATI-Computacin e Informtica

cin con VBA

Ejemplo Disear un programa que permita hallar el rea de un triangulo rectngulo si se sabe: rea_tringulo = (B * H) / 2 Donde B es base del triangulo y H es la altura. 1. Anlisis i. Qu te piden que realices? Hallar el rea de un triangulo. ii. Qu datos necesito conocer? Segn la frmula que se muestra debera de conocer la base y la altura. 2. Planteamiento Lgico. El problema se resuelve con una frmula matemtica AR = B*H 3. Definicin de variables de entrada Las variables que se usaran para la captura de la base y la altura son: B y H. 4. Definicin de variables de salida La variable en donde se muestra el rea del triangulo rectngulo es: AR 5. Programa
Sub AreaTriangulo() Dim a B as integer Dim H as integer Dim AR as single B= val (Textbox1.text) H = val (Textbox2.text) AR = (B*H) / 2 Textbox2.text = AR End Sub

Estructura Condicional.
Este tipo de algoritmos se caracteriza por que entre sus instrucciones muestran estructuras condicionales. a. Condiciones Simples. Sentencia SI ENTONCES Se ejecuta un conjunto de instruciones si se cumple la condicin
V Condicin Instrucciones

SENATI-Computacin e Informtica

163

Microsoft Office Excel 2007

b. Condiciones doble. Sentencia SI ENTONCES SINO Se ejecuta un conjunto de instruciones si se cumple la condicin, caso contrario se ejecuta otro conjunto de instrucciones.

F Condicin

Instrucciones_B

Instrucciones_A

Ejemplo Realizar un algoritmo que permita ingresar 2 nmeros, luego determinar si el primer nmero ingresado fue el mayor (mostrar un mensaje). 1. Anlisis. i. Qu te piden que realices? Evaluar 2 nmeros para determinar si el primer nmero ingresado fue el mayor. ii. Qu datos necesito conocer? Los 2 nmeros. 2. Planteamiento Lgico. La forma directa de poder saber si un nmero es mayor a otro es creando una condicin relacional. A > B 3. Definicin de variables de entrada. Se requerirn dos variables, N1 y N2 que representen a los nmeros que se evalan. 4. Definicin de variables de salida. Para este problema no existirn variables de salida debido a que se desea mostrar solo mensajes. 5. Programa
Private Sub CommandButton1_Click() N1 = val(text1.text) N2 = val(text2.text) If n1>n2 then

164

SENATI-Computacin e Informtica

cin con VBA Textbox1.text = El primer nmero es el mayor Else Textbox1.text = El segundo nmero es el mayor End If End Sub

6. Diagrama de Flujo
INICIO
Declaracin de variables N1, N2: entero

N1, N2 F V A>B

El primer nmero no es mayor

El primer nmero es mayor

FIN

Sentencia seleccin-caso
Esta es una estructura de decisin mltiple, evaluar una expresin condicional que podr tomar uno de los n valores distintos que para algunos casos puede tratarse de rangos o valores individuales, segn cumpla con uno de estos.

SENATI-Computacin e Informtica

165

Microsoft Office Excel 2007

Ejemplo Un movil recorre un tramo de la carretera con Movimiento Rectilneo Uniforme (MRU), determinar y mostrar cual es el espacio recorrido: Espacio = Velocidad * Tiempo Adicionalmente mostrar un mensaje que indique el consumo de gasolina segn la tabla:
Espacio Recorrido 0 y 30 31 y 60 61 y 200 Gasolina 1 galn 2 galones 3 o ms galones

1. Anlisis. ii. Qu te piden que realices? Calcular el espacio recorrido y en base a ello mostrar cuanta gasolina se consume. iii. Qu datos necesito conocer? La velocidad y el tiempo (segn formula). 2. Planteamiento Lgico. El desarrollo es simple, solamente deber ingresar la velocidad y el tiempo para calcular el espacio recorrido, en base a ello deber observar la tabla para que desarrolle la estructura correspondiente y muestre el mensaje solicitado. Ejemplo: Si el espacio recorrido es de 25 kilmetros El mensaje es 1 galn. 3. Definicin de variables de entrada. Se requerirn dos variables, V y T que representen a la velocidad y el tiempo respectivamente. 4. Definicin de variables de salida. La variable de salida estar representada por E. 5. Programa.
Private Sub CommandButton1_Click() v = val(text1.text) t = val(text2.text) e = v*t Select case e case 0 to 30 166 SENATI-Computacin e Informtica

cin con VBA text3.text =Debe usar un galn case 31 to 60 text3.text =Debe usar dos galones case 61 to 200 text3.text =Debe usar tres galones End select End Sub

6. Diagrama de flujo.
INICIO
Declaracin de variables V, T, E: entero V, T E=V*T

E
0 y 30 31 y 60 60 y 200

Debe usar 1 galn

Debe usar 2 galones

Debe usar 3 o ms galones

FIN

Estructura Repetitiva.
Conjunto de instrucciones que se repiten un nmero determinado de veces mientras se cumple una determinada condicin o en todo caso se le ha dado un lmite de veces a ejecutar.
Inicio de Bucle

Instruccin 1

Instruccin N

Fin de Bucle

SENATI-Computacin e Informtica

167

Microsoft Office Excel 2007

Contador. Los procesos repetitivos por lo general lo utilizan, ya que necesitan contar los sucesos o acciones internas del bucle. Una Inicio de Bucle de las formas de controlar un bucle es mediante un contador. Un contador es una variable cuyo valor crece o decrece en una cantidad constante por cada vuelta (interaccin) que da el bucle. C=C+1

Inicio de Bucle Fin de Bucle

Acumulador. Es denominado tambin totalizador, es una variable cuya misin es almacenar cantidades o valores resultantes de sumas sucesivas. Realiza la misma funcin que un contador con la diferencia de que el incremento o decremento de cada suma es variable en lugar de constante como en el caso del contador. Ejemplo

AC = AC + N

Fin de Bucle

Desarrollar un algoritmo que permita calcular y mostrar la suma de los n primeros nmeros naturales, deber ingresar el lmite de nmeros a sumar. S = 1 + 2 + 3 + 4 + 5 +... + n 1. Anlisis. i. Qu te piden que realices? Calcular la suma de n nmeros naturales. ii. Qu datos necesito conocer? La cantidad de nmeros a sumar. 2. Planteamiento Lgico. Este problema se puede haciendo uso de acumuladores y contadores. 3. Definicin de variables de entrada. Se requerirn una variable que represente a la cantidad de nmeros a sumar(N). 4. Definicin de variables de salida. Tilizaremos la variable AC. 5. Programa
General Declaraciones Dim i As Byte Dim AC As Integer

168

SENATI-Computacin e Informtica

cin con VBA Private Sub CmdProcesar_Click() List1.Clear AC = 0 For i = 1 To Val(Text1.Text) List1.AddItem Str(i) AC = AC + i Next i Text2 = AC End Sub Private Sub CmdLimpiar_Click() Text1 = 0 Text2 = 0 Text1.SetFocus End Sub Private Sub CmdSalir_Click() If MsgBox("Desea salir?", vbInformation + vbYesNo, "SALIDA") = vbYes Then End End If End Sub

6. Diagrama de flujo
INICIO
Declaracin de variables I, N, AC: entero N AC = 0 Para I=1 Hasta N AC = AC + I AC

FIN

SENATI-Computacin e Informtica

169

Microsoft Office Excel 2007

La ventana del editor de Visual Basic


Para trabajar en el Entorno de Visual Basic, hacer lo siguiente.

Hacer clic en la ficha

, botn

Se presenta la ventana de programacin Visual Basic

Barra de men

Barra de herramienta

Ventana proyecto

de

Formulario Cuadro de herramientas

A continuacin se describen los principales elementos de la ventana de Microsoft Visual Basic. a. Barra de Mens Presenta los comandos que se usan para trabajar con Visual Basic. Adems de los mens estndar Archivo, Edicin, Ver, Insertar, Formato, Depuracin, Ejecutar, Herramientas, Complementos, Ventana y Ayuda. b. Barra de Herramientas Permite un acceso directo (solo un clic) a muchas de las operaciones ms frecuentes utilizadas durante el desarrollo de aplicaciones. c. Cuadro de Herramientas Contiene todos los objetos y controles que se pueden aadir a los formularios para crear aplicaciones.
170 SENATI-Computacin e Informtica

cin con VBA

d. Diseador de Formularios Funciona como una ventana en la que se puede personalizar el diseo de la interfaz de usuario (ventana) de una aplicacin. e. Explorador de Proyectos Lista de los archivos (formularios, mdulos, etc.) del proyecto actual. Un Proyecto es una coleccin de archivos que utiliza para construir una aplicacin. f. Ventana de Propiedades Lista los valores de las propiedades del formulario o control seleccionado que pueden ser modificados durante el diseo del formulario o control. g. Ventana de Cdigo Funciona como un editor para escribir el cdigo (sentencias) de la aplicacin. Cuando se ingresa el nombre de una funcin en la ventana de cdigo, Visual Basic automticamente proporciona el formato o sintaxis de la funcin.

Terminologa de Visual Basic


Conforme trabaje con VBA necesitar estar familiarizado con los siguientes trminos: Trmino Tiempo de diseo Tiempo de ejecucin Formulario Definicin Es el momento en el que se construye la aplicacin. Es el momento en el cual ejecutamos aplicacin. ES el contenedor de los controles donde se disea la aplicacin, tambin conocida como interfaz de usuario. Representacin grfica de objetos tales como botones, cuadros de lista, cuadros de edicin, etc. Un trmino general usado para describir todos los formularios y controles que forman parte de la aplicacin. Los valores de un objeto, tales como tamao, ttulo, color, etc. Las acciones que un objeto puede realizar sobre s mismo. Son acciones reconocidas por un formulario o control. Los eventos ocurren a medida que el usuario interacta

Controles Objetos

Propiedades Mtodos Eventos

SENATI-Computacin e Informtica

171

Microsoft Office Excel 2007

con los objetos de la aplicacin. Programacin controlada por eventos La programacin controlada por eventos es la esencia de las interfaces grficas de usuario; el usuario acciona y el cdigo responde.

Programacin por eventos


En las aplicaciones manejadas por eventos, la ejecucin no sigue una ruta predefinida. En vez de esto, se ejecutan diferentes secciones de cdigo en respuesta a eventos. La secuencia de eventos determina la secuencia en que el cdigo se ejecuta. Es por esto que la ruta que sigue el cdigo de la aplicacin es diferente cada vez que se ejecuta el programa.

Convenciones para los nombres de los objetos


Los objetos deben llevar nombres con un prefijo coherente que facilite la identificacin del tipo de objeto. A continuacin se ofrece una lista de convenciones recomendadas para algunos de los objetos permitidos poro Visual Basic.

Tipo de Control Etiqueta Cuadro de texto Casilla de verificacin Botones de opcin Cuadro combinado, cuadro lista desplegable Cuadro de lista Botn de comando Formulario Marco Lnea Imagen (Picture) Cuadro de nmero

Prefijo lbl txt chk opt cbo lst cmd frm fra lin pic spn

Detalles lblAPELLIDOS txtAPELLIDO chkIMPRESORA optCPU cboCUDADES lstPAISES cmdSALIR frmENTRADA fraTIPOS linVERTICAL picLOGOTIPO spnPGINAS

172

SENATI-Computacin e Informtica

cin con VBA

Formularios
El formulario es el principal medio de comunicacin entre el usuario y la aplicacin. Los usuarios interactan con los controles sobre el formulario para ingresarle datos y obtener resultados, para mostrar las propiedades de un objeto pulsar F4. Propiedades BackColor Caption Enabled Left y Top Name Eventos Activate Click Deactivate Ocurre cuando el formulario se convierte en la ventana activa. Ocurre cuando hace clic sobre el formulario. Ocurre cuando el formulario deja de ser la ventana activa. Color de fondo del formulario. Texto en la barra de ttulo del formulario. True/False. Determina si est habilitado para responder a las acciones del usuario. Ubicacin del formulario. Nombre del formulario.

Aadir controles al formulario Para aadir controles a un formulario lo hacemos de la siguiente manera: 1. Haga clic sobre el control en el Cuadro de Herramientas. 2. Ubique el puntero del Mouse (una cruz) sobre el formulario en la esquina superior izquierda donde desea colocar el control. 3. Realice un clic sostenido mientras arrastra el puntero a la esquina superior derecha donde colocar el control. 4. Suelte el botn del Mouse. Estos cuatro pasos se repiten con cada control que desea aadir al formulario. La Ventana de Cdigo La Ventana de Cdigo se usa para escribir, mostrar y editar el cdigo de su aplicacin. Puede abrir una ventana de cdigo por cada mdulo de su aplicacin, de modo que puede fcilmente copiar y pegar entre ellos. El editor de texto es solo un editor ASCII.
SENATI-Computacin e Informtica 173

Microsoft Office Excel 2007

La Ventana de Cdigo contiene:

Lista de objetos

Lista de eventos

La barra de divisin

a. El Cuadro Lista de Objetos Muestra el nombre del objeto seleccionado. Haga clic en la flecha a la derecha del cuadro Objeto para mostrar una lista de todos los objetos asociados con el formulario. b. El Cuadro Lista de Eventos Muestra todos los eventos reconocidos para el formulario o control mostrado en el cuadro Objeto. Cuando seleccionamos un evento, en la ventana de cdigo se muestra el procedimiento de evento asociado con ese evento. Ejemplo: c. La Barra de Divisin Permite dividir la ventana de cdigo en dos partes.

Editando Cdigo
Use las caractersticas de edicin de Visual Basic para que su cdigo sea ms fcil de leer. Sangra Use la sangra para diferenciar partes de su cdigo, tales como estructuras repetitivas y condicionales. Veamos el siguiente ejemplo:
Private Sub cmdIngresar_Click() If Len(Trim(txtUsuario))=0 Then txtUsuario.SetFocus ElseIf Len(Trim(txtContrasea))=0 Then txtContrasea.SetFocus ElseIf txtContrasea = AGPS Then
Para aplicar sangra a una seccin de sentencias de un cdigo use la tecla Tab.

174

SENATI-Computacin e Informtica

cin con VBA MsgBox La clave ingresada es correcta Unload Me Else MsgBox La clave ingresada no es vlida txtContrasea.SelStart=0 txtContrasea.SelLength= Len(Trim(txtContrasea)) txtContrasea.SetFocus End If End Sub

Comentarios El aadir documentacin y comentarios a su cdigo permite comprender mejor lo que hace el cdigo. El texto que contine al smbolo de comentario ser ignorado en la ejecucin de la aplicacin. Veamos el siguiente ejemplo:
Private Sub cmdLimpiar_Click() 'Este procedimiento limpia la ventana de identificacin txtUsuario.Text = "" 'Limpia el cuadro de texto txtUsuario.SetFocus ' Mueve el enfoque a txtUsuario End Sub
Un comentario se inicia con el carcter apstrofe ( )

Creacin y uso de procedimientos


En las aplicaciones tradicionales o procedurales, es la aplicacin quien controla que porciones de cdigo se ejecuta, y la secuencia en que este se ejecuta. La ejecucin de la aplicacin se inicia con la primera lnea de cdigo, y sigue una ruta predefinida a travs de la aplicacin, llamando procedimientos segn sea necesario.

Procedimientos
Existen dos tipos de procedimientos con los que se trabaja en Visual Basic: los procedimientos de evento y los procedimientos generales.

Procedimientos de Evento
Visual Basic invoca automticamente procedimientos de evento en respuesta a acciones del teclado, del ratn o del sistema. Cada control tiene un conjunto fijo de procedimientos de evento. Los procedimientos de evento para cada control son mostrados en un cuadro de lista despegable en la ventana de cdigo.

SENATI-Computacin e Informtica

175

Microsoft Office Excel 2007

El cdigo que se escriba en el procedimiento de evento Click es ejecutado cuando el usuario haga clic en un botn de comando.

Procedimientos Generales
Son procedimientos Sub o Function que son creados para que lleven a cabo tareas especficas. Para crearlos hacer clic en el men Insertar, Procedimiento. Si se tiene cdigo duplicado en varios procedimientos de evento, se puede colocar el cdigo en un procedimiento general y luego invocar al procedimiento general desde los procedimientos de evento.

Procedimientos Sub
Los procedimientos Sub no retornan valores. Por ejemplo:
Public Sub Seleccionar(Cuadro As TextBox) Cuadro.SelStart = 0 Cuadro.SelLength = Len(Cuadro.Text) End Sub

Los procedimientos Sub son invocados especificando slo el nombre del procedimiento, o empleando la instruccin Call con el nombre del procedimiento. Por ejemplo:
Call Seleccionar(Text1)

Si se emplea la instruccin Call, se debe encerrar la lista de argumentos entre parntesis. Si se omite Call, tambin se deben omitir los parntesis alrededor de la lista de argumentos.

176

SENATI-Computacin e Informtica

cin con VBA

Procedimientos Function
Los procedimientos Function devuelven valores. En el siguiente ejemplo, el procedimiento Function recibe un nmero y devuelve ese nmero al cuadrado.
Public Function Cuadrado(N As Integer) As Integer Cuadrado = N * N End Function

Si se desea guardar el valor devuelto, se debe usar parntesis cuando se invoque a la funcin, como se muestra a continuacin:
Resultado = Cuadrado (5)

Si se omiten los parntesis, se puede ignorar el valor devuelto y no guardarlo en una variable. Esto puede ser til si se quiere ejecutar una funcin y no se desea el valor devuelto. Por ejemplo:

mbito de las variables.


Denominamos mbito de una variable a las partes del programa donde esa variable est declarada. Para entenderlo mejor, veamos someramente la forma de un programa desarrollado en VB. A estas partes las habamos llamado Procedimientos. Podemos tener procedimientos que no estn relacionados con ningn evento ocurrido al formulario o a sus controles. (Los Procedimientos que iremos insertando a lo largo de la aplicacin). :
Aqu puede insertar proc. y funciones del mdulo. Si se declara una variable dentro de un procedimiento o Funcin, esa variable tiene como mbito el Procedimiento o Funcin donde se declar.

En un Formulario, una variable puede declararse de dos formas: Privada o Pblica. Variable Privada tiene como mbito slo el proc. y funcin donde fue declarada Variable Pblica tiene como mbito todos los proc. y funciones del formulario y sus controles. Variable a nivel de formulario debe declararse en la seccin de declaraciones, que est la ventana de cdigo Objeto = General, Proc. = Declaraciones. Tiene como mbito todo el formulario En un Mdulo una variable puede declararse como Privada, con lo que no saldr de ese Mdulo, o Pblica, pudiendo en este caso usarse en todo el programa

No es recomendable declarar variables con el mismo nombre.


SENATI-Computacin e Informtica 177

Microsoft Office Excel 2007

Formas de declaracin de variables en un proyecto VB. Sentencia Dim


Es la forma ms comn de declarar una variable como Privada. Puede emplearse en un Procedimiento, Funcin, Formulario o Mdulo. La sintaxis es de la siguiente forma:
Dim nombrevariable As Integer
Su mbito depende donde la declaro. Cada vez que entremos al formulario, procedimiento o mdulo, esa variable tomar el valor cero (si es numrica) o nulo (si es string).

Sentencia PRIVATE

Es la forma de declarar una variable como Privada. Puede emplearse solamente en la seccin de declaraciones de un Formulario o Mdulo. La sintaxis es de la siguiente forma:
Private nombrevariable As Tipovariable del Formulario o Mdulo donde se
declar. La variable NO puede utilizarse fuera

La sentencia Private no puede usarse en un procedimiento o funcin.

Sentencia PUBLIC
Puede emplearse solamente en la seccin de declaraciones de un Formulario o Mdulo. La sintaxis es de la siguiente forma:
Public nombrevariable As Tipovariable

Para nombrarla, si estamos en el Formulario donde se declar basta con citarla por su nombre. Si no estamos en ese Formulario, habr que citarla por el nombre del Formulario, seguido del nombre de la variable, separado por un punto:
NombreFormulario.Nombrevariable

Si se declara de esta forma en la seccin de declaraciones de un Formulario, esa variable puede usarse en toda el programa.

Sentencia GLOBAL
Una variable declarada como Global es reconocida en cualquiera de los formularios y mdulos del proyecto. La sintaxis es:
Global nombrevariable As tipovariable
La sentencia Global slo puede usarse en el apartado de declaraciones de un Mdulo.

Sentencia STATIC
Variable esttica permite retener el valor de la variable cuando se vuelve a invocar el proc. o funcin. Esta declaracin como esttica se realiza mediante la instruccin Static
Static nombrevariable As tipovariable
Slo `puede declararlo dentro de un procedimiento o funcin.

178

SENATI-Computacin e Informtica

cin con VBA

Pese a que Visual Basic no obliga a declarar variables, es muy til hacerlo. De esta forma se tiene control sobre el programa. La experiencia se lo ir demostrando.

Resumen de declaracin de variables


Procedimiento Procedimiento, como permanente La variable no puede usarse Dim Variable As fuera de esta Procedimiento Tipovariable La variable no puede usarse Static Variable As fuera de este procedimiento, y Tipovariable dentro de l conserva el valor aunque se salga y se vuelva a entrar Solamente se puede usar en Dim Variable As ese Formulario Tipovariable Private Variable As Tipovariable Puede usarse en toda aplicacin la Public Variable As Tipovariable

Formulario En su seccin de declaraciones, como Privada Formulario En su seccin de declaraciones, como Pblica Mdulo Como Privada

Solamente puede usarse en Dim Variable As ese Mdulo Tipovariable Private Variable As Tipovariable

Mdulo Como Pblica

Puede usarse en toda aplicacin

la Public Variable As Tipovariable Global Variable As Tipovariable

Forma de conocer el tipo de una variable. Funcin TypeName


Podemos conocer el tipo con el que se ha declarado una variable. Esto se hace mediante la Funcin TypeName, que devuelve una cadena con el tipo de una variable.
MiTipo = TypeName(NombreVariable)

NombreVariable puede ser cualquier variable con excepcin de las de tipos definidos por el usuario.
SENATI-Computacin e Informtica 179

Microsoft Office Excel 2007

La cadena de caracteres devuelta por TypeName puede ser una de las siguientes: Cadena devuelta Byte Entero Largo Simple Doble Moneda Fecha Cadena Boolean Error Empty Null Objeto Desconocido Nada La variable contiene Un byte Un entero. Un entero largo. Un nmero de punto flotante de precisin simple. Un nmero de punto flotante de precisin doble. Un valor de moneda. Una fecha. Una cadena. Un valor Boolean. Un valor de error. No inicializado. No hay datos vlidos. Un objeto que no respalda Automatizacin OLE. Un objeto de Automatizacin OLE cuyo tipo es desconocido. Una variable de objeto que no se refiere a un objeto.

Si NombreVariable es una matriz, la cadena devuelta puede ser cualquiera de las cadenas posibles con un parntesis vaco adherido. Por ejemplo, si NombreVariable es una matriz de enteros, TypeName devolver "Integer()".

Objetos propiedades, mtodos y eventos


Control Etiqueta (Label)
Se utiliza para mostrar texto que el usuario no puede modificar. Generalmente para identificar otros controles en el formulario o para mostrar instrucciones al usuario. Propiedades Name AutoSize Caption Font Nombre del control. True/False. Determina si el tamao del control se ajusta automticamente al texto que contiene. Texto que muestra el control. Establece la fuente, estilo y tamao para el texto del control.
SENATI-Computacin e Informtica

180

cin con VBA

Control Cuadro de Texto (Textbox)


Se utiliza para que el usuario le proporcione datos a la aplicacin o para que la aplicacin le devuelva la informacin al usuario. El texto que se muestra en el control puede ser cambiado por el usuario. Propiedades Enabled Font Locked MaxLength MultiLine Name PasswordChar Text Visible Eventos Change KeyDown Ocurre cuando cambia el texto que contiene el control. Ocurre cuando el usuario presiona una tecla mientras el control tiene el enfoque. True/False. Establece un valor que determina si el control puede responder a eventos generados por el usuario. Establece la fuentes, estilo y tamao para el texto del control. True/False. Determina si es posible modificar el texto en el control. Establece la longitud mxima permitida para el texto en el control. Establece si el control puede aceptar mltiples lneas de texto. Nombre del control. Carcter utilizado para ocultar el texto que realmente contiene el control. Texto que realmente contiene y muestra el control. Establece si el control ser visible para el usuario.

Control Botn de Comando (Commandbutton)


Permite que la aplicacin inicie, interrumpa o termine Propiedades Caption Font Name Visible Eventos Click Ocurre cuando se hace clic sobre el botn. Establece el texto que muestra el botn. Establece la fuente, estilo y tamao para el texto del control. Nombre del botn. True/False. Establece si el botn ser visible para el usuario. un proceso.

SENATI-Computacin e Informtica

181

Microsoft Office Excel 2007

Estableciendo Propiedades
Al disear la interface de usuario de una aplicacin Visual Basic, se deben establecer la propiedades para los controles (objetos) creados. Estableciendo Propiedades en Tiempo de Diseo Algunas propiedades pueden ser establecidas en tiempo de diseo. Para establecer estas propiedades se emplea la ventana de propiedades. Si selecciona varios objetos a la vez y accede a la ventana de propiedades, slo se mostrarn las propiedades que son comunes para todos los controles seleccionados. Cualquier cambio que se haga a una propiedad ser aplicada a todos los controles.
Para acceder a la ventana de propiedades, oprima en botn secundario del ratn sobre un objeto, y luego haga clic en Propiedades. Tambin se puede obtener el mismo resultado seleccionado el objeto y luego presionando F4

Estableciendo Propiedades en Tiempo de Ejecucin En tiempo de ejecucin, se puede escribir cdigo para establecer u obtener el valor de una propiedad.
txtData.Font.Bold = True
La siguiente lnea de cdigo establece a negrita la fuente de un cuadro de texto llamado txtData.

Este cdigo establece la propiedad Text del cuadro de texto txtData


txtData.Text = "Hola mundo"
Establece el valor del texto

Si se omite el nombre de la propiedad, se establece la propiedad predeterminada del control. La propiedad predeterminada de un cuadro de texto es la propiedad Text. La propiedad predeterminada de una etiqueta es la propiedad Caption. Las siguientes lneas de cdigo establecen las propiedades predeterminadas text y caption de un cuadro de texto y de una etiqueta.
Se establece la propiedad Text del cuadro de texto

txtData = Pedro lblData = "Nombre

Se establece la propiedad Caption de la etiqueta

182

SENATI-Computacin e Informtica

cin con VBA

Obteniendo Propiedades en Tiempo de Ejecucin Puede emplear el siguiente cdigo para obtener el valor de una propiedad en tiempo de ejecucin.
Dim sNombre as String sNombre = txtName.Text

Asigna a la variable sNombre el valor del cuadro de texto txtName

Definicin de variables, tipos de datos y constantes


Una variable es un lugar de memoria en la memoria del computado. Es un nombre que en el programa le asignamos a un dato. Ese dato podr cambiar.
Variable

Piense por ejemplo, en un programa consistente en la toma de datos de los alumnos de un centro escolar. Existirn varias Valor de la variable variables para poder introducir los datos de los alumnos. Estas variables pueden tener nombre tales como:
Nombre, Apellido_Paterno, Apellido_Materno, Direccion, Telefono,

La variable Nombre tomar valores distintos segn vayamos introduciendo los datos de los distintos alumnos. Es posible, que a lo largo de la ejecucin del programa, esta variable Nombre contenga los datos: Option Explicit Obliga a declarar previamente las variables que se vayan a usar. Esta declaracin debe ponerla al comienzo de la seccin de declaraciones de cada formulario y mdulo que contenga su aplicacin.

Tipos de Variables
Las variables pueden ser de los siguientes tipos: (El nmero indicado en segundo lugar indica el nmero de Bytes que ocupa en memoria.) VARIABLE ESPACIO QUE OCUPA Booleana Byte 2 Bytes 1 Bytes DETALLES

Admite los valores 0 y 1, o True (verdadero) y False (falso) Nmeros enteros, en el rango de 0 a 255

SENATI-Computacin e Informtica

183

Microsoft Office Excel 2007

Integer Long Single Doble Currency

2 Bytes 4 Bytes 4 Bytes 8 Bytes Entero, con punto decimal fijo (Tpico de monedas) *

Nmeros enteros en el rango de -32768 a 32767 Nmeros enteros en el rango de -2147483648 a 2147483647 Punto flotante, simple precisin Punto flotante, doble precisin.

String

Cadenas alfanumricas de longitud variable o fija. Una variable tipo String ocupa el mismo nmero de bytes que caracteres tenga la cadena.

Date Objet Variant

8 Bytes 4 Bytes *

Fechas Referencia a objetos Otros tipos de datos. Una variable tipo Variant ocupa 16 bytes si se trata de un nmero y 22 bytes + longitud de la cadena si se trata de un dato tipo cadena de caracteres.

Los bytes necesarios para almacenar esa variable dependern de los datos que se hayan definido. NOTA. Observe en la lista anterior que un dato Booleano ocupa 2 Bytes, mientras que un dato tipo Byte ocupa un byte. En muchas ocasiones declaramos variables tipo Boolean con la intencin de que ocupen menos espacio.

Declaracin de variables
Para declarar una variable se utiliza la sentencia Dim. Sintaxis: Dim nombre_variable As Tipo_variable

Tipos de variables
A continuacin se describen los tipos de variable.

184

SENATI-Computacin e Informtica

cin con VBA

a. Variables Alfanumricas
Es toda informacin que va a contener texto o la unin de textos y nmeros; informacin que no representa clculos matemticos. Ejemplo: Nombre de una persona Apellido Paterno de una persona Direccin de una persona Dim nombres As String Dim apel_pat As String Dim direccion As String

Definiendo la cantidad de caracteres que aceptar la variable Dim nombres1 As String Dim nombres2 As String *15
nombres1 puede tener cualquier nmero de caracteres. nombres2 puede tener un mximo de 15 caracteres.

En el caso del DNI, cdigo postal, No. De calle, piso del edificio, etc. Es recomendable declararlo como cadena. Para ahorrar memoria.

b. Variable Numricas
Qu variables debemos declarar entonces como numricas ? La respuesta es bien sencilla: Aquellas que van a contener datos con lo que vamos a realizar operaciones matemticas. Ejemplo:
Edad de una persona Nota de un curso Sueldo Bsico Bonificaciones Dim nombres As Byte Dim nota1 As Byte Dim basico As Single Dim boni1 As Single

Las variables booleanas (True/False) pueden en muchos casos sustituirse por una variable del tipo Byte. Si ese datos True / False se va a introducir en una base de datos o en fichero en el disco, puede ser ms prudente poner 0 en vez de False y 1 en vez de True. Una variable byte ocupa muy poco, simplemente 1 byte como su nombre indica. Pero no puede contener nmeros mayores de 255 ni nmeros negativos. Cada vez que declare una variable numrica piense en los valores que puede tener, sobre todo cuando esa variable va a ser el resultado de una operacin matemtica. Recuerde el escaso margen de una variable tipo Integer ( de -32768 a 32767) Si la aplicacin va a tratar moneda, piense en la forma de expresar los nmeros decimales y el nmero de ellos permitidos, as como el redondeo.
SENATI-Computacin e Informtica 185

Microsoft Office Excel 2007

La variable correcta para este caso es Currency, pero Currency le aade automticamente el tipo de moneda de cada pas lo que con frecuencia es un engorro. Los datos del tipo de moneda los toma del sistema operativo del ordenador, por lo que no se extrae si le expresa el nmero en dlares. Cambie el pas en su Sistema Operativo Windows.

c. Variable Date
Otro tipo de variable es Date. Este tipo de variable representa una fecha. Ejemplo: Fecha de nacimiento de una persona Dim fnac As Date

d. Variable Boolean
Este tipo de variable representa dos valores TRUE (verdadero) o FLASE (falso). Ejemplo: Sexo Dim sexo As Boolean

Error tpico de un programador novel Creo que esta costumbre viene del lenguaje C. Pero no vale en VB. Se trata de declarar varias variables juntas en una misma lnea: Dim Variable1, Variable2, Variable3, Variable4 As String Esta declaracin est MAL hecha. Visual Basic interpretar que Variable1, Variable2 y Variable3 son del tipo Variant, y solamente Variable4 la supone como tipo String La forma correcta de hacerlo, si queremos declarar esas variables un una sola lnea, es la siguiente : Dim Variable1 As String, Variable2 As String, Variable3 As String, Variable4 As String.

Constantes
Una constante es un nombre significativo que sustituye a un nmero o una cadena que no vara. Hay dos orgenes para las constantes: Constantes intrnsecas o definidas por el sistema proporcionadas por Visual Basic. Las constantes simblicas o definidas por el usuario se declaran mediante la instruccin Const.

186

SENATI-Computacin e Informtica

cin con VBA

La sintaxis para declarar una constante es la siguiente: [Public|Private] Const nombre_constante [As tipo] = expresin El argumento nombre_constante es un nombre simblico vlido (las reglas son las mismas que para crear nombres de variable) y expresin est compuesta por constantes y operadores de cadena o numricos; sin embargo, no puede utilizar llamadas a funciones en expresin. Una instruccin Const puede representar una cantidad matemtica o de fecha y hora:
Const conPi = 3.14159265358979 Public Const conMaxPlanetas As Integer = 9 Const conFechaSalida = #1/1/95#

Se puede utilizar tambin la instruccin Const para definir constantes de cadena:


Public Const conVersion = 07.10.A Const conNombreClave = Enigma

Puede colocar ms de una declaracin de constante en una nica lnea si las separa con comas:
Public Const conPi=3.14, conMaxPlanetas=9, conPobMundial=6E+09

Operadores
a. Aritmticos ^ * / \ Mod + & Exponenciacin Multiplicacin Divisin Divisin entera Residuo entero (Ejm: A Mod B) Suma Resta Concatenacin de cadenas

b. Comparacin = <> < Igual Distinto Menor que

SENATI-Computacin e Informtica

187

Microsoft Office Excel 2007

<= >= Like * ? #

Menor o igual Mayor o igual Compara dos cadenas Cero o ms caracteres (Ejm: cad Like ma*) Cualquier carcter Cualquier dgito (0-9)

c. Lgicos And Or Xor Not Y lgico O lgico O Exclusivo Negacin

Construcciones: If then, Select Case


Las estructuras condicionales le permiten controlar el flujo de ejecucin del programa. A continuacin se describen las estructuras de control

Condicional simple. If .. then


Use la estructura If...Then para ejecutar una o ms instrucciones basadas en una condicin. Puede utilizar la sintaxis de una lnea o un bloque de varias lneas:
If condicin Then Sentencias If condicin Then Sentencias End If

Donde: Condicin. Es una expresin lgica, que devuelve un valor lgico: Verdadero o falso. Ejemplo:
If cualquierFecha < Now Then CualquierFecha = Now o If cualquierFecha < Now Then CualquierFecha = Now End If
De este otro modo se pueden ejecutar varias lneas de cdigo If then en una sola lnea, slo puede ejecutar una lnea de cdigo

188

SENATI-Computacin e Informtica

cin con VBA

Condicional doble If...Then...Else


Utilice un bloque If...The...Else para definir varios bloques de sentencias, uno de los cuales se ejecutar:
If condicin1 Then [bloque de sentencias 1] Se evala esta condicin si es verdadera se ejecuta el [ElseIf condicin2 Then [Else [bloque de sentencias n]] End If
bloque de sentencias 1

[bloque de sentencias 2]] ...

Si es falsa la condicin1, evala la condicin2, si es verdadera ejecuta el bloque de sentencias 2 Si no se cumple ninguna condicin se ejecuta el bloque de sentencias n

Por ejemplo, la aplicacin podra realizar distintas acciones dependiendo del control en que se haya hecho clic de una matriz de controles de men:
Private Sub mnuCut_Click (Index As Integer) If Index = 0 Then Comando Cortar CopyActiveControl Llama a procedimientos generales ClearActiveControl ElseIf Index = 1 Then Comando Copiar CopyActiveControl ElseIf Index = 2 Then Comando Borrar ClearActiveControl Else End If End Sub o If ClaveUsuario=DSI Then Permite al usuario entrar al sistema ... ... Else Mostrar un mensaje advirtiendo error en la clave ... ... End If Comando Pegar PasteActiveControl

SENATI-Computacin e Informtica

189

Microsoft Office Excel 2007 o Private Sub DeterminaCondicin ( ) If Val (txtPromedio) >=13 Then txtCondicin = Aprobado ElseIf Val (txtPromedio) >= 10 Then txtCondicin = Asistente Else txtCondicin = Desaprobado End If End Sub

Observe que siempre puede agregar ms clusulas ElseIf a la estructura If...Then. Sin embargo, esta sintaxis puede resultar tediosa de escribir cuando cada ElseIf compara la misma expresin con un valor distinto. Para estas situaciones, puede utilizar la estructura de decisin Select Case.

Condicional mltiple Select Case


Visual Basic proporciona la estructura Select Case para ejecutar selectivamente un bloque de sentencias entre varios bloques. La estructura Select Case funciona con una nica expresin de prueba que se evala una vez solamente, al principio de la estructura. Visual Basic compara el resultado de esta expresin con los valores de cada Case de la estructura. Si hay una coincidencia, ejecuta el bloque de sentencias asociado a ese Case:
Selec Case expresin_prueba [Case lista_expresiones1 [bloque de sentencias 1]] [Case lista_expresiones2 [bloque de sentencias 2]]
. . .

Cada lista_expresiones es una lista de uno a ms valores. Si hay ms de un valor en una lista, se separan los valores con comas. Cada bloque de sentencias contiene cero o ms instrucciones. Si ms de un Case coincide con la expresin de prueba, slo se ejecutar el bloque de instrucciones asociado con la primera coincidencia.

[Case Else [bloque de sentencias n]] End Select

Visual Basic ejecuta las instrucciones de la clusula (opcional) Case Else si ningn valor de la lista de expresiones coincide con la expresin de prueba.

Por ejemplo, suponga que agrega otro comando al men Edicin en el ejemplo If...Then...Else. Podra agregar otra clusula ElseIf o podra escribir la funcin con Select Case:
SENATI-Computacin e Informtica

190

cin con VBA Private Sub mnuCut_Click (Index As Integer) Select Case Index Case 0 Comando Cortar CopyActiveControl Llama a procedimientos generales ClearActiveControl Case 1 Case 2 Case 3 Case Else frmFind.Show Muestra el cuadro de dilogo Buscar. End Select End Sub o Select Case TipoUsuario Case Supervisor Proporciona al usuario privilegios de Supervisor ... ... Case Usuario Proporciona al usuario privilegios de Usuario ... ... Case Else Proporciona al usuario privilegio de invitado ... ... End Select Comando copiar. CopyActiveControl Comando borrar. ClearActiveControl Comando Pegar. PasteActiveControl

Observe que la estructura Select Case evala una expresin cada vez que al principio de la estructura. Por el contrario, la estructura If...Then...Else puede evaluar una expresin diferente en cada sentencia ElseIf. Slo puede sustituir una esructura If...Then...Else con una estructura Select Case si la intruccin If y cada instruccin ElseIf evala la misma expresin.

SENATI-Computacin e Informtica

191

Microsoft Office Excel 2007

Otros Ejemplos
If Ventas > 100000 Then strDscto = Format (0.10, Fixed) ElseIf Ventas > 50000 Then strDscto = Format (0.05, Fixed) Else strDscto = Format (0.02, Fixed) End If

Select Case Cantidad Case 1 sngDscto = 0.0 Case 2, 3 sngDscto = 0.05 Case 4 To 6 sngDscto = 0.10 Case Else sngDscto = 0.20 End Select intRpta = MsgBox (Guarda cambios antes de salir , vbYesNo) Select Case intRpta Case vbYes GuardarCambios Unload Me Case vbNo Unload Me End Select

Bucles For Next, While .. Do


Las estructuras de repeticin o bucle le permiten ejecutar una o ms lneas de cdigo repetidamente. Las estructuras de repeticin que acepta Visual Basic son:
Do...Loop For...Next For Each...Next SENATI-Computacin e Informtica

192

cin con VBA

Do...Loop
Utilice el bucle Do para ejecutar un bloque de sentencias un nmero indefinido de veces. Hay algunas variantes en la sentencia Do...Loop, pero cada una evala una condicin numrica para determinar si contina la ejecucin. Como ocurre con If...Then, la condicin debe ser un valor o una expresin que d como resultado False (cero) o True (distinto de cero).
Do While condicin Sentencias Loop
Cuando se ejecuta este bucle Do, primero evala condicin. Si condicin es False (cero), se salta todas las sentencias. Si es True (distinto de cero) Visual Basic ejecuta las sentencias, vuelve a la instruccin Do While y prueba la condicin de nuevo.

Por tanto, el bucle se puede ejecutar cualquier nmero de veces, siempre y cuando condicin sea distinta de cero o True. Nunca se ejecutan las sentencias si condicin es False inicialmente. Por ejemplo, este procedimiento cuenta las veces que se repite una cadena destino dentro de otra cadena repitiendo el bucle tantas veces como se encuentre la cadena de destino:
Function ContarCadenas (cadenalarga, destino) Dim posicin, contador posicin = 1 Do While InStr (posicin, cadenalarga, destino) posicin = InStr (posicin, cadenalarga, destino)+1 contador = contador + 1 Loop ContarCadenas = contador End Function

Si la cadena destino no est en la otra cadena, InStr devuelve 0 y no se ejecuta el bucle. Otra variante de la instruccin Do...Loop
Do Sentencias Loop While condicin
Se ejecuta las sentencias primero y prueba la condicin despus de cada ejecucin. Esta variacin garantiza al menos una ejecucin de sentencias:

Hay otras dos variantes anlogas a las dos anteriores, excepto en que repiten el bucle siempre y cuando condicin sea False en vez de True.
Hace el bucle cero o ms veces Do Until condicin Sentencias Loop SENATI-Computacin e Informtica Hace el bucle al menos una vez Do Sentencias Loop Until condicin 193

Microsoft Office Excel 2007

For...Next
Utiliza una variable llamada contador que incrementa o reduce su valor en cada repeticin del bucle. La sintaxis es la siguiente: For contador = iniciar To finalizar [Step incremento] Sentencias Next [contador]
Los argumentos contador, iniciar, finalizar e incremento son todos numricos.

El argumento incremento puede ser positivo o negativo. Si incremento es positivo, iniciar debe ser menor o igual que finalizar o no se ejecutarn las sentencias del bucle.

Si incremento es negativo, iniciar debe ser mayor o igual que finalizar para que se ejecute el cuerpo del bucle. Si no se establece Step, el valor predeterminado de incremento es 1.

Al ejecutar el bucle For, Visual Basic: 1. Establece contador al mismo valor que iniciar. 2. Comprueba si contador es mayor que finalizar. Si lo es, Visual Basic sale del bucle. (Si incremento es negativo, Visual Basic comprueba si contador es menor que finalizar.) 3. Ejecuta las sentencias. 4. Incrementa contador en 1 o en incremento, si se especific. 5. Repite los pasos 2 a 4. Este cdigo imprime los nombres de todas las fuentes de pantalla disponibles:
Private Sub Form-Click ( ) Dim I As Integer For i = 0 To Screen.FontCount Print Screen.Fonts (i) Next End Sub

For Each...Next
El bucle For Each...Next es similar al bucle For...Next, pero repite un grupo de sentencia por cada elemento de una coleccin de objetos o de una matriz en vez de repetir las sentencias un nmero especificado de veces. Esto resulta especialmente til si no se sabe cuntos elementos hay en la coleccin. He aqu la sintaxis del bucle For Each...Next:

194

SENATI-Computacin e Informtica

cin con VBA For Each elemento In grupo Sentencias Next elemento
Tenga en cuenta las restricciones siguientes cuando utilice For Each...Next: Para las colecciones, elemento slo puede ser una variable Variant, una variable Object genrica o un objeto mostrado en el Examinador de objetos. Para las matrices, elemento slo puede ser una variable Variant. No puede utilizar For Each...Next con una matriz de tipos definidos por el usuario porque un Variant no puede contener un tipo definido por el usuario.

El siguiente ejemplo habilita todos los Cuadro de Texto del formulario:


Private Sub ModoEdicin ( ) Dim control For Each control In form1.Controls If TypeOf control Is TextBox Then Control.Enabled = True End If Next control End Sub

Salida de una Estructura de Control La instruccin Exit le permite salir directamente de un bucle For o de un bucle Do. La sintaxis de la sentencia Exit es sencilla: Exit For puede aparecer tantas veces como sea necesario dentro de un bucle For y Exit Do puede aparecer tantas veces como sea necesario dentro de un bucle Do:
For contador = iniciar To finalizar [Step incremento] [bloque sentencias] Exit For y Exit Do [Exit For] Son muy tiles ya que, algunas veces, resulta [bloque sentencias] apropiado salir inmediatamente de un bucle sin Next [contador]
realizar ms iteraciones o sentencias dentro del bucle. Cuando utilice la instruccin Exit para salir de un bucle, el valor de la variable contador difiere, dependiendo de cmo haya salido del bucle: Cuando termina un bucle, la variable contador contiene el valor del lmite superior ms el paso. Cuando sale de un bucle prematuramente, la variable contador conserva su valor segn las reglas usuales del alcance. Cuando sale antes del final coleccin, la variable contador Nothing si se trata de un tipo Object y Empty si es un tipo Variant. de una contiene de dato de dato

Do [{While / Until} condicin] [bloque de sentencias] [Exit Do] [bloque de sentencias] Loop Do [bloque de sentencias] [Exit Do] [bloque de sentencias] Loop [{While / Until} condicin]

SENATI-Computacin e Informtica

195

Microsoft Office Excel 2007

Trabajar con rangos de celda


Utilizando la notacin A1
Puede hacer referencia a una celda o rango de celdas del estilo de referencia A1 utilizando el mtodo Range. La siguiente subrutina cambia el formato de las celdas A1:D5 a negrita.
Sub FormatoRango() Workbooks("Libro1").Sheets("Hoja1").Range("A1:D5").Font.Bold = True End Sub

La siguiente tabla muestra algunas referencias de estilo A1 utilizando el mtodo Range.


Referencia Range("A1") Range("A1:B5") Range("C5:D9,G9:H16") Range("A:A") Range("1:1") Range("A:C") Range("1:5") Range("1:1,3:3,8:8") Range("A:A,C:C,F:F") Significado Celda A1 Celdas de la A1 a la B5 Seleccin de varias reas Columna A Fila 1 Columnas de la A a la C Filas de la 1 a la 5 Filas 1, 3 y 8 Columnas A, C y F

Hacer referencia a celdas utilizando nmeros de ndice


Esta propiedad devuelve un objeto Range que representa una sola celda. En el siguiente ejemplo, Cells(6,1) devuelve la celda A6 de la hoja Hoja1. Entonces, la propiedad Value se establece en 10.
Sub IngreseValor() Worksheets("Hoja1").Cells(6, 1).Value = 10 End Sub

196

SENATI-Computacin e Informtica

cin con VBA

La propiedad Cells funciona bien para ejecutar bucles en un rango de celdas, ya que puede sustituir las variables por los nmeros de ndice, como se muestra en el siguiente ejemplo.
Sub CicloHojas() Dim Contador As Integer For Contador = 1 To 20 Worksheets("Hoja1").Cells(Contador,3).Value = Contador Next Contador End Sub

Hacer referencia a filas y columnas


Estas propiedades devuelven un objeto Range que representa un rango de celdas. En el siguiente ejemplo, Rows(1) devuelve la fila uno de la hoja Hoja1. A continuacin, la propiedad Bold del objeto Font del rango se establece en True.
Sub FilasNegrita() Worksheets("Hoja1").Rows(1).Font.Bold = True End Sub

La siguiente tabla muestra algunas referencias de fila y columna, utilizando las propiedades Rows y Columns.
Referencia Rows(1) Rows Columns(1) Columns("A") Columns Significado Fila uno Todas las filas de la hoja de clculo Columna uno Columna uno Todas las columnas de la hoja de clculo

Para trabajar con varias filas o columnas al mismo tiempo, cree una variable de objeto y utilice el mtodo Union, combinando varias llamadas a la propiedad Rows o Columns.

SENATI-Computacin e Informtica

197

Microsoft Office Excel 2007

El siguiente ejemplo cambia a negrita el formato de las filas uno, tres y cinco de la hoja de clculo uno del libro activo.
Sub FilasNegritaVarios() Worksheets("Hoja1").Activate Dim myUnion As Range Set myUnion = Union(Rows(1), Rows(3), Rows(5)) myUnion.Font.Bold = True End Sub

Hacer referencia a celdas utilizando una notacin abreviada


Puede utilizar el estilo de referencia A1 o un rango con nombre entre parntesis como mtodo abreviado para la propiedad Range. No es necesario escribir la palabra "Range" o utilizar comillas, como se muestra en los siguientes ejemplos.
Sub BorrarRango() Worksheets("Hoja1").[A1:B5].ClearContents End Sub Sub AsinarValor() [MyRange].Value = 30 End Sub

Hacer referencia a rangos con nombre


Es ms sencillo identificar los rangos por nombre que por la notacin A1. Para asignar un nombre a un rango seleccionado, haga clic en el cuadro de nombre situado a la izquierda de la barra de frmulas, escriba un nombre y, a continuacin, presione la tecla ENTRAR.

Hacer referencia a un rango con nombre


El siguiente ejemplo hace referencia al rango denominado "MiRango" en el libro "Libro1.xls".
Sub FormatoRango () Range("Libro1.xls!MiRango").Font.Italic = True End Sub

198

SENATI-Computacin e Informtica

cin con VBA

El siguiente ejemplo hace referencia al rango de hojas de clculo especfico denominado "Hoja1!Ventas" en el libro "Libro1.xls".
Sub FormatSales() Range("[Libro1.xls]Hoja1!Ventas").BorderAround Weight:=xlthin End Sub

Para seleccionar un rango con nombre utilice el mtodo GoTo, que activa el libro y la hoja de clculo y, a continuacin, selecciona el rango.
Sub LimpiaRango() Application.Goto Reference:="Libro1.xls!MiRango" Selection.ClearContents End Sub

El siguiente ejemplo muestra cmo se escribira el mismo procedimiento para el libro activo.
Sub LimpiarRango() Application.Goto Reference:="MiRango" Selection.ClearContents End Sub

Ejecutar un bucle en las celdas de un rango con nombre


El siguiente ejemplo ejecuta un bucle en cada una de las celdas de un rango con nombre utilizando un bucle For Each...Next. Si el valor de cualquiera de las celdas del rango supera el valor de limit, el color de la celda cambia a amarillo.
Sub AplicarColor() Const Limit As Integer = 25 For Each c In Range("MiRango") If c.Value > Limit Then c.Interior.ColorIndex = 27 End If Next c End Sub

SENATI-Computacin e Informtica

199

Microsoft Office Excel 2007

Hacer referencia a celdas en relacin con otras celdas


Una manera de trabajar con una celda relacionada con otra es utilizar la propiedad Offset. El siguiente ejemplo asigna un formato de doble subrayado al contenido de la celda situada una fila ms abajo y a tres columnas de la hoja de clculo activa.
Sub SubrayadoDoble() ActiveCell.Offset(1, 3).Font.Underline = xlDouble End Sub

Nota. Puede grabar macros que utilicen la propiedad Offset en lugar en referencias absolutas. En el men Herramientas elija Macro, haga clic en Grabar nueva macro, haga clic en Aceptar y, a continuacin, en el botn Referencia relativa en la barra de herramientas de grabacin de macros. Para ejecutar un bucle en un rango de celdas, utilice en el rango una variable con la propiedad Cells. El siguiente ejemplo rellena las primeras 20 celdas de la tercera columna con valores entre 5 y 100, en incrementos de 5. La variable contador se utiliza como ndice de fila para la propiedad Cells.
Sub HojasValores() Dim contador As Integer For contador = 1 To 20 Worksheets("Hoja1").Cells(contador, 3).Value = contador * 5 Next contador End Sub

Hacer referencia a celdas usando un objeto Range


Si establece una variable de objeto para un objeto Range, puede manipular fcilmente el rango utilizando el nombre de la variable. El siguiente procedimiento crea la variable de objeto myRange y, a continuacin, asigna la variable al rango A1:D5 de la hoja Hoja1 del libro activo. Las instrucciones posteriores modifican las propiedades del rango, sustituyendo el nombre de la variable por el objeto del rango.
Sub Aleatorio() Dim MiRango As Range Set MiRango = Worksheets("Hoja1").Range("A1:D5") MiRango.Formula = "=RAND()" MiRango.Font.Bold = True End Sub

200

SENATI-Computacin e Informtica

cin con VBA

Hacer referencia a todas las celdas de la hoja de clculo


Al aplicar la propiedad Cells a una hoja de clculo sin especificar un nmero de ndice, el mtodo devuelve un objeto Range que representa todas las celdas de la hoja de clculo. El siguiente procedimiento Sub borra el contenido de todas las celdas de la hoja Hoja1 del libro activo.
Sub ClearSheet() Worksheets("Hoja1").Cells.ClearContents End Sub

Hacer referencia a varios rangos


Utilizando el mtodo apropiado puede hacer referencia fcilmente a varios rangos. Utilice los mtodos Range y Union para hacer referencia a cualquier grupo de rangos; utilice la propiedad Areas para hacer referencia al grupo de rangos seleccionados en una hoja de clculo.

Usar la propiedad Range


Puede hacer referencia a varios rangos con la propiedad Range, pero debe poner comas entre dos o ms referencias. El siguiente ejemplo borra el contenido de los tres rangos de la hoja Hoja1.
Sub ClearRanges() Worksheets("Hoja1").Range("C5:D9,G9:H16,B14:D18"). _ ClearContents End Sub

Los rangos con nombre permiten que la propiedad Range funcione ms fcilmente con varios rangos. El siguiente ejemplo funciona cuando los tres rangos con nombre estn en la misma hoja.
Sub BorrarNombres() Range("MiRango, TLista, TValores").ClearContents End Sub

Usar el mtodo Union


Puede combinar varios rangos en un objeto Range utilizando el mtodo Union. El siguiente ejemplo crea un objeto Range denominado myMultipleRange, los define como A1:B2 y C3:D4 y, a continuacin, asigna el formato de negrita a los rangos combinados.
SENATI-Computacin e Informtica 201

Microsoft Office Excel 2007 Sub MultiplesRangos() Dim r1, r2, MiMultiplesRangos As Range Set r1 = Sheets("Hoja1").Range("A1:B2") Set r2 = Sheets("Hojat1").Range("C3:D4") Set MiMultiplesRangos = Union(r1, r2) MiMultiplesRangos.Font.Bold = True End Sub

Usar la propiedad Areas


Puede utilizar la propiedad Areas para hacer referencia al rango o conjunto de rangos seleccionados en una seleccin de varias reas. El siguiente procedimiento cuenta las reas de la seleccin. Si existe ms de un rea, se muestra un mensaje de advertencia.
Sub BusquedaMultiple() If Selection.Areas.Count > 1 Then MsgBox "Existe ms de una area de seleccin" End If End Sub

Bucles en un rango de celdas


Al utilizar Visual Basic, con frecuencia necesitar ejecutar el mismo bloque de instrucciones en cada una de las celdas de un rango. Para ello, combine una instruccin de repeticin y uno o ms mtodos para identificar cada celda, una a una, y ejecutar la operacin. Una manera de ejecutar un bucle en un rango es utilizar el bucle For...Next con la propiedad Cells. Al utilizar la propiedad Cells, puede sustituir el contador del bucle, u otras variables o expresiones, por el nmero de ndice de las celdas. En el siguiente ejemplo se sustituye la variable contador por el ndice de fila. El procedimiento ejecuta un bucle en el rango C1:C20, estableciendo en 0 (cero) cualquier nmero cuyo valor absoluto sea menor que 0,01.
Sub EstableceCero1() For Contador = 1 To 20 Set curCell = Worksheets("Hoja1").Cells(Contador, 3) If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 Next Contador End Sub

202

SENATI-Computacin e Informtica

cin con VBA

Otra manera sencilla de ejecutar un bucle en un rango es utilizar el bucle For Each...Next en el conjunto de celdas devuelto por el mtodo Range. Visual Basic establece automticamente una variable de objeto para la siguiente celda cada vez que se ejecuta el bucle. El siguiente procedimiento realiza un bucle en el rango A1:D20, estableciendo en 0 (cero) cualquier nmero cuyo valor absoluto sea menor que 0.01.
Sub EstableceCero2() For Each c In Worksheets("Hoja1").Range("A1:D10").Cells If Abs(c.Value) < 0.01 Then c.Value = 0 Next End Sub

Si no conoce los lmites del rango en que desea ejecutar el bucle, puede utilizar la propiedad CurrentRegion para devolver el rango que rodea la celda activa. Por ejemplo, el siguiente procedimiento, cuando se ejecuta desde una hoja de clculo, ejecuta un bucle en el rango que rodea la celda activa, estableciendo en 0 (cero) todos los nmeros cuyo valor absoluto sea menor que 0.01.
Sub EstableceCero3() For Each c In ActiveCell.CurrentRegion.Cells If Abs(c.Value) < 0.01 Then c.Value = 0 Next End Sub

Seleccionar y activar celdas


Al trabajar con Microsoft Excel, normalmente selecciona una o varias celdas y, a continuacin, realiza una accin, como darles formato o escribir valores. En Visual Basic normalmente no es necesario seleccionar las celdas antes de modificarlas. Por ejemplo, si desea escribir una frmula en la celda D6 utilizando Visual Basic, no es necesario seleccionar el rango D6. Slo necesita devolver el objeto Range y, a continuacin, establecer la propiedad Formula en la frmula que desee, como se muestra en el siguiente ejemplo.
Sub IngreseFormula() Worksheets("Hoja1").Range("D6").Formula = "=SUM(D2:D5)" End Sub

Para obtener ejemplos sobre cmo utilizar mtodos para controlar las celdas sin seleccionarlas, consulte Cmo hacer referencia a celdas y rangos.

SENATI-Computacin e Informtica

203

Microsoft Office Excel 2007

Usar el mtodo Select y la propiedad Selection


El mtodo Select activa las hojas y los objetos de las hojas; la propiedad Selection devuelve un objeto que representa la seleccin actual de la hoja activa del libro activo. Antes de utilizar la propiedad Selection, debe activar un libro, activar o seleccionar un hoja y, a continuacin, seleccionar un rango, u otro objeto, con el mtodo Select. La grabadora de macros suele crear una macro que utiliza el mtodo Select y la propiedad Selection. El siguiente procedimiento Sub se cre utilizando la grabadora de macros, y muestra cmo trabajan juntas Select y Selection.
Sub Macro1() Sheets("Hoja1").Select Range("A1").Select ActiveCell.FormulaR1C1 = "Nombres" Range("B1").Select ActiveCell.FormulaR1C1 = "Direccion" Range("A1:B1").Select Selection.Font.Bold = True End Sub

El siguiente ejemplo realiza la misma tarea, sin activar ni seleccionar la hoja de clculo ni las celdas.
Sub Etiquetas() With Worksheets("Hoja1") .Range("A1") = "Nombres" .Range("B1") = "Direccion" .Range("A1:B1").Font.Bold = True End With End Sub

Seleccionar celdas en la hoja de clculo activa


Si utiliza el mtodo Select para seleccionar celdas, recuerde que Select slo funciona en la hoja de clculo activa. Si ejecuta el procedimiento Sub desde el mdulo, el mtodo Select devuelve un error a menos que el procedimiento active la hoja de clculo antes de utilizar el mtodo Select en un rango de celdas. Por ejemplo, el siguiente procedimiento copia una fila de la hoja "Hoja1" a la hoja "Hoja2" del libro activo.

204

SENATI-Computacin e Informtica

cin con VBA Sub CopiarFilas() Worksheets("Hoja1").Rows(1).Copy Worksheets("Hoja2").Select Worksheets("Hoja2").Rows(1).Select Worksheets("Hoja2").Paste End Sub

Activar una celda en una seleccin


Puede utilizar el mtodo Activate para activar una celda en una seleccin. Slo puede haber una celda activa, aunque se haya seleccionado un rango de celdas. El siguiente procedimiento selecciona un rango y, a continuacin, activa una celda del rango sin cambiar la seleccin.
Sub ActivarRango() Worksheets("Hoja1").Activate Range("A1:D4").Select Range("B2").Activate End Sub

Trabajar con rangos 3D


Si trabaja con el mismo rango en ms de una hoja, utilice la funcin Array para especificar dos o ms hojas a seleccionar. El ejemplo siguiente da formato al borde de un rango tridimensional de celdas.
Sub FormatoHojas() Sheets(Array("Hoja2", "Hoja3", "Hoja5")).Select Range("A1:H1").Select Selection.Borders(xlBottom).LineStyle = xlDouble End Sub

El ejemplo siguiente aplica el mtodo FillAcrossSheets para transferir los formatos y datos del rango de la hoja Hoja2 a los rangos correspondientes de todas las hojas de clculo del libro activo.
Sub FormatoTodasHojas() Worksheets("Hoja2").Range("A1:H1").Borders(xlBottom).LineStyle=xlDouble Worksheets.FillAcrossSheets (Worksheets("Hoja2").Range("A1:H1")) End Sub

SENATI-Computacin e Informtica

205

Microsoft Office Excel 2007

Trabajar con la celda activa


La propiedad ActiveCell devuelve un objeto Range que representa la celda que est activa. Puede aplicar cualquiera de las propiedades o los mtodos de un objeto Range a la celda activa, como en el ejemplo siguiente.
Sub CeldaActiva1() Worksheets("Hoja1").Activate ActiveCell.Value = 35 End Sub

Nota. Slo se puede trabajar con la celda activa cuando la hoja de clculo en la que se encuentra sea la hoja activa.

Mover la celda activa


Puede utilizar el mtodo Activate para designar cul es la celda activa. Por ejemplo, el siguiente procedimiento convierte B5 en la celda activa y, a continuacin, le da formato de negrita.
Sub CeldaActiva2() Worksheets("Hoja1").Activate Worksheets("Hoja1").Range("B5").Activate ActiveCell.Font.Bold = True End Sub

Nota. Para seleccionar un rango de celdas, use el mtodo Select. Para activar slo una celda, utilice el mtodo Activate. Puede utilizar la propiedad Offset para pasar a la celda activa. El siguiente procedimiento inserta texto en la celda activa del rango seleccionado y, a continuacin, mueve la celda activa una celda a la derecha, sin cambiar la seleccin.
Sub MoverDatos() Worksheets("Hoja1").Activate Range("A1:D10").Select ActiveCell.Value = "Total Mensual" ActiveCell.Offset(0, 1).Activate End Sub

206

SENATI-Computacin e Informtica

cin con VBA

Seleccionar las celdas que rodean la celda activa


La propiedad CurrentRegion devuelve un rango de celdas limitadas por filas y columnas en blanco. En el siguiente ejemplo, la seleccin se ampla para incluir las celdas contiguas a la celda activa que contiene datos. A continuacin, se asigna el estilo Moneda a este rango.
Sub Region() Worksheets("Hoja1").Activate ActiveCell.CurrentRegion.Select Selection.Style = "Currency" End Sub

Trabajo con libros y hojas


Hacer referencia a hojas por nmero de ndice
Un nmero de ndice es un nmero secuencial asignado a una hoja, segn la posicin de su etiqueta, contando desde la izquierda, respecto a las hojas del mismo tipo. El siguiente procedimiento utiliza la propiedad Worksheets para activar la hoja de clculo uno del libro activo.
Sub SeleccionarHoja() Worksheets(1).Activate End Sub

Si desea trabajar con todos los tipos de hojas (hojas de clculo, de grficos, de mdulos y de dilogo), utilice la propiedad Sheets. El siguiente procedimiento activa la hoja cuatro del libro.
Sub SeleccionarHoja() Sheets(4).Activate End Sub

Hacer referencia a hojas por su nombre


Puede identificar las hojas por su nombre, utilizando las propiedades Worksheets y Charts. Las siguientes instrucciones activan varias hojas del libro activo.

SENATI-Computacin e Informtica

207

Microsoft Office Excel 2007

Puede utilizar la propiedad Sheets para devolver una hoja de clculo, de grficos, de mdulo o de cuadro de dilogo, incluidos todos en el conjunto Sheets. El siguiente ejemplo activa la hoja denominada "hoja1" del libro activo.
Sub ActivarHoja() Worksheets("hoja1").Activate End Sub

El siguiente ejemplo activa la hoja denominada "grafico1" del libro activo.


Sub ActivarHojaGrafico() Sheets("grafico1").Activate End Sub

Aadir mdulos VBA


Para aadir mdulos seguir el siguiente procedimiento.

1. Hacer clic en la ficha

, botn , botn

2. Se abre la ventana de Visual Basic, hacer clic en el men 3. Se presenta la ventana de programacin de mdulo.

Trabajar con UserForms


Para aadir formularios seguir el siguiente procedimiento.

1. Hacer clic en la ficha

, botn

2. Se abre la ventana de Visual Basic, hacer clic en el men

208

SENATI-Computacin e Informtica

cin con VBA

Botn 3. Se presenta la ventana de formulario

Uso de controles de formulario


A continuacin se describe el uso de controles de un formulario

Control Marco

(Frame)

Este control permite agrupar otros controles para darle mayor funcionalidad a la interfaz. Los controles Botones de Opcin necesariamente tienen que estar agrupados por el control Marco. Para agrupar controles, dibuje primero el control Marco y, a continuacin, dibuje los controles dentro de Marco. Propiedades Caption Enabled Name Visible Ttulo de marco. Determina si est habilitado para responder a las acciones del usuario. Nombre del control. Determina si el Marco y los controles que contiene estn visibles o no.

Control Casilla de Verificacin (CheckBox)


Las casillas de verificacin se utilizan para proporcionar al usuario opciones de tipo Si/No o Verdadero/Falso. Cuando el usuario selecciona una opcin (activa la casilla), aparece una marca de verificacin () dentro de la casilla. Propiedades Caption Enabled Name
SENATI-Computacin e Informtica

Descripcin que acompaa a la casilla. True/False. Determina si est habilitado para responder a las acciones del usuario. Nombre del control.
209

Microsoft Office Excel 2007

Value

0 Unchecked (Vaco, no marcado) 1 Checked (Marcado) 2 Grayed (Gris, Indefinido)

Visible Eventos Click

Determina si la casilla est visible o no.

Ocurre cuando el usuario hace clic sobre la casilla.

Control Botn de Opcin (OptionButton)


Estos controles se utilizan para que el usuario seleccione una opcin de un grupo opciones. La opcin seleccionada tiene un punto en el centro. Propiedades Caption Enabled Name Value Visible Descripcin que acompaa a la opcin. True/False. Determina si est habilitado para responder a las acciones del usuario. Nombre del control. True/False, marcado o no marcado. True/False. Determina si el botn est visible o no. Ocurre cuando el usuario hace clic sobre el botn.

Eventos Click

210

SENATI-Computacin e Informtica

cin con VBA

Control Cuadro de Lista (ListBox)


Un control ListBox muestra una lista de elementos entre los cuales el usuario puede seleccionar uno o ms elementos. Si el nmero de elementos supera el nmero que puede mostrarse, se agregar automticamente una barra de desplazamiento al control ListBox La propiedad List es un arreglo que contiene los elementos de la lista, y comienza con ndice 0. La propiedad ListCount establece el nmero total de elementos de la lista. La propiedad ListIndex contiene el ndice del elemento seleccionado, el cual es un nmero entre 0 (primer elemento) y el nmero total de elementos en la lista 1 (ListCount 1). Si no se selecciona ningn elemento, el valor de la propiedad ListIndex ser 1. La propiedad NewIndex contiene el ndice del ltimo elemento aadido a la lista. Esto puede ser til si desea hacer algo con el elemento aadido, por ejemplo, que sea el elemento actualmente seleccionado. Propiedades Enabled List ListCount ListIndex MultiSelect Name Selected True/False. Determina si el control responde a las acciones del usuario. Arreglo con los elementos de la lista. Nmero de elementos de la lista. Elemento seleccionado. Establece si es posible seleccionar varios elementos o uno solo. Nombre del control. Arreglo de valores lgicos paralelo y del mismo tamao al arreglo list, indica que elementos han sido seleccionados (True) de la lista. Se utiliza en lugar de ListIndex cuando establecemos la propiedad Multiselect en 1 2. True/False. Establece alfabticamente. los elementos se ordenan

Sorted Style Text

Establece el comportamiento del control. Devuelve el elemento seleccionado en el cuadro de lista; el valor de retorno es siempre equivalente al que devuelve la expresin List(ListIndex). Es de slo lectura en tiempo de diseo y es de slo lectura en tiempo de ejecucin.

Mtodos AddItem RemoveItem


SENATI-Computacin e Informtica

Permite aadir nuevos elementos a la lista. Permite eliminar elementos de la lista.


211

Microsoft Office Excel 2007

Eventos Click Ejemplos: Muestra en el Cuadro de Texto txtGaseosa el elemento seleccionado


Private Sub lstGaseosas_Click() txtGaseosa.Text lstGaseosas.Text End Sub =

Ocurre cuando el usuario interacta con el control.

Aade un nuevo elemento al Cuadro de Lista lstGaseosas


Private Sub cmdAgregar_Click() Dim strNuevoElemento As String strNuevoElemento = InputBox("Ingrese una nueva gaseosa:", _ "Nueva gaseosa") If Trim(strNuevoElemento) <> "" Then lstGaseosas.AddItem strNuevoElemento End If End Sub

Elimina el elemento actual del Cuadro de Lista lstGaseosas


Private Sub cmdEliminar_Click() If lstGaseosas.ListIndex <> -1 Then lstGaseosas.RemoveItem lstGaseosas.ListIndex End If End Sub

Control Cuadro Combinado (ComboBox)


Un control ComboBox combina las caractersticas de un control TextBox y un control ListBox; los usuarios pueden introducir informacin en la parte del cuadro de texto o seleccionar un elemento en la parte de cuadro de lista del control.
212 SENATI-Computacin e Informtica

cin con VBA

Para agregar o eliminar elementos en un control ComboBox, se usa el mtodo AddItem o RemoveItem. Establezca las propiedades List, ListCount y ListIndex para permitir a un usuario tener acceso a los elementos de un control ComboBox. Como alternativa, puede agregar elementos a la lista mediante la propiedad List en tiempo de diseo. Propiedades Enabled List ListCount ListIndex Name Sorted Style Text Mtodos AddItem RemoveItem Eventos Click Change
Constante vbComboDropDown

True/False. Determina si el control responde a las acciones del usuario. Arreglo con los elementos de la lista. Nmero de elementos de la lista Elemento seleccionado. Nombre del control. True/False. Establece alfabticamente. si los elementos se ordenan

Establece el comportamiento del control. Texto que contiene el control.

Permite aadir nuevos elementos a la lista. Permite eliminar elementos de la lista.

Ocurre cuando el usuario interacta con el control Ocurre cuando el valor de la propiedad Text es modificado.
Valor 0 Descripcin (Predeterminado) Cuadro combinado desplegable. Incluye una lista desplegable y un cuadro de texto.El Usuario puede seleccionar datos en la lista o escribir en cuadro de texto. Cuadro combinado simple. Incluye un cuadro de texto y una lista, que no se despliega. Incremente la propiedad Height para mostrar ms elementos de la lista. Lista desplegable. Este estilo slo permite la seleccin desde la lista desplegable.

vbComboSimple

vbComboDropDownList

SENATI-Computacin e Informtica

213

Microsoft Office Excel 2007

Propiedad Style Esta propiedad establece el comportamiento del control ComboBox, y puede tomar los siguientes valores: Ejemplo En la siguiente interfaz se ilustra el uso del control ComboBox y la propiedad Style.

Muestra la gaseosa seleccionada por el usuario en la etiqueta lblGaseosa


Private Sub cboGaseosas_Click() lblGaseosa.Caption = cboGaseosas.Text End Sub

Actualiza la etiqueta lblGaseosa cuando el usuario modifica el control cboGaseosas


Private Sub cboGaseosas_Change() lblGaseosa.Caption = cboGaseosas.Text End Sub

Muestra el encuestado seleccionado por el usuario en la etiqueta lblEncuestado


Private Sub cboEncuestados_Click() lblEncuestado.Caption = cboEncuestados.Text End Sub

214

SENATI-Computacin e Informtica

cin con VBA Muestra en la etiqueta lblCiudad el elemento seleccionado del control cboCiudades Private Sub cboCiudades_Click() lblCiudad.Caption = cboCiudades.Text End Sub

Funciones VBA InputBox, MsgBox


Una de las formas ms simples de obtener informacin para y desde el usuario es utilizando las funciones MagBox e InpuBox respectivamente.

Funcin MsgBox()
Los cuadros de mensaje ofrecen un modo simple y rpido de consultar a los usuarios por informacin simple o para permitirles tomar decisiones sobre el camino que su programa debe tomar. Puede usar esta funcin para mostrar diferentes tipos de mensaje y botones con los cuales el usuario da una respuesta.
Rpta = MsgBox("Est seguro de eliminar a este cliente?" vbQuestion + vbYesNo, "Confirmacin")

Funcin InpuBox()
La funcin InputBox muestra un mensaje en un cuadro de dilogo, espera que el usuario escriba un texto o haga clic en un botn y devuelve un tipo String con el contenido del cuadro de texto.
strCodigo = InputBox("Ingrese buscar:","Bsqueda", "CLI0001") el cdigo del cliente a

Metodo GetOpenfilename , GetSaveAsFileName


Funcin GetOpenfilename ()
Este mtodo nos permite desplegar el cuadro de dialogo abrir (del menu archivo) pero no abre el archivo indicado.

SENATI-Computacin e Informtica

215

Microsoft Office Excel 2007

El mtodo nos devuelve una cadena con la ruta y nombre del archivo seleccionado. Sintaxis Object.GetOpenFilename(FileFilter,FilterIndex,Title,ButtonText,Multiselect) Argumentos FileFilter. Opcional. Una serie especifica con criterios de filtro de archivo. FilterIndex. Opcional. Los nmeros del ndice por defecto bajo criterios de filtro de archivo. Titulo. Opcional .El titulo del cuadro de dialogo. si se omite, el titulo.. mostrara "Abrir" ButtonText. Solo para Macintosh Multiselect. Opcional. Si es verdadero, se pueden seleccionar varios nombres de archivos El argumento Filtro de archivo determnalo que muestra el cuadro de dialogo de los archivos del tipo lista desplegable. Consiste en pares de series de filtro de archivo seguido del comodn especificado. Si se omite sera por defecto : "All File(*.*),*.*" Ejemplo El argumento Filterindex especificara el tipo de archivo que aparece por defecto, 'el titulo del argumento es un texto que se despliega en la barra del ttulo. si el argumento de multiselect es verdadero,el usuario puede seleccionar varios archivos(y se devolveran en una serie) Private Sub CommandButton1_Click() Dim filtrox As String Dim FilterIndex As Integer Dim titulo As String Dim nombreArchivo As Variant 'Configurar Filtro para la lista de archivos filtrox = "Archivos de texto (*.txt),*.txt," & _ "Word(*.doc),*.doc, " & _ "Excel (*.xls), *.xls, " & _ "Power Point(*.ppt), *.ppt, " & _ "Todos los archivos (*.*),*.* "

216

SENATI-Computacin e Informtica

cin con VBA

'Mostrar por defecto todos los archivos FiltroIndex = 3 titulo = "Ejemplo" 'Obtener Nombre del archivo nombreArchivo = Application.GetOpenFilename(FileFilter:=filtrox, FilterIndex:=FiltroIndex, Title:=titulo) TextBox1.Text = nombreArchivo End Sub

Funcin GetSaveAsFileName
Permite grabar un archivo Ejemplo Private Sub CommandButton2_Click() Dim FileSaveName As Variant FileSaveName = Application.GetSaveAsFilename( _ Filefilter:="Libro de microsoft Office Excel (*.Xls), *.Xls," & "Ficheros de TEXTO (*.TXT), *.TXT", _ Title:="Guardar Archivo", _ InitialFileName:="MyLibro666", _ FilterIndex:=1) 'Si Anulamos la operacion con Cancelar... If FileSaveName = False Then MsgBox "El libro no ser Guardado", vbInformation + vbOKOnly, "ATENCION:" Exit Sub End If ActiveWorkbook.SaveAs Filename:=FileSaveName End Sub

Crear y abrir libro


Crear un libro nuevo
Para crear un nuevo libro en Visual Basic, utilice el mtodo Add. El siguiente procedimiento crea un nuevo libro. Microsoft Excel asigna automticamente el

SENATI-Computacin e Informtica

217

Microsoft Office Excel 2007

nombre BookN al libro, donde N es el siguiente nmero disponible. El nuevo libro se convertir en el libro activo.
Sub CrearNuevoLibro() Workbooks.Add End Sub

Abrir un libro
Al abrir un nuevo libro utilizando el mtodo Open, se convierte en un miembro del conjunto Workbooks. El siguiente procedimiento abre un libro denominado Amortizacion.xls, ubicado en la carpeta SENATI de la unidad C.
Sub AbrirLibro() Workbooks.Open("C:\SENATI\Amortizacion.xls") End Sub

Cuestionarios
1. Realice un formulario aplicativo de acuerdo a las necesidades de su rea donde labores, donde pueda aplicar los conocimiento aprendidos en programacin.

2. Crear un formulario aplicativo que permita ingresar una contrasea al abrir una hoja de clculo.

3. Crear un atajo que permita llamar a un formulario que contiene un calendario.

218

SENATI-Computacin e Informtica

cin con VBA

Ejercicios utilizando Macro, Formulario y VBA


Ejercicio 1: Nmeros primos

Grabar el archivo con el nombre primo.xls


Option Explicit Sub primos() ' Igual que primos pero evitando usar etiquetas y goto Dim i As Long Dim j As Long Dim p As Long Dim n As Long Dim primo As Boolean n = InputBox("Hasta que nmero? (mximo 821507)", "Calculo de primos") p=1 Application.Workbooks("primos.xls").Sheets("Hoja1").Range("c6").Select ActiveCell.Value = 2 ActiveCell.Offset(1, 0).Value = 3 For i = 5 To n Step 2 primo = True For j = 3 To Sqr(i) Step 2 If (i / j) - Int(i / j) = 0 Then primo = False: Exit For Next j If primo Then p=p+1 ActiveCell.Offset(p, 0).Value = i End If Next i End Sub Sub Limpiar() Range("B6").Select Selection.CurrentRegion.Select Selection.ClearContents Range("B6").Select End Sub

SENATI-Computacin e Informtica

219

Microsoft Office Excel 2007

Ejercicio 2: Fechas

Option Explicit Sub nacimiento() Dim dias As Integer, Dsemana As Integer, Factual As Date, d As String, cumple As Date Rem Dsemana es una variable que da un nmero que indica el da de la semana Rem dado por la funcin WEEKDAY, que en Excel es =DIASEM(fecha) Static Fnacimiento As Date Factual = Date 'Date es la funcin de VBA equivalente a =HOY() Fnacimiento = Factual Fnacimiento = InputBox(Prompt:="Introduzca su fecha de nacimiento", _ Title:="Formato DD-MM-AAAA", Default:=Fnacimiento) dias = Factual - Fnacimiento Dsemana = Application.WorksheetFunction.Weekday(Fnacimiento) Select Case Dsemana Case 1: d = "Domingo" Case 2: d = "Lunes" Case 3: d = "Martes" Case 4: d = "Miercoles" Case 5: d = "Jueves" Case 6: d = "Viernes" Case 7: d = "Sabado" End Select MsgBox Prompt:="Usted naci un " & d & " hace " & dias & " das" & Chr(10) _ & "Tiene " & CalEdad(Fnacimiento) & " Aos", _ Title:="Esta informacin es correcta siempre que hoy sea " & Factual End Sub

220

SENATI-Computacin e Informtica

cin con VBA


'Funcin que calcula la edad en aos Function CalEdad(Fnacimiento As Date) Dim Fecha As Date CalEdad = Abs(DateDiff("yyyy", Fnacimiento, Date)) Fecha = DateAdd("YYYY", CalEdad, Fnacimiento) If Fecha > Date Then CalEdad = CalEdad - 1 End Function Sub Trimestres() 'Proporciona el trimestre en el que se encuentra una fecha Dim LaFecha As Date Dim Msj LaFecha = InputBox("Escriba una fecha:") Msj = "Trimestre: " & DatePart("q", LaFecha) 'DatePart es una funcin VBA MsgBox Msj End Sub

Ejercicio 3: TIR

Option Explicit Sub CalculaTIR() Range("F7").Value = 0 Range("H7").Value = 1 Do While Abs(Range("G8")) > 0.00001 'error admitido If Range("G8") < 0 Then Range("H7") = Range("G7") Else Range("F7") = Range("G7") End If 'La siguiente lnea se utiliza para retrasar la ejecucin de la macro 'de esta forma se puede ver como converge la tasa a la TIR Application.Wait Now + TimeValue("00:00:1") Loop End Sub

SENATI-Computacin e Informtica

221

Microsoft Office Excel 2007

Ejercicio 4: =PAGO

Option Explicit Sub prestamo() Static Principal 'Variable esttica. No cambia Static Tasa Static Terminos Dim Pago As Double Principal = Application.InputBox(Prompt:="Principal (100000 por jemplo)",Default:=Principal)
Tasa = Application.InputBox(Prompt:="Tipo de inters nominal anual (4,75 por ejemplo)", Default:=Tasa)

Terminos = Application.InputBox(Prompt:="Nmero de aos (30 por ejemplo)",Default:=Terminos)

'Vea como se usa la funcin de Excel Pmt (Pago) sin necesidad de calcularla en una celda Pago = Application.WorksheetFunction.Pmt(Tasa / 1200, Terminos * 12, Principal)
MsgBox Prompt:="La Mensualidad es " & Format(-Pago, "Currency"), Title:="Calculadora de Prstamos"

End Sub

Ejercicio 5: Listado de hojas

222

SENATI-Computacin e Informtica

cin con VBA Option Explicit Sub NombreHojas() 'Pone los nombres de las hojas, salvo la primera Dim contador As Integer For contador = 1 To Sheets.Count With Sheets(1) Cells(contador + 5, 6).Value = Sheets(contador).Name End With Next End Sub Sub Limpia() Range("F6").Select Selection.CurrentRegion.Select Selection.ClearContents Range("A1").Select End Sub

Ejercicio 6: Eliminar registros en blanco

Option Explicit Sub EliminarFilasEnBlanco() Dim strC As String, lngFila As Long With Worksheets("Hoja1") 'Nombre de la hoja For lngFila = 1 To .UsedRange.Rows.Count
If WorksheetFunction.CountA(.Rows(lngFila)) = 0 Then strC = strC & lngFila & ":" & lngFila & ","

Next lngFila Application.ScreenUpdating = False .Range(Left(strC, Len(strC) - 1)).Delete Application.ScreenUpdating = True End With End Sub

SENATI-Computacin e Informtica

223

Microsoft Office Excel 2007

Ejercicio 7: Funciones personalizadas

Option Explicit Function DiasLaborablesYSabados(Fecha_Inicial As Date, Fecha_Final As Date, Optional Festivos As Range) As Long Dim Laborables As Long Dim i As Long Dim c As Variant Dim F As Long Dim esta As Boolean esta = False Laborables = 0 If Festivos Is Nothing Then For i = Fecha_Inicial To Fecha_Final If i Mod 7 <> 1 Then Laborables = Laborables + 1 SENATI-Computacin e Informtica

224

cin con VBA End If Next i Else For i = Fecha_Inicial To Fecha_Final If i Mod 7 <> 1 Then esta = False For Each c In Festivos F = CDate(c) If i = F Then esta = True: Exit For Next c If Not esta Then Laborables = Laborables + 1 End If Next i End If DiasLaborablesYSabados = Laborables End Function

Ejercicio 8: Filtrar la base de datos

Sub Filtra() Range("basedatos").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _ Range("H5:K6"), CopyToRange:=Range("H12:K12"), Unique:=False Range("A1").Select End Sub SENATI-Computacin e Informtica

225

Microsoft Office Excel 2007 Sub Auto_Open() 'Copiamos y pegamos, con pegado especial valores, las celdas y9.ab9 'que son las que generan la base de datos. Range("Y9:AB9").Select Selection.Copy Range("B6:E1005").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Application.CutCopyMode = False 'Nombramos la base de datos como basedatos Range("B5").Select Selection.CurrentRegion.Select


ActiveWorkbook.Names.Add Name:="basedatos", RefersToR1C1:="=Hoja1!R5C2:R1005C5"

Range("A1").Select End Sub

Ejercicio 9: Eliminar valores duplicados de una lista

Option Explicit Function CuentaListaA()

226

SENATI-Computacin e Informtica

cin con VBA


Application.Workbooks("EliminarValores.xls").Worksheets("Hoja1").Range("C5").Activate

Selection.End(xlDown).Select CuentaListaA = ActiveCell.Row - 5 End Function Sub Repetidos() 'Borra los elementos de la columna E que esten en la C 'Pero slo los borra una vez. Si se repiten en C slo borra el 1 'Si se quiere que se eliminen todos quitar del programa la vble. "salir" Dim posicion As Long Dim salir As Boolean Dim comodin Dim respuesta As String * 5 Dim filasiniciales As Long Dim filasfinales As Long filasiniciales = CuentaListaA Range("E6").Select posicion = 1 While ActiveCell.Value <> "" comodin = ActiveCell.Value Range("C6").Select salir = False While ActiveCell.Value <> "" And salir = False If ActiveCell.Value = comodin Then ActiveCell.Font.Bold = True
respuesta = MsgBox("Deseas borrar la celda " & ActiveCell.Address & "?", 4, "Encontrado!!")

If respuesta = vbYes Then 'Edicin, Eliminar, Desplazar las celdas hacia arriba Selection.Delete Shift:=xlUp End If salir = True Else ActiveCell.Offset(1, 0).Select End If Wend posicion = posicion + 1 Range("E6").Select ActiveCell.Offset(posicion - 1, 0).Select Wend filasfinales = CuentaListaA MsgBox "La Lista A inicialmente tenia " & filasiniciales & " filas." & Chr(13) _ & "Se han eliminado " & filasiniciales - filasfinales & " filas." & Chr(13) _ & "Por tanto, quedan " & filasfinales & " filas." End Sub

SENATI-Computacin e Informtica

227

Microsoft Office Excel 2007

Ejercicio 10: Rellenar y Eliminar registros de una lista

'En las celdas vacias de una tabla copia el valor de la celda precedente Sub RellenarCeldas() Range("B5").Select

228

SENATI-Computacin e Informtica

Captulo

Funciones personalizadas
En este captulo trataremos:

Creacin de funciones personalizadas con VBA Uso de controles ActiveX

SENATI-Computacin e Informtica

229

ersonalizas

Uso de mdulos para Funciones


Los mdulos permiten dividir un programa muy grande en partes mucho ms pequeas y manejables. La divisin de un programa en unidades ms pequeas o funciones presenta entre otras las ventajas siguientes:

Ventajas
1. Modularizacin Cada funcin tiene una misin muy concreta, de modo que nunca tiene un nmero de lneas excesivo y siempre se mantiene dentro de un tamao manejable. Una misma funcin puede ser invocada muchas veces en un mismo programa, e incluso puede ser reutilizada por otros programas. Cada funcin puede ser desarrollada y comprobada por separado. 2. Ahorro de memoria y tiempo de desarrollo En la medida en que una misma funcin es utilizada muchas veces, el nmero total de lneas de cdigo del programa disminuye, y tambin lo hace la probabilidad de introducir errores en el programa. 3. Independencia de datos y ocultamiento de informacin. Una de las fuentes ms comunes de errores en los programas de computador son los efectos colaterales o perturbaciones que se pueden producir entre distintas partes del programa. Es muy frecuente que al hacer una modificacin para aadir una funcionalidad o corregir un error, se introduzcan nuevos errores en partes del programa que antes funcionaban correctamente.

Caractersticas
Una funcin es capaz de mantener una gran independencia con el resto del programa, manteniendo sus propios datos y definiendo muy claramente la interfaz o comunicacin con la funcin que la ha llamado y con las funciones a las que llama, y no teniendo ninguna posibilidad de acceso a la informacin que no le compete. La principal caracterstica de una funcin es que sta puede ser utilizada en una expresin porque tiene un valor de retorno. La sintaxis correspondiente a una funcin es la siguiente: Function nombre ([parmetros]) [As tipo]
[sentencias] [nombre = expresion] [Exit Function] SENATI-Computacin e Informtica 231

Microsoft Office Excel 2007 [sentencias] [nombre = expresion] End Function

A continuacin se describe en un cuadro los elementos de la funcin NOMBRES nombre Parmetros As Tipo FUNCION Define el nombre de la funcin Son los argumentos que son pasados cuando se llama a la funcin. Define el tipo de dato que devuelve la funcin, pueden ser: Boolean Numricos String Variant Sentencias expresin Exit Function End Function Lgico, devuelve dos valores True o False. Byte, Integer, Single, Double Aceptar caracteres alfanumricos de Desde 1 a 65.400 aproximadamente Cualquier valor numrico, String.

Es el cdigo del programa en VBA. Valor de retorno de la funcin Permite salir de una funcin antes de que sta finalice. Marca el final del cdigo de la funcin.

Uso de argumentos en las funciones


Los argumentos son los parmetros que se pasan a la funcin. Argumentos opcionales Se puede especificar argumentos opcionales. Cuando un argumento es opcional y en la llamada es omitido, el valor que se le pasa es un Variant con valor Empty. A los argumentos opcionales se les puede dar en la definicin de la funcin un valor por defecto para el caso en que sean omitidos en la llamada, como por ejemplo: Function AREAT(base As integer, altura As integer, Optional n As Integer) AREAT=base * altura / 2 End Sub

232

SENATI-Computacin e Informtica

ersonalizadas

Argumentos arreglos Para utilizar argumentos Array utilice la palabra ParamArray en la definicin del procedimiento, como por ejemplo: Public Function maximo(ParamArray numeros()) For Each x in numerous Sentencias maximo = x Next x End Function

Ejecutar una funcin


Para ejecutar una funcin utilice la siguiente sintaxis: = nombre([argumentos]) Donde argumentos son una lista de constantes, variables o expresiones separadas por comas que son pasadas a la funcin. En principio, el nmero de argumentos debe ser igual al nmero de parmetros de la funcin. Los tipos de los argumentos deben coincidir con los tipos de sus correspondientes parmetros, de lo contrario puede haber fallos importantes en la ejecucin del programa. En cada llamada a una funcin hay que incluir los parntesis, aunque sta no tenga argumentos. El siguiente ejemplo corresponde a una funcin que devuelve como resultado la raz cuadrada de un nmero N: Function Raiz (N As Double) As Double If N < 0 Then Exit Function Else Raiz = Sqr(N) End If End Function La llamada a esta funcin se hace de la forma siguiente: = Raiz(4)

SENATI-Computacin e Informtica

233

Microsoft Office Excel 2007

Recursividad
Se dice que una funcin (Function) es recursiva si se llaman a s mismos. A continuacin se presenta una ejemplo de una funcin que calcula el factorial de un nmero programada de forma recursiva.
Clculo de Factorial Function Fact (N As Integer) As Long If N = 0 Then Fact = 1 Else Fact = N * Factorial (N - 1) End Function

En este ejemplo, si la variable N que se le pasa a la funcin vale 0, significar que se ha llegado al final del proceso, y por tanto se le asigna el valor 1 al valor del factorial (recordar que 0! = 1). Si es distinto de 0, la funcin se llama a ella misma, pero variando el argumento a (N-1), hasta llegar al punto en el que N1=0, finalizndose el proceso.
Para invocar a la funcin utilice =FACT(6)

Paso a Paso: Crear la funcin rea del triangulo 1. Realizar una funcin que permita calcular el rea del tringulo. 2. AREAT = ( B x H ) / 2

3. Hacer clic en la ficha 4. Hacer clic en el men


AREAT=base * altura / 2 End Sub

, botn , botn

Function AREAT(base As integer, altura As integer, Optional n As Integer)

5. Cerrar el Editor de VBA 6. Estando en Excel, Disear la siguiente hoja 7. En la celda B5 escribir la funcin: =AreaT (B3,B5)
234 SENATI-Computacin e Informtica

ersonalizadas

Controles Active X
Veamos veremos una serie de controles que le pueden brindar interactividad a nuestras aplicaciones Excel Los Controles ActiveX son objetos grficos que se colocan en un formulario (userforms) o en una determinada posicin de la hoja de trabajo, con el objetivo de mostrar, seleccionar o introducir (capturar) datos, para la realizacin de una accin determinada (ej. ejecucin de una macro) o para facilitar la lectura de un formulario. Estos objetos pueden consistir por ejemplo en cuadros de texto, cuadros de lista (ComboBox), botones de opciones, casillas de verificacin, botones de comandos, barras de desplazamiento u otros elementos. A continuacin se describe los Controles 1. Cuadro de Texto Un Cuadro de Texto nos permite capturar informacin, la cual puede ser numrica, alfabtica o alfanumrica. 2. Botn de Comando Este tipo de control es uno de los ms conocidos. Entre otras cosas, este control nos permite por ejemplo la ejecucin de una macro, o marcar el inicio de la realizacin de una determinada actividad previamente asignada o programada. 3. Casilla de Verificacin Una casilla de verificacin es utilizada normalmente para capturar informacin previamente estructurada. Normalmente se presentan en grupos y es posible seleccionar ms de una opcin. 4. Botn de Opcin Un botn de opcin en general presenta las misma caractersticas que un grupo de casillas de verificacin, slo que en este caso no es posible seleccionar ms de una opcin. 5. Cuadro Combinado Su utilizacin es recomendable cuando la lista de opciones es bastante extensa. Inclusive puede ser configurado para que mostrar un cierto nmero de opciones solamente, debiendo desplazarse el usuario con la barra de desplazamiento que se generar automticamente para buscar las otras opciones no visualizadas. 6. Cuadro de Lista Un cuadro de lista contiene una lista de los elementos que pueden ser seleccionados. En trminos generales es prcticamente lo mismo que un cuadro

SENATI-Computacin e Informtica

235

Microsoft Office Excel 2007

combinado, slo que no posee el men desplegable, sino que es necesario desplazarse a travs de l con el cursor.

7. Botn o Control de Nmero Este control puede ser usado para aumentar o disminuir el valor de un determinado parmetro o celda vinculada. Cuenta con dos flechas, una hacia arriba y otra hacia abajo, o una hacia la derecha y otra hacia la izquierda. Al presionar alguna de ellas aumentar o disminuir el valor segn corresponda.

8. Botn de Alternar Este botn puede ser utilizado para que el usuario seleccione o no una determinada caracterstica, ya que este control tiene la ventaja de que una vez seleccionado permanece seleccionado, devolviendo el valor de Verdadero o Falso segn corresponda. Este botn adems puede ser vinculado a una determinada celda, en la cual devolver el valor lgico anteriormente mencionado (verdadero o falso). Paso a Paso: Uso de control ActiveX - 1 1. Disear una aplicacin que muestre en un control ListBox1 los nmeros pares y en un ListBox2 los nmeros impares

2. Hacer clic en la ficha 3. Hacer clic en el men mostrado a continuacin.

, botn , botn y disear el formulario

236

SENATI-Computacin e Informtica

ersonalizadas

4. Hacer clic en el men programa


General Declaraciones Dim SumaImpar As Integer Dim SumaPar As Integer Dim cont As Integer

, botn

y escriba el siguiente

Private Sub CommandButton1_Click() Randomize SW = 1 cont = 1 SumaImpar = 0 SumaPar = 0 ListBox1.Clear ListBox2.Clear For cont = 1 To 10 If SW = 1 Then ListBox1.AddItem cont SumaImpar = SumaImpar + cont SW = 0 Else ListBox2.AddItem cont SumaPar = SumaPar + cont SW = 1 End If Next TextBox1.Text = SumaImpar TextBox2.Text = SumaPar End Sub

Paso a Paso: Uso de control ActiveX - 2 1. Disear una aplicacin que permita ingresar los siguientes datos a controles TextBox: Nombres, Apellidos, Direccin, telfono y suledo. El ingreso de datos debe ser consistenciado. Luego estos datos deben ser pasados a una grilla (Control FlexGrid). Calcular el total del sueldo.

SENATI-Computacin e Informtica

237

Microsoft Office Excel 2007

2. Hacer clic en la ficha

, botn y disear el

3. Hacer clic en el men , botn formulario mostrado a continuacin.

Hacer clic en el men Herramientas, Controles adicionales para agregar el control FlexGrid a la caja de controles.

4. Hacer clic en el men cdigo


If (KeyAscii = 8) Then Exit Sub

, botn

. Edite el siguiente

Public Sub IngNum(KeyAscii As MSForms.ReturnInteger) If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Then KeyAscii = 0 End Sub Public Sub IngNumTelf(KeyAscii As MSForms.ReturnInteger) If (KeyAscii = 8) Then Exit Sub If (KeyAscii = Asc("-")) Then Exit Sub If Not (KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Then KeyAscii = 0 End Sub Public Function IngFechas(Fecha As Variant) As Boolean IngFechas = IsDate(Fecha) End Function SENATI-Computacin e Informtica

238

ersonalizadas Public Sub IngCar(KeyAscii As MSForms.ReturnInteger) If (KeyAscii = 8) Then Exit Sub If (KeyAscii = 32) Then Exit Sub If (KeyAscii = Asc(".")) Then Exit Sub If (KeyAscii >= Asc("0") And KeyAscii <= Asc("9")) Then KeyAscii = 0 Select Case KeyAscii Case Is >= Asc("A") And KeyAscii <= Asc("Z"): Exit Sub Case Is >= Asc("a") And KeyAscii <= Asc("z"): Exit Sub Case Is = Asc(""): Exit Sub Case Is = Asc(""): Exit Sub Case Is = Asc(""): Exit Sub Case Is = Asc(""): Exit Sub Case Is = Asc(""): Exit Sub Case Else: KeyAscii = 0 End Select End Sub

5. Hacer clic en el men programa


General Declaraciones

, botn

y escriba el siguiente

Dim FILA As Integer

Private Sub CommandButton1_Click() TextBox1.Text = "" TextBox2.Text = "" TextBox3.Text = "" TextBox4.Text = "" TextBox5.Text = "" End Sub

Private Sub CommandButton2_Click() FILA = FILA + 1 MSFlexGrid1.Rows = MSFlexGrid1.Row + FILA MSFlexGrid1.TextMatrix(FILA, 1) = TextBox1.Text MSFlexGrid1.TextMatrix(FILA, 2) = TextBox2.Text

SENATI-Computacin e Informtica

239

Microsoft Office Excel 2007 MSFlexGrid1.TextMatrix(FILA, 3) = TextBox3.Text MSFlexGrid1.TextMatrix(FILA, 4) = TextBox4.Text MSFlexGrid1.TextMatrix(FILA, 5) = TextBox5.Text Label7.Caption = Val(Label7.Caption) + Val(TextBox5.Text) Call CommandButton1_Click TextBox1.SetFocus End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngCar(KeyAscii) End Sub


Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngCar(KeyAscii) End Sub


Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngCar(KeyAscii) End Sub


Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngNumTelf(KeyAscii) End Sub


Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngNum(KeyAscii) End Sub Private Sub UserForm_Activate() FILA = 0 MSFlexGrid1.Cols = 6 MSFlexGrid1.TextMatrix(0, 1) = Label1.Caption MSFlexGrid1.TextMatrix(0, 2) = Label2.Caption MSFlexGrid1.TextMatrix(0, 3) = Label3.Caption MSFlexGrid1.TextMatrix(0, 4) = Label4.Caption MSFlexGrid1.TextMatrix(0, 5) = Label5.Caption

240

SENATI-Computacin e Informtica

ersonalizadas MSFlexGrid1.ColWidth(0) = 10 MSFlexGrid1.ColWidth(1) = 2000 MSFlexGrid1.ColWidth(2) = 2000 MSFlexGrid1.ColWidth(3) = 2000 MSFlexGrid1.ColWidth(4) = 800 MSFlexGrid1.ColWidth(5) = 1000 WindowState = 2 End Sub

Paso a Paso: Uso de control ActiveX - 3 1. Disear una aplicacin que permita mostrar el cuadro de desembolsos de un prstamo, dado a un determinado nmero de periodos y tasa de inters, aplicando el clculo de la amortizacin con el mtodo Alemn. As mismo se debe dar consistencia al ingreso de datos numricos. 2. Frmulas a utilizar. Prstamo = Prstamo perodo anterior Amortizacin Saldo = Saldo anterior Amortizacin Inters = Saldo del perodo * Tasa de inters Cuota = Amortizacin + Inters 3. Hacer clic en la ficha 4. Hacer clic en el men mostrado a continuacin. , botn , botn y disear el formulario

Hacer clic en el men Herramientas, Controles adicionales para agregar el control FlexGrid a la caja de controles.

SENATI-Computacin e Informtica

241

Microsoft Office Excel 2007

5. Hacer clic en el men General

, botn

y escriba el siguiente programa

Declaraciones Permite dar consistencia al ingreso de datos numricos

Public Sub IngNumero(ByVal KeyAscii As MSForms.ReturnInteger) If (KeyAscii >= 48 And KeyAscii <= 56) Then Exit Sub Else KeyAscii = 0 End If End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) Si el carcter ingresado no es nmero, se impide el ingreso del caracter Ascii 48 =0 Ascii 57 = 9

Call IngNumero(KeyAscii) End Sub Private Sub CommandButton1_Click() Dim xcapital As Single Dim xinteres As Single Dim xperiodos As Single Dim xamortiza As Single Dim xpa As Single

Invoca al procedimiento IngNumero

Declarar las variables a utilizarse

Asigna datos a las variables

xcapital = Val(TextBox1.Text) xinteres = Val(TextBox2.Text) xperiodos = Val(TextBox3.Text) xamortiza = xcapital / xperiodos


Asigna como No.de filas del control FlexGrid, el nmero de periodos

MSFlexGrid1.Rows = Val(TextBox3.Text) + 1 For f = 1 To Val(TextBox3.Text) MSFlexGrid1.TextMatrix(f, 1) = f MSFlexGrid1.TextMatrix(f, 2) = xamortiza If f = 1 Then MSFlexGrid1.TextMatrix(f, 3) = xcapital Else MSFlexGrid1.TextMatrix(f, 3) = xpa - xamortiza End If 242 SENATI-Computacin e Informtica
Crea un ciclo repetitivo de 1 hasta el No. de periodos

ersonalizadas

xpa = Val(MSFlexGrid1.TextMatrix(f, 3)) MSFlexGrid1.TextMatrix(f, 4) = xpa * (xinteres / 100)

xi = Val(MSFlexGrid1.TextMatrix(f, 4)) MSFlexGrid1.TextMatrix(f, 5) = xamortiza + xi Next End Sub


Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngNumero(KeyAscii) End Sub


Invoca al procedimiento IngNumero

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

Call IngNumero(KeyAscii) End Sub Private Sub UserForm_Activate() MSFlexGrid1.Cols = 6 MSFlexGrid1.TextMatrix(0, 1) = "No."

Invoca al procedimiento IngNumero Asigna la cantidad de filas para el FlexGrid.

MSFlexGrid1.TextMatrix(0, 2) = "Amortizacin" MSFlexGrid1.TextMatrix(0, 3) = "Saldo" MSFlexGrid1.TextMatrix(0, 4) = "Inters" MSFlexGrid1.TextMatrix(0, 5) = "Cuota" End Sub

Paso a Paso: Uso de control ActiveX - 4 1. Disear una aplicacin que permita asignara puntajes al azar a 10 participantes a un concurso de belleza, se evalan por 4 criterios: Belleza, inteligencia, cuerpo, desenvolvimiento. Los puntajes estn entre 1 y 10 por cada criterio. Al final mostrar el nmero de la participante ganadora y su puntaje

2. Hacer clic en la ficha

, botn

SENATI-Computacin e Informtica

243

Microsoft Office Excel 2007

3. Hacer clic en el men , botn formulario mostrado a continuacin.

y disear el

Control ListBox1

4. Hacer clic en el men programa General

, botn

y escriba el siguiente

Declaraciones

Dim numpart As Integer Dim numcrit As Integer Dim PtjeMax As Integer Dim PtjeMin As Integer Dim Puntaje(12, 4) As Integer Dim total(12) As Integer Private Sub CommandButton1_Click() ListBox1.Clear Randomize ScaleMode = 3 'Generacin de los puntajes aleatorios For candidata = 1 To 12
244 SENATI-Computacin e Informtica

ersonalizadas

For criterio = 1 To 4 Puntaje(candidata, criterio) = Int((10 - 5 + 1) * Rnd + 5) Next Next 'Determinar el puntaje total por participante For contpart = 1 To 12 total(contpart) = 0 For contcrit = 1 To 4 total(contpart) = total(contpart) + Puntaje(contpart, contcrit) Next Next For contpart = 1 To 12
registro = registro + "Concursante No. " & Right(("0" + Trim(Str(contpart))), 2) + " "

For contcrit = 1 To 4
registro = registro + Right(("0" + Trim(Str(Puntaje(contpart, contcrit)))), 2) + " "

Next ListBox1.AddItem registro + Str(total(contpart)) registro = "" Next 'Determinar mayor puntaje total mayor = 0 numero = 0 For contpart = 1 To 12 If total(contpart) > mayor Then mayor = total(contpart) numero = contpart End If Next TextBox1.Text = numero TextBox2.Text = mayor End Sub

SENATI-Computacin e Informtica

245

Microsoft Office Excel 2007

Cuestionarios
1. Qu es una funcin.

2. Qu es un Control Active X. __ 3. Considera til la creacin de funciones personalizadas.

4. Crear una funcin que permite determinar si un ao es bisiesto.

5. Crear una funcin que permita determinar la edad de una persona.

246

SENATI-Computacin e Informtica

Вам также может понравиться