Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Captulo
Anlisis de datos II
En este captulo trataremos:
Formato como tabla
Herramientas de datos
Consolidacin y referencias 3D
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
Campo2
Campo3
Campo4
Campo5
Registros
Hacer clic en la
opcin Personalizar
Seleccionar
Formulario
3. Seleccionar al celda A2
4. Hacer clic en el botn Formulario
para terminar
Ingrese SoftPlus,
nombre del cliente a
localizar
para terminar
Ordenar datos
La ordenacin de los registros nos permite ver y comprender mejor los datos, as como a
organizarlos y encontrarlos ms fcilmente y a tomar decisiones ms eficaces.
Se puede ordenar los registros por: Texto, nmeros, fechas u horas, color de celda, color
de fuente o icono, por una lista personalizada, filas, por ms de una columna o fila,
ordenar una columna en un rango de celdas sin afectar a las dems.
Hacer clic en
el botn
Ordenar
Seleccionar columna
NombreProducto
Seleccionar como
criterio de ordenacin
De mayor a menor
11
Seleccionar la
columna
FechaPedido
Seleccione su criterio
de ordenacin
Seleccionar columna
NombreProducto como tercer
criterio de ordenacin
Seleccionar columna
FechaPedido como segundo
criterio de ordenacin
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.
, botn
5. Ahora simplemente con hacer clic en la lista desplegable podr filtrar los
registros de datos segn sus requerimientos.
14
6. Hacer clic en el autofiltro grado y desactive las casillas del 2do. Al 6to. Grado,
de tal forma que slo se muestre alumnos del 1er. Grado.
Desactive
las
casillas del 2do.
Al 6to. grado
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.
, botn
Pensiones de alumnos
con valor entre 200 y 350.
Filtro mltiple
Se utiliza para especificar mltiples condiciones
Paso a Paso: Filtros mltiple
1. Abrir el archivo FILTROS
Utilice la siguiente lista de datos para filtrar registros donde:
Procedencia: CIV
Nivel: P
Grado: 1
, botn
17
Quitar un Filtro
Para mostrar en su tabla todos los registros, debe quitar los filtros aplicados.
, botn
Seleccionar uno
de los estilos
mostrados
19
active la casilla de
2.
20
Hacer clic en el
botn Nuevo
estilo de tabla
Hacer clic en el
botn Formato
21
Elegir donde
aplicar los
bordes
Hacer clic en la
ficha Bordes
Elegir el estilo
de lnea
Elegir color
Elegir color de
fondo
Elegir efecto de
relleno
5. Del grupo de opciones Personalizada hacer clic derecho sobre la que desea
modificar
7.
AP. Formacin Online.
Elegir Primera
franja de fila
Seleccionar
color de fondo
24
10. Repita el procedimiento 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).
25
Debido a que el
texto se separa
con comas, elegir
la opcin
Delimitados
26
Elegir coma
como separador
Elegir
Texto
27
Debido a que el
texto se separa con
comas, elegir la
opcin
Delimitados
28
Elegir Espacio
como separador
Elegir
Texto
Celda a partir de
donde se colocaran
los datos
29
Quitar duplicados
Es posible eliminar valores duplicados de una lista utilizando la herramienta quitar
duplicados.
2. Ordenar la lista por el campo que desea eliminar los datos duplicados
3. Hacer clic en la ficha
Hacer clic en
el botn
Ordenar
30
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
2. Seleccionar las celdas C4:C13 para agregarle una restriccin, que acepte slo
como datos los nmeros: 1 hasta 120.
3. Elegir la ficha
Hacer clic en la
ficha
Configuracin
Elegir Nmeros
enteros
Elegir Entre
Ingresar 1 como mnimo y
120 como mximo.
33
Mximo: 120
34
2. Seleccionar las celdas E4:E13 para agregarle una restriccin, que acepte slo
como datos fechas: entre 1/1/1965 hasta 1/1/1980
3. Elegir la ficha
Hacer clic en
configuracin
la
ficha
Elegir Fecha
Elegir Entre
Ingresar 1/1/1965 como
1/1/1980 como mximo.
mnimo
35
Escribir mensaje
36
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.
37
38
Escriba Mejor
opcin
Seleccione el bloque
de celdas B15:B18
Hacer clic en el
botn Aceptar
39
Escriba
B15:B18
celdas cambiantes
como
Escriba
B15:B18
celdas cambiantes
como
Hacer clic en el
botn Aceptar
11. Del cuadro de dilogo valores del escenario especifique segn la grfica
mostrada
para terminar
41
9. Hacer clic en el
AP. Formacin Online.
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
Hacer clic en el
botn anlisis Y si.
Valor que
queremos pagar
mensualmente
Valor a
localizar
44
, 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.
45
Seleccionar
celdas A8:B18
46
Hacer clic en el
botn anlisis Y si.
47
Agregar el siguiente
cuadro a su hoja
Hacer clic en el
botn anlisis Y si.
48
Tasa de inters
Montos prestados
Tasas
de
inters
Monto a pagar
mensual
49
Si desea...
Entonces
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:
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
53
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.
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
Descripcin
SUMA
Suma nmeros.
PROMEDIO
PROMEDIOA
CONTAR
CONTARA
MAX
MAXA
MIN
MINA
PRODUCTO
Multiplica nmeros.
DESVEST
DESVESTA
DESVESTP
DESVESTPA
VAR
VARA
VARP
VARPA
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.
______________________________________________________________
______________________________________________________________
3. Cul es la diferencia entre 3D y Consolidacin de datos.
______________________________________________________________
______________________________________________________________
4. Cul es la utilidad del administrador de escenarios.
______________________________________________________________
______________________________________________________________
5. Cul es la utilidad de buscar objetivo.
______________________________________________________________
______________________________________________________________
58
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
59
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
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.
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
63
= (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
0 u omitido
Frmulas financieras
Renta
En funcin de P
En funcin de S
Vencida
Anticipada
Pago?
Pago?
Pago?
Pago?
nper=12
65
Se considera como
negativo por ser un
desembolso
66
Pago?
Pago?
Pago?
Pago?
nper=5
67
0 u omitido
Frmulas financieras
Flujo Vencido
Flujo Anticipados
1000
0
1000
2
1000
.
1000
8
1000
9
1000
10
P=?
69
Sintaxis
0 u omitido
71
72
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%
tasa=5%
pago= -2500
pago= -2500
tasa5%
pago= -2500
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%
tasa=5%
pago= -2500
tasa5%
pago= -2500
pago= -2500
Va=9500
Nper=?
Tasa=5%
tasa=5%
pago= -2500
tasa5%
pago= -2500
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).
75
Tipo
Es el nmero 0 1 e indica el vencimiento de los pagos.
Defina tipo como
0 u omitido
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.
Calcular la tasa de un prstamo de $8000 a cuatro aos con pagos mensuales de $200
76
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.
77
Proveedor
del activo
Usuario
del activo
Como se gestiona
-
El Leasing (ALQUILAR)
Si financia el 100% de la inversin
Con leasing, hay una sola cuota que ntegramente va a costos, antes de
impuestos
79
=F10*$F$4
=F10-H10
Amort = Cuota - inters
=I10-G10
=$F$6
80
81
Se quiere calcular la TIR del proyecto para tomar una decisin de aceptacin o
rechazo considerando que el coste de oportunidad del capital anual es de 15%.
Disear la siguiente hoja de clculo
83
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:
84
Cuestionarios
1. Cul es la diferencia entre un inters simple y un inters compuesto.
______________________________________________________________
______________________________________________________________
2. Cul es la diferencia entre valor presente y valor futuro.
______________________________________________________________
______________________________________________________________
3. Para que sirve la funcin TIR.
______________________________________________________________
______________________________________________________________
4. Cul es la diferencia entre activo y pasivo.
______________________________________________________________
______________________________________________________________
5. Qu es un Leasing.
______________________________________________________________
______________________________________________________________
85
Captulo
86
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.
a. Seleccionar el bloque de
celdas A4:B9
c. Del men
contextual
presentado
elegir La
opcin
Tendencia
lineal
87
Ventas del
primer
semestre
Ventas
proyectadas con
tendencia lineal
automtica, para el
ltimo semestre
b. Arrastrar con el
botn derecho del
mouse hasta la
fila
15,
luego
soltar el mouse
88
c. Del men
contextual
presentado
elegir La
opcin
Tendencia
geomtrica
Ventas del
primer
semestre
Ventas proyectadas
con tendencia
geomtrica, para el
ltimo semestre
89
Elegir
columna,
para que la
serie se
extienda
hacia abajo
Active la casilla
Tendencia
para terminar
Se genera la
tendencia
reemplazando a
los tres primeros
valores e la serie
original
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
b. Hacer clic en la
ficha Insertar
c. Seleccionar
celdas A2:B7
las
d. Elegir este
tipo
de
grfico
91
2004
2005
2006
2007
e. Elegir Lineal
f.
92
Activar la casilla
Presentar ecuacin
en el grfico
AP. Formacin Online.
y = -0,27x + 3,09
0
2003
2004
2005
2006
2007
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
y
Y donde x e y son las medias de muestra PROMEDIO(conocido_x) y
PROMEDIO (conocido y).
93
94
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
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
95
Tipos de defectos
Problemas
Muestra su distribucin.
Nmeros de clase.
, se presenta el siguiente
cuadro de dilogo.
Seleccionar rango de
entrada y rango de
clase segn se muestra
en la grfica.
Hacer clic en
Crear grfico.
AP. Formacin Online.
97
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
98
c. Distribucin plana
d. Distribucin en peine
99
Distribucin truncada
Descendencia suave de la
cola.
Descendencia
brusca de la cola
100
101
=B5*$F$2*B4
=SUMA(B5:E5)
Grupo de
celdas
cambiantes
Valor de la celda
objetivo, Monto que
deseamos obtener
como pedidos
. Se presenta la siguiente
103
Tiempo
que tarda
el proceso
de
solucin.
Tiempo
que tarda
el
proceso
de
solucin.
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
Utilizar la escala
automtica cuando
haya
grandes
diferencias
de
magnitud entre las
entradas y los
resultados
Utiliza la extrapolacin
lineal de un vector
tangente.
Utiliza
la
extrapolacin
cuadrtica,
que
puede
mejorar en gran medida los
resultados de problemas no
lineales
105
Grupo de
celdas
cambiantes
Valor de la celda
objetivo, Monto que
deseamos ajustar el
precio de venta.
106
Se presenta la siguiente
Agregar la
siguiente lista
de restricciones
Se presenta la siguiente
Cuestionarios
1. Cul es la utilidad de las herramientas de anlisis estadsticos.
______________________________________________________________
______________________________________________________________
2. Cul es la diferencia entre tendencia lineal y geomtrica.
______________________________________________________________
______________________________________________________________
3. Cul es la utilidad de un Histograma.
______________________________________________________________
______________________________________________________________
4. En que aplicara Solver.
______________________________________________________________
______________________________________________________________
5. Cul es la diferencia de las funciones Pronstico y Tendencia.
______________________________________________________________
______________________________________________________________
108
Captulo
Formularios
En este captulo trataremos:
Activacin de la ficha PROGRAMADOR
Diseo de formularios
Desarrollo de ejemplos tipo con formularios
109
de
Activar la casilla
Programador
110
para terminar.
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
111
3. Hacer clic con el botn derecho de la hoja que desea ocultar, luego hacer clic en
el botn Ocultar.
112
NOMBRES
DETALLES
Botn
Etiqueta
Campo de texto
Cuadro de grupo
Casillas de verificacin
Botn de opcin
Control de nmero
Cuadro combinado
Cuadro de lista
Muestra una
desplegables.
lista
de
opciones
Barra de
desplazamiento
, botn
113
=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.
$ 1,000.00
$ 1,300.00
2. Hacer en la ficha
900.00
, botn
114
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
115
2. Hacer en la ficha
, botn
Estos
datos
se
utilizarn
en
el
control
numrico
que se vincular con
el principal, celda B3
7. Hacer en la ficha
, botn
116
Utilice
estos
controles
para
definir el principal
y la tasa de inters.
=c4/100
$ 1,000.00
Impresora HP 840C
$ 150.00
Scanner HP 3500
$ 100.00
2. Hacer en la ficha
, botn
117
10. Ahora cada vez que hagamos clic, en las opciones de los productos, mostrar el
precio que le corresponde.
118
119
para terminar
para terminar
, botn
, botn
celdas
121
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
Elegir la
opcin Lista
Presione la tecla F3
para presentar la
lista de nombres de
rango, elegir
Productos.
para terminar
AP. Formacin Online.
=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)
123
ENCOMIENDA
COSTO
124
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
125
Valor actual
:0
Valor mnimo
:1
Valor mximo
: 50
Incremento
:1
Celda vinculante
: C7
127
128
Cuestionarios
1. Cules son los pasos para activar la Ficha Programador.
______________________________________________________________
______________________________________________________________
2. Cul es la utilidad del uso de formularios en Excel.
______________________________________________________________
______________________________________________________________
3. Cul es la diferencia entre un botn de opcin y una casilla de verificacin.
______________________________________________________________
______________________________________________________________
4. Cul es la diferencia entre un cuadro de lista y un cuadro combinado.
______________________________________________________________
______________________________________________________________
5. Cual es la utilidad de cuadro de grupos al utilizar los botones de opcin.
______________________________________________________________
______________________________________________________________
129
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
130
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...
131
Sin embargo es importante mencionar que usted debe contar con conocimientos
de programacin y conocer los objetos de Microsoft Excel.
132
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.
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
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
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
botn
, opcin
136
Elegir el certificado
desea utilizar
que
137
, botn
Escribir el nombre de la
Macro
Especificar donde se grabar la
Macro
, botn
AP. Formacin Online.
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
139
, botn
Elegir la Macro
OrdenarLista
se muestra el cdigo
140
Eliminar macros
Para eliminar una Macro seguir el siguiente procedimiento.
, botn
Elegir la Macro
desea eliminar
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.
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
, botn
Ordenar_Por_Apellidos
Ordenar_Por_Ocupacin
Ordenar_Por_Sueldo
, 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.
AP. Formacin Online:
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
Filtrar_Afil_AFP
Sueldo_Mayor_30000
Elimina_Filtro
, botn
145
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
, botn
10. Repetir este proceso para crear a las otras dos Macros.
11. Adicionar los botones de opcin en la hoja
, botn
Elegir
la
opcin
Filtra_Afil_AFP
17. Repetir este procedimiento para signar Macro a los otros dos botones de opcin
AP. Formacin Online:
147
148
Seleccionar una de
las plantillas
mostradas
149
150
2. De esta forma puede utilizar esta plantilla para generar nuevos archivos
Elegir la
plantilla
que
quiera
utilizar
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).
152
153
155
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
157
Cuestionarios
1. Cules son los pasos para crear una macro.
______________________________________________________________
______________________________________________________________
2. Es posible asignarle un atajo a una macro, para ejecutarlo rpidamente.
______________________________________________________________
______________________________________________________________
3. Para programar en una Macro, que lenguaje de programacin se utiliza.
______________________________________________________________
______________________________________________________________
4. Qu es un Macrovirus.
______________________________________________________________
______________________________________________________________
5. Cual es la utilidad de la creacin de plantillas, aplicando formularios y macros.
______________________________________________________________
______________________________________________________________
158
Captulo
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.
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
Definicin
del
problema
Definir
datos de
entrada
Definir
datos de
salida
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
162
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
163
V
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)
164
6. Diagrama de Flujo
INICIO
Declaracin de variables
N1, N2: entero
N1, N2
F
V
A>B
El primer
nmero no
es mayor
El primer
nmero es
mayor
FIN
Sentencia seleccin-caso
Esta es una estructura de decisin mltiple, evaluar una expresin condicional
que podr tomar uno de los n valores distintos que para algunos casos puede
tratarse de rangos o valores individuales, segn cumpla con uno de estos.
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
Gasolina
0 y 30
1 galn
31 y 60
2 galones
61 y 200
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
166
6. Diagrama de flujo.
INICIO
Declaracin de variables
V, T, E: entero
V, T
E=V*T
E
31 y 60
0 y 30
Debe
usar 1
galn
60 y 200
Debe
usar 2
galones
Debe
usar 3 o
ms
galones
FIN
Estructura Repetitiva.
Conjunto de instrucciones que se repiten un nmero determinado de veces
mientras se cumple una determinada condicin o en todo caso se le ha dado un
lmite de veces a ejecutar.
Inicio de Bucle
Instruccin 1
Instruccin N
167
Fin de Bucle
Inicio de Bucle
Fin de Bucle
AC = AC + N
Fin de Bucle
Ejemplo
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
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
169
, botn
Barra de men
Barra de herramienta
Ventana
proyecto
de
Formulario
Cuadro
de
herramientas
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.
Definicin
Tiempo de diseo
Tiempo de ejecucin
Formulario
Controles
Objetos
Propiedades
Mtodos
Eventos
171
Tipo de Control
172
Prefijo
Detalles
Etiqueta
lbl
lblAPELLIDOS
Cuadro de texto
txt
txtAPELLIDO
Casilla de verificacin
chk
chkIMPRESORA
Botones de opcin
opt
optCPU
cbo
cboCUDADES
Cuadro de lista
lst
lstPAISES
Botn de comando
cmd
cmdSALIR
Formulario
frm
frmENTRADA
Marco
fra
fraTIPOS
Lnea
lin
linVERTICAL
Imagen (Picture)
pic
picLOGOTIPO
Cuadro de nmero
spn
spnPGINAS
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
173
Lista de eventos
Lista de objetos
La barra de divisin
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
174
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
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.
175
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
176
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
177
Sentencia PRIVATE
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
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
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
178
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.
Procedimiento, como
permanente
Formulario
En su seccin de
declaraciones, como
Privada
Formulario
En su seccin de
declaraciones, como
Pblica
Mdulo
Como Privada
Private Variable As
Tipovariable
Puede usarse en toda la Public Variable As
aplicacin
Tipovariable
Mdulo
Como Pblica
179
La cadena de caracteres devuelta por TypeName puede ser una de las siguientes:
Cadena devuelta
La variable contiene
Byte
Un byte
Entero
Un entero.
Largo
Un entero largo.
Simple
Doble
Moneda
Un valor de moneda.
Fecha
Una fecha.
Cadena
Una cadena.
Boolean
Un valor Boolean.
Error
Un valor de error.
Empty
No inicializado.
Null
Objeto
Desconocido
Nada
180
Name
AutoSize
Caption
Font
Font
Locked
MaxLength
MultiLine
Name
PasswordChar
Text
Visible
Eventos
Change
KeyDown
un proceso.
Propiedades
Caption
Font
Name
Visible
Eventos
Click
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
txtData = Pedro
lblData = "Nombre
182
Variable
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
DETALLES
Booleana
2 Bytes
Byte
1 Bytes
183
Integer
2 Bytes
Long
4 Bytes
Single
4 Bytes
Doble
8 Bytes
Currency
String
Entero,
con punto
decimal
fijo
(Tpico de
monedas)
*
Date
8 Bytes
Fechas
Objet
4 Bytes
Referencia a objetos
Variant
Declaracin de variables
Para declarar una variable se utiliza la sentencia Dim.
Sintaxis:
Tipos de variables
A continuacin se describen los tipos de variable.
184
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
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
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.
AP. Formacin Online.
185
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
Constantes
Una constante es un nombre significativo que sustituye a un nmero o una
cadena que no vara. Hay dos orgenes para las constantes:
186
Operadores
a. Aritmticos
^
Exponenciacin
Multiplicacin
Divisin
Divisin entera
Mod
Suma
Resta
&
Concatenacin de cadenas
b. Comparacin
Igual
<>
Distinto
<
Menor que
187
<=
Menor o igual
>=
Mayor o igual
Like
Cualquier carcter
c. Lgicos
And
Y lgico
Or
O lgico
Xor
O Exclusivo
Not
Negacin
If condicin Then
Sentencias
End If
Donde:
Condicin. Es una expresin lgica, que devuelve un valor lgico: Verdadero o
falso. Ejemplo:
If cualquierFecha < Now Then CualquierFecha = Now
o
If cualquierFecha < Now Then
CualquierFecha = Now
End If
188
bloque de sentencias 1
Comando Cortar
Else
PasteActiveControl
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
189
.
.
.
[Case Else
[bloque de sentencias n]]
End Select
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:
190
Case 0
Case 1
CopyActiveControl
Comando borrar.
Case 2
ClearActiveControl
Comando Pegar.
Case 3
PasteActiveControl
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
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.
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
For...Next
For Each...Next
AP. Formacin Online.
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
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
Do
Sentencias
Loop
AP. Formacin Online.
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]
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.
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
Next elemento
Do
[bloque de sentencias]
[Exit Do]
[bloque de sentencias]
Loop [{While / Until} condicin]
de una
contiene
de dato
de dato
195
Significado
Range("A1")
Celda A1
Range("A1:B5")
Celdas de la A1 a la B5
Range("C5:D9,G9:H16")
Seleccin de varias
reas
Range("A:A")
Columna A
Range("1:1")
Fila 1
Range("A:C")
Columnas de la A a la C
Range("1:5")
Filas de la 1 a la 5
Range("1:1,3:3,8:8")
Filas 1, 3 y 8
Range("A:A,C:C,F:F")
Columnas A, C y F
196
Significado
Rows(1)
Fila uno
Rows
Columns(1)
Columna uno
Columns("A")
Columna uno
Columns
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.
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
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
199
200
201
202
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.
203
204
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
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
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
, botn
208
Botn
3. Se presenta la ventana de formulario
Control Marco
(Frame)
Este control permite agrupar otros controles para darle mayor funcionalidad a la
interfaz. Los controles Botones de Opcin necesariamente tienen que estar
agrupados por el control Marco. Para agrupar controles, dibuje primero el control
Marco y, a continuacin, dibuje los controles dentro de Marco.
Propiedades
Caption
Ttulo de marco.
Enabled
Name
Visible
Enabled
Name
209
Value
Visible
Eventos
Click
Enabled
Name
Value
Visible
True/False.
Determina si el
botn est visible
o no.
Eventos
Click
210
Ocurre cuando el
usuario hace clic
sobre el botn.
List
ListCount
ListIndex
Elemento seleccionado.
MultiSelect
Name
Selected
Sorted
True/False. Establece
alfabticamente.
Style
Text
los
elementos
se
ordenan
Mtodos
AddItem
RemoveItem
211
Eventos
Click
Ejemplos:
Muestra en el Cuadro de Texto
txtGaseosa el elemento seleccionado
Private Sub lstGaseosas_Click()
txtGaseosa.Text
lstGaseosas.Text
End Sub
List
ListCount
ListIndex
Elemento seleccionado.
Name
Sorted
True/False. Establece
alfabticamente.
Style
Text
si
los
elementos
se
ordenan
Mtodos
AddItem
RemoveItem
Eventos
Click
Change
Constante
Valor
Descripcin
vbComboDropDown
vbComboSimple
vbComboDropDownList
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
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
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
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
217
Abrir un libro
Al abrir un nuevo libro utilizando el mtodo Open, se convierte en un miembro
del conjunto Workbooks.
El siguiente procedimiento abre un libro denominado Amortizacion.xls, ubicado
en la carpeta SENATI de la unidad C.
Sub AbrirLibro()
Workbooks.Open("C:\SENATI\Amortizacion.xls")
End Sub
Cuestionarios
1. Realice un formulario aplicativo de acuerdo a las necesidades de su rea donde
labores, donde pueda aplicar los conocimiento aprendidos en programacin.
______________________________________________________________
______________________________________________________________
2. Crear un formulario aplicativo que permita ingresar una contrasea al abrir una
hoja de clculo.
______________________________________________________________
______________________________________________________________
3. Crear un atajo que permita llamar a un formulario que contiene un calendario.
______________________________________________________________
______________________________________________________________
218
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
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
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
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
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
224
Sub Filtra()
Range("basedatos").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:= _
Range("H5:K6"), CopyToRange:=Range("H12:K12"), Unique:=False
Range("A1").Select
End Sub
AP. Formacin Online.
225
Application.CutCopyMode = False
'Nombramos la base de datos como basedatos
Range("B5").Select
Selection.CurrentRegion.Select
ActiveWorkbook.Names.Add Name:="basedatos", RefersToR1C1:="=Hoja1!R5C2:R1005C5"
Range("A1").Select
End Sub
Option Explicit
Function CuentaListaA()
226
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!!")
227
'En las celdas vacias de una tabla copia el valor de la celda precedente
Sub RellenarCeldas()
Range("B5").Select
228
229
Captulo
Funciones personalizadas
En este captulo trataremos:
230
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]
AP. Formacin Online.
231
FUNCION
nombre
Parmetros
As Tipo
Numricos
String
Variant
Sentencias
expresin
Exit Function
End Function
232
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
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
, botn
, botn
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
235
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
, botn
, botn
y disear el formulario
, botn
y escriba el siguiente
Declaraciones
237
, botn
y disear el
, botn
. Edite el siguiente
238
, botn
y escriba el siguiente
Declaraciones
239
Call IngCar(KeyAscii)
End Sub
Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Call IngCar(KeyAscii)
End Sub
Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Call IngCar(KeyAscii)
End Sub
Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Call IngNumTelf(KeyAscii)
End Sub
Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Call IngNum(KeyAscii)
End Sub
Private Sub UserForm_Activate()
FILA = 0
MSFlexGrid1.Cols = 6
MSFlexGrid1.TextMatrix(0, 1) = Label1.Caption
MSFlexGrid1.TextMatrix(0, 2) = Label2.Caption
MSFlexGrid1.TextMatrix(0, 3) = Label3.Caption
MSFlexGrid1.TextMatrix(0, 4) = Label4.Caption
MSFlexGrid1.TextMatrix(0, 5) = Label5.Caption
240
, botn
, botn
y disear el formulario
241
, botn
Exit Sub
Ascii 57 = 9
Else
KeyAscii = 0
End If
Si el carcter ingresado
no es nmero, se impide
el ingreso del caracter
End Sub
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Call IngNumero(KeyAscii)
End Sub
Private Sub CommandButton1_Click()
Dim xcapital As Single
Dim xinteres As Single
xcapital = Val(TextBox1.Text)
xinteres = Val(TextBox2.Text)
xperiodos = Val(TextBox3.Text)
xamortiza = xcapital / xperiodos
MSFlexGrid1.Rows = Val(TextBox3.Text) + 1
For f = 1 To Val(TextBox3.Text)
MSFlexGrid1.TextMatrix(f, 1) = f
Crea
un
ciclo
repetitivo de 1 hasta
el No. de periodos
MSFlexGrid1.TextMatrix(f, 2) = xamortiza
If f = 1 Then
MSFlexGrid1.TextMatrix(f, 3) = xcapital
Else
MSFlexGrid1.TextMatrix(f, 3) = xpa - xamortiza
End If
242
Call IngNumero(KeyAscii)
Invoca al procedimiento IngNumero
End Sub
Call IngNumero(KeyAscii)
End Sub
Asigna la cantidad de filas
para el FlexGrid.
MSFlexGrid1.TextMatrix(0, 2) = "Amortizacin"
MSFlexGrid1.TextMatrix(0, 3) = "Saldo"
MSFlexGrid1.TextMatrix(0, 4) = "Inters"
MSFlexGrid1.TextMatrix(0, 5) = "Cuota"
End Sub
, botn
243
y disear el
Control ListBox1
, botn
y escriba el siguiente
Declaraciones
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
245
Cuestionarios
1. Qu es una funcin.
______________________________________________________________
______________________________________________________________
2. Qu es un Control Active X.
______________________________________________________________
______________________________________________________________
3. Considera til la creacin de funciones personalizadas.
______________________________________________________________
______________________________________________________________
4. Crear una funcin que permite determinar si un ao es bisiesto.
______________________________________________________________
______________________________________________________________
5. Crear una funcin que permita determinar la edad de una persona.
______________________________________________________________
______________________________________________________________
246