Manual 1
Manual 1
Manual 1
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:
SENATI-Computacin e Informtica
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
Registros
SENATI-Computacin e Informtica
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
6. Para adicionar registros hacer clic en el botn 7. Se presenta un formulario en blanco, ingrese el siguiente registro
SENATI-Computacin e Informtica
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
SENATI-Computacin e Informtica
s de datos II
SENATI-Computacin e Informtica
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.
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
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
7. Del cuadro de dilogo presentado activar la casilla de verificacin Distinguir maysculas de minscula
SENATI-Computacin e Informtica
9. Hacer clic en el botn para terminar. Se mostrarn los registros ordenados por el campo NombreProducto, distinguiendo las maysculas de las minsculas.
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
s de datos II
6. Hacer clic en el botn para terminar, se mostrarn los registros ordenados por el campo cantidad
SENATI-Computacin e Informtica
11
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
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
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
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
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.
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.
SENATI-Computacin e Informtica
15
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.
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.
s de datos II
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
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.
, botn
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
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
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.
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
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
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
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 Texto
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.
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
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 Texto
SENATI-Computacin e Informtica
29
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
s de datos II
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 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
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.
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
SENATI-Computacin e Informtica
33
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.
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
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.
SENATI-Computacin e Informtica
35
Escribir mensaje
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
36
SENATI-Computacin e Informtica
Paso a Paso: Rodear con crculo datos no vlidos 1. Hacer clic en la ficha
Hacer clic en la lista Validacin de datos
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
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
7. Del cuadro de dilogo valores del escenario especifique segn la grfica mostrada
SENATI-Computacin e Informtica
39
como
Del cuadro de dilogo valores del escenario especifique segn la grfica mostrada Hacer clic en el
botn Aceptar
como
11. Del cuadro de dilogo valores del escenario especifique segn la grfica mostrada
para terminar
SENATI-Computacin e Informtica
41
Paso a Paso: Mostrar escenarios 1. Abrir el archivo 1 Escenarios 2. Hacer clic en la ficha
4. Se presenta el cuadro de dilogo Administrador de escenarios 5. Seleccione el 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
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
9. Hacer clic en el
SENATI-Computacin e Informtica
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
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
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
s de datos II
, 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.
Paso a Paso: Tabla de datos de una variable 1. Disear la siguiente hoja de clculo
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
2. Disear un cuadro que permita conocer cunto pagaremos si la tasa de inters vara entre 26% y 35%.
46
SENATI-Computacin e Informtica
s de datos II
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.
SENATI-Computacin e Informtica
47
Paso a Paso: Tabla de datos de dos variable 1. Modificar su hoja como se muetsra en la grfica
2. Seleccionar el bloque de celdas A8:G18 (Matriz: inters - monto) 3. Hacer clic en la ficha
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
Montos prestados
Tasas de inters
SENATI-Computacin e Informtica
49
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
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
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 ,
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.
SENATI-Computacin e Informtica
53
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
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
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
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.
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
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)
En ambos casos aislamos el efecto de las cantidades ya que nos interesa el cambio en precios.
SENATI-Computacin e Informtica
61
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.
62
SENATI-Computacin e Informtica
Financieras
SENATI-Computacin e Informtica
63
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
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
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
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
SENATI-Computacin e Informtica
67
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
1000 0 P=? 1 2
1000
1000 . 8
1000
1000 9
1000 10
SENATI-Computacin e Informtica
69
Financieras
Sintaxis
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
2. Cunto dinero tendr en su cuenta al final de los 12 meses 3. Disear la siguiente hoja de clculo
72
SENATI-Computacin e Informtica
Financieras
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
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
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)
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
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
=F10*$F$4
Amort = Cuota - inters
=F10-H10 =I10-G10
=$F$6
80
SENATI-Computacin e Informtica
Financieras
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
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.
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
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.
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
87
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
88
SENATI-Computacin e Informtica
s de datos III
SENATI-Computacin e Informtica
89
para terminar
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
SENATI-Computacin e Informtica
91
e. Elegir Lineal
f.
92
SENATI-Computacin e Informtica
s de datos III
y = -0.27x + 3.09
2006 2007
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.
SENATI-Computacin e Informtica
93
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
SENATI-Computacin e Informtica
95
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.
s de datos III
, 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.
, 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
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
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
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
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
SENATI-Computacin e Informtica
101
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)
s de datos III
. 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 .
SENATI-Computacin e Informtica
103
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
SENATI-Computacin e Informtica
105
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
Valor de la celda objetivo, Monto que deseamos ajustar el precio de venta. 106 SENATI-Computacin e Informtica
s de datos III
, 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
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.
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
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.
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.
Encabezado de columna
Encabezado de fila
Lneas de divisin
Etiquetas de hojas
SENATI-Computacin e Informtica
111
3. Hacer clic con el botn derecho de la hoja que desea ocultar, luego hacer clic en el botn Ocultar.
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
lista
de
opciones
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.
Hacer clic para activar el control Escribir $E$3 para vincular este control con la celda en mencin
SENATI-Computacin e Informtica
113
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
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
SENATI-Computacin e Informtica
115
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
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
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
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
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
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
para terminar
Insertar control casilla de verificacin en la hoja de cotizacin. 12. Hacer clic para cambiar a la hoja cotizacin
, botn
Formularios
Hacer clic para activar el control Escribir $A$3 para vincular este control con la celda en mencin
, 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.
SENATI-Computacin e Informtica
121
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
para terminar
SENATI-Computacin e Informtica
Formularios
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
Paso a Paso: Ejemplos tipo con formularios 1. Realizar el siguiente diseo y asigne a la hoja el nombre ENCOMIENDA.
ENCOMIENDA
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
: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
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
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.
SENATI-Computacin e Informtica
131
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.
132
SENATI-Computacin e Informtica
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
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.
de la cinta de opciones
SENATI-Computacin e Informtica
135
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
136
SENATI-Computacin e Informtica
que
SENATI-Computacin e Informtica
137
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.
, botn
SENATI-Computacin e Informtica
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.
, elegir
, botn
SENATI-Computacin e Informtica
139
, botn
se muestra el cdigo
140
SENATI-Computacin e Informtica
Eliminar macros
Para eliminar una Macro seguir el siguiente procedimiento.
, botn
que
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
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.
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
, 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
, elegir
, botn
10. Repetir este proceso para crear a las otras dos Macros. 11. Adicionar los botones de comando a la hoja
, 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
, 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.
, elegir
Desactive la casilla N
146
SENATI-Computacin e Informtica
, botn
10. Repetir este proceso para crear a las otras dos Macros. 11. Adicionar los botones de opcin en la hoja
, 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
17. Repetir este procedimiento para signar Macro a los otros dos botones de opcin
SENATI-Computacin e Informtica 147
Botn Office,
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,
SENATI-Computacin e Informtica
149
150
SENATI-Computacin e Informtica
2. De esta forma puede utilizar esta plantilla para generar nuevos archivos
Elegir plantillas
151
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
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)
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
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
SENATI-Computacin e Informtica
157
Cuestionarios
1. Cules son los pasos para crear una macro.
4. Qu es un Macrovirus.
158
SENATI-Computacin e Informtica
Captulo
SENATI-Computacin e Informtica
159
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
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
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
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
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
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
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
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
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
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
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
, botn
Barra de men
Barra de herramienta
Ventana proyecto
de
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
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.
Controles Objetos
SENATI-Computacin e Informtica
171
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.
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
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
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 ( )
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
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
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:
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
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
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
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.
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
NombreVariable puede ser cualquier variable con excepcin de las de tipos definidos por el usuario.
SENATI-Computacin e Informtica 179
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()".
180
SENATI-Computacin e Informtica
181
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.
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
182
SENATI-Computacin e Informtica
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
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
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.
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
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
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
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#
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
SENATI-Computacin e Informtica
187
Menor o igual Mayor o igual Compara dos cadenas Cero o ms caracteres (Ejm: cad Like ma*) Cualquier carcter Cualquier dgito (0-9)
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
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.
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.
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
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
192
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
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.
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
196
SENATI-Computacin e Informtica
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
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
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
198
SENATI-Computacin e Informtica
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
SENATI-Computacin e Informtica
199
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
200
SENATI-Computacin e Informtica
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
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
202
SENATI-Computacin e Informtica
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
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
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
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
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
Nota. Slo se puede trabajar con la celda activa cuando la hoja de clculo en la que se encuentra sea la hoja activa.
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
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
SENATI-Computacin e Informtica
207
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
, botn , botn
2. Se abre la ventana de Visual Basic, hacer clic en el men 3. Se presenta la ventana de programacin de mdulo.
, botn
208
SENATI-Computacin e Informtica
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.
Descripcin que acompaa a la casilla. True/False. Determina si est habilitado para responder a las acciones del usuario. Nombre del control.
209
Value
Eventos Click
210
SENATI-Computacin e Informtica
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.
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
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
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.
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
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
SENATI-Computacin e Informtica
215
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
'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
SENATI-Computacin e Informtica
217
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.
218
SENATI-Computacin e Informtica
SENATI-Computacin e Informtica
219
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
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
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)
'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
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
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
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
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
226
SENATI-Computacin e Informtica
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
'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:
SENATI-Computacin e Informtica
229
ersonalizas
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
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.
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
SENATI-Computacin e Informtica
233
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
, botn , botn
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
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
236
SENATI-Computacin e Informtica
ersonalizadas
, 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
, botn y disear el
Hacer clic en el men Herramientas, Controles adicionales para agregar el control FlexGrid a la caja de controles.
, 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
, botn
y escriba el siguiente
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 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
, botn
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
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
Call IngNumero(KeyAscii) End Sub Private Sub UserForm_Activate() MSFlexGrid1.Cols = 6 MSFlexGrid1.TextMatrix(0, 1) = "No."
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
, botn
SENATI-Computacin e Informtica
243
y disear el
Control ListBox1
, 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
Cuestionarios
1. Qu es una funcin.
246
SENATI-Computacin e Informtica