Está en la página 1de 30

VISUAL BASIC APLICADO (VBA)

PARA APLICACIONES EN EXCEL


Cdigo 9679
Asignatura de libre opcin recomendada para CC. Actuariales y Financieras
Profesores
Juan M. Prez Salamero Gonzlez
Manuel Ventura Marco
CURSO 2005-2006

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

PARTE 1: Introduccin a Excel. Visual Basic para Aplicaciones en Excel (VBA).


La enseanza de la Matemtica de las Operaciones Financieras y Actuariales ha
experimentado durante la dcada de los noventa una transformacin profunda como
consecuencia de la introduccin progresiva de los programas informticos. Las hojas de
clculo, dada su gran facilidad de uso, su flexibilidad y su utilizacin generalizada, han sido
una de las herramientas disponibles ms potentes para el tratamiento de los problemas
financieros.
No obstante, es preciso tener en cuenta que para aplicaciones de alto nivel, se requieren
programas mas especializados y que cada vez se van extendiendo otras herramientas
informticas de clculo avanzado como los programas de clculo numrico (p. e. Matlab) o
de clculo simblico (Mathematica, Matlab, Derive) o el salto a la utilizacin del lenguaje
VBA (Visual Basic Aplicado) a Excel.
El curso est dirigido a usuarios de Excel sin experiencia previa en programacin con
inquietud por aprender sobre las posibilidades que ofrece el VBA as como a usuarios que
emplean habitualmente macros y desean potenciarlas con los recursos que ofrece VBA.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 1

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

No tenemos que convertirnos en programadores de alto nivel para empezar a aprovechar


las ventajas que ofrece el VBA. En realidad con unas pocas instrucciones seremos capaces
de realizar infinidad de programas.
Con este lenguaje de programacin (VBA) vamos a poder sistematizar y automatizar
tareas, crear funciones personalizadas e incluso aplicaciones completas que permiten la
realizacin de tareas con un mayor grado de complejidad, simplificando a su vez el manejo
de las mismas. En definitiva, permite la creacin de macros y secuencias de instrucciones
que le indican a Excel lo que debe realizar.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 2

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

TEMA 1.- Introduccin: Herramientas Avanzadas de Excel. Macros.


1.1.- Herramientas Avanzadas de Excel.
1.1.1
1.1.2
1.1.3
1.1.4
1.1.5
1.1.6

Funciones de bsqueda
Buscar Objetivo
Escenarios
Datos Tabla
Solver
Tablas dinmicas

1.2 Macros

1.2.1 Creacin, ejecucin y modificacin bsica de una macro.


1.2.2 Asignacin de una macro a objetos para su ejecucin rpida:
1.2.2.1 Botn de barra de herramientas.
1.2.2.2 Objeto grfico.
1.2.2.3 Men.
1.2.3 El contenido de una macro: Presentacin del Editor de Visual Basic.
1.2.4 Necesidad de depuracin de una macro.
1.2.4.1 Referencias absolutas y relativas en una macro.
1.2.4.2 Generacin de cdigo innecesario.
1.2.4.3 Otras causas.
1.2.5 Almacenamiento y firma de macros personales.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 3

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.1.1 Funciones de Bsqueda


Con estas funciones es posible encontrar valores en una lista o tabla de datos y extraer
datos de esa lista o tabla. Las ms usuales son BUSCARV, BUSCARH y BUSCAR.
BUSCARH(valor_buscado;matriz_buscar_en;indicador_filas; ordenado)
Esta funcin busca un valor (valor_buscado) en la fila superior de una tabla
(matriz_buscar_en). La fila superior de la tabla debe contener los valores en orden
ascendente. La funcin se detendr en aquel valor que sea igual al valor_buscado o en el
valor que ms se aproxime a valor_buscado y que sea menor que l. A continuacin devuelve
el valor que se encuentre tantas filas por debajo como indique el indicador_filas.
Si ordenado es falso solo encontrar el valor buscado si la coincidencia es exacta. Si
ordenado es verdadero o se omite, la funcin devuelve el mayor valor que sea menor que el
argumento valor_buscado.
=BUSCARV funciona igual que =BUSCARH, pero en este caso la bsqueda la realiza en la
primera columna de la tala y el indicador_columnas indica el nmero de columnas a
desplazarse a la derecha respecto a la primera columna.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 4

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Ejemplo 1.1:
A
1
2
3

Ao
Produccin
Beneficio

B
1970
123
-102

C
1980
157
-40

D
1990
258
500

E
2000
499
631

=BUSCARH(1987;A1:E3;2)
devuelve como resultado 157
=BUSCARH(1999;A1:E3;3)
devuelve como resultado
500
=BUSCARH(1999;A1:E3;3;falso) devuelve como resultado #N/A
Una vez que ya hemos obtenido unos resultados, operando con las frmulas o funciones de
Excel y con unos determinados datos, Excel nos proporciona diferentes mecanismos que
permiten plantearnos la pregunta:
Qu pasara si....?
Algunos de estos mecanismos son:
-Modificar directamente los datos iniciales
-Comando Herramientas Buscar Objetivo
-Comando Datos Tabla
-Administrador de escenarios
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 5

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.1.2 Buscar Objetivo


Busca un resultado especfico de una celda ajustando el valor de otra celda
Pasos a seguir:
1 Situarnos en la celda que contiene la frmula cuyo valor queremos obtener
2 En el men Herramientas, haga clic en Buscar objetivo.
3 En el cuadro Definir celda, introduzca la referencia de la celda que contenga la frmula
que desee resolver.
4 En el cuadro Con el valor, introduzca el resultado que desee.
5 En el cuadro Para cambiar la celda, introduzca la referencia de la celda que contenga el
valor que desee ajustar.

Ejemplo 1.2
Qu valor ha de tomar {el nmero de artculos, o el precio o el coste} si queremos obtener
un beneficio de 9.000.000?
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 6

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

A
B
C
D
1 DATOS: n artculos
precio
coste
2
12.000
1.000
400
3
4
NINGRESOS:
12.000.000
5
COSTES:
4.800.000
6
BENEFICIOS: 7.200.000
Resultado:
A
B
1 DATOS: n artculos
2
15.000
3
4
INGRESOS:
5
COSTES:
6
BENEFICIOS:

C
precio
1.000

D
coste
400

15.000.000
6.000.000
9.000.000

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 7

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Ejemplo 1.3
Obtener el precio base si queremos que el PVP tenga un valor determinado.
A
1 Precio base
2
3.000

B
IVA
16%

C
PVP
3.480

A
1 Precio base
2
3.017

B
IVA
16%

C
PVP
3.500

Si existe solucin nos muestra los valores que satisfacen los objetivos buscados y nos da
opcin a aceptarlos o rechazarlos.
Pero puede ocurrir que el proceso iterativo que sigue este comando no sea convergente, es
decir que no exista ningn valor que satisfaga el buscado en la frmula.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 8

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.1.3 Escenarios
Es otro mecanismo del tipo Qu pasara si...?
En este caso vamos a poder determinar cmo cambiaran ciertos clculos en funcin del
escenario que se est mostrando. Para el Ejemplo 1.2:
Pasos:
1 Creamos una hoja con los datos y frmulas que queremos utilizar.
2 En el men Herramientas, elegimos Escenarios.
Mostrar Ejecuta el escenario y muestra los
valores asociados a ese escenario
Agregar Sirve para definir el escenario
Modificar Permite modificar cualquier aspecto del
escenario
Eliminar Elimina el escenario seleccionado
Combinar Podemos traer a la hoja activa otros
escenarios definidos en otras hojas.
Resumen Se obtiene un informe resumen en una
hoja nueva. El propsito es poder tomar la
mejor decisin para nuestros objetivos

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 9

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1
2
3
4
5
6

A
DATOS:

B
n artculos
12.000
INGRESOS:
COSTES:
BENEFICIOS:

C
precio
1.000

D
coste
400

12.000.000
4.800.000
7.200.000

3 Hacemos clic en Agregar.


4 En el cuadro Nombre de escenario, introducimos
un nombre para el escenario.
5 En el cuadro Celdas cambiantes, introducimos las
referencias de las celdas que queremos cambiar.
6 En Proteger, seleccionamos las opciones que
deseamos.
7 Hacemos clic en Aceptar.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 10

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

8 En el cuadro de dilogo Valores del escenario, introducimos los valores que deseamos
para las celdas cambiantes.

9 Para crear el escenario, hacemos clic en Aceptar.


Para crear escenarios adicionales, hacemos clic en Agregar y, a continuacin, repetimos los
pasos del 3 al 9.
10 Al terminar de crear los escenarios, elegimos Aceptar y hacemos clic en Cerrar en el
cuadro de dilogo Administrador de escenarios.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 11

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Ejemplo 1.4 de resumen obtenido con el administrador de escenarios.


Resumen de escenario
Valores actuales:
Mximo
Celdas
cambiantes:
$B$2
12.000
15.000
$C$2
1.000
2.000
$D$2
400
400
Celdas de
resultado:
$C$6
7.200.000 24.000.000

Mnimo

Actual

15.000
500
400

12.000
1.000
400

1.500.000 7.200.000

Notas: La columna de valores actuales representa los valores de las


celdas cambiantes en el momento en que se cre el Informe
resumen de escenario. Las celdas cambiantes de
cada escenario se muestran en gris.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 12

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.1.4 Solver
Solver es una macro automtica que nos permite buscar soluciones de forma similar a
Buscar Objetivo, pero de manera que no solo podemos indicar el valor que debe tener una
celda, sino que adems es posible maximizar o minimizar dicho valor. Tambin tenemos la
opcin de establecer restricciones y condiciones en el modo de buscar ese valor.
Para poder utilizar el Solver, es necesario especificarlo en el proceso de instalacin del
Office, ya que por defecto no se instala. Se puede aadir posteriori con la opcin Agregar
o quitar programas del Panel de Control de Windows. Si a pesar de haberlo instalado, no
aparece en el men herramientas debemos aadirlo desde la ventana de Excel
Herramientas/Complementos y activar la casilla de verificacin del Solver.
Los pasos a seguir para resolver un problema con el Solver son:
- Definimos el problema
- Asignamos una celda a cada variable
- Asignamos una celda a la funcin y la escribimos en ella.
- Asignamos una celda a cada restriccin y las escribimos.
- Seleccionamos Herramientas/Solver
La solucin puede no existir, no ser nica, o ser infinita (problema no acotado). Hay que
tener cuidado con estos aspectos.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 13

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Ejemplo 1.5
Para los mismos datos del Ejemplo 1.2, qu valor ha de tomar {el nmero de artculos y el
precio} si queremos obtener un beneficio de 9.000.000?

* Escribimos:
- Celda de la funcin
- Celdas de la variable
- Valor deseado
- Introducimos las restricciones
* Hacemos clic en resolver
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 14

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Ejemplo 1.6:

Resuelva el problema de Programacin Lineal:

Max F(x) = 4 x + 5 y
s.a :
2x+y8
y 5
x, y 0

1
2

A
x
1

B
y
1

Resultado

C
D
E
F(x,y)
R1
R2
=4*A2+ =2*A2 =B2
5*B2
+B2
9
3
1

F
R3
=A2

G
R4
=B2

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 15

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Solucin:

1
2
2

A
x

B
y

1,5

C
D
E
F(x,y)
R1
R2
=4*A2+ =2*A2 =B2
5*B2
+B2
31
8
5

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

F
R3
=A2

G
R4
=B2

1,5

5
Pg. 16

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Normalmente lo ms difcil a la hora de utilizar Solver no es el uso de la herramienta en s,


sino el planteamiento del problema en la hoja de clculo. Podemos ver varios ejemplos de
resolucin de sistemas con el Solver en el archivo que incorpora Excel llamado
SOLVSAMP.XLS
Para resolver este tipo de problemas hay otros paquetes ms adecuados p. e. LINDO,
LINGO, GAMS, etc.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 17

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.1.5. Datos Tabla


Es otro mecanismo del tipo Qu pasara si...?
Ejemplo 1.7:

1
2
3
4

A
Capital:
Tipo:
Aos:
Cuota anual:

B
80.000,00
12,50%
10
14.449,74

Qu pasara si .... el capital fuese....


los intereses fuesen....
el n de meses fuera....?
Con el comando Datos Tabla podemos hacer este tipo de anlisis de forma rpida.
Las tablas se pueden construir de 1 o de 2 variables:

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 18

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

* Crear una tabla de datos de una variable


1 Introduzca la lista de valores que desee sustituir, formando una fila o una columna de
celdas con dichos valores.
2 Si las variables aparecen en una columna, introduzca la frmula en la fila situada encima
del primer valor y una celda a la derecha de los valores de columna. Introduzca las
frmulas adicionales a la derecha de la primera frmula.
Si las variables aparecen en una fila, introduzca la frmula en la columna situada a la
izquierda del primer valor y una celda por debajo de los valores de fila. Introduzca las
frmulas adicionales debajo de la primera frmula.
3 Seleccione el rango de celdas que contenga las frmulas y los valores que desee
sustituir.

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 19

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1
2
3
4
5
6
7
8
9

A
Capital:
Tipo:
Aos:
Cuota anual:

B
80.000,00
12,50%
10
14.449,74
=B4

11%
12%
13%

4 En el men Datos, haga clic en Tabla.


5 Si la tabla de datos est orientada a columna, introduzca la referencia de celda con la
variable que queremos sustituir en el cuadro Celda de entrada columna.
Si la tabla de datos est orientada a fila, introduzca la referencia de celda con la variable
que queremos sustituir en el cuadro Celda de entrada fila.
Pueden agregarse frmulas adicionales a una tabla de datos de una variable.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 20

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

*Crear una tabla de datos de dos variables


Las tablas de datos de dos variables solamente utilizan una frmula con dos listas de
variables. La frmula deber hacer referencia a dos celdas variables diferentes.
1 En una celda de la hoja de clculo, introduzca la frmula que haga referencia a las dos
celdas variables.
2 Introduzca una lista de variables en la misma columna, debajo de la frmula. Introduzca
la segunda lista en la misma fila, a la derecha de la frmula.
3 Seleccione el rango de celdas que contenga la frmula y los valores de fila y de columna.
4 En el men Datos, haga clic en Tabla.
5 En el cuadro Celda de entrada fila, introduzca la referencia de la celda variable para las
variables de la fila.
6 En el cuadro Celda de entrada columna, introduzca la referencia de la celda variable para
las variables de la columna.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 21

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1
2
3
4

A
Capital:
Tipo:
Aos:
Cuota anual:

5
6
7
8
9

=B4
11%
12%
13%

B
80.000,00
12,50%
10
14.449,74
50.000

60.000

70.000

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 22

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

1.1.6

Tablas Dinmicas

Las tablas dinmicas de Excel nos van a permitir resumir los datos de nuestras listas de
datos o de nuestras bases de datos en forma de tablas de referencia cruzadas o de
grficos.
Para poder crear este tipo de tablas, Excel incluye un asistente que nos gua en el proceso.
Este asistente se activa mediante el men Datos Asistente para tablas dinmicas.
Vamos a ver este proceso mediante un ejemplo:
Ejemplo 1.8:
Supongamos que tenemos una lista con los siguientes campos:
Cdigo Fecha Conductor Origen Destino Kilometra Mercancia Bultos Precio Porte
Y queremos saber el nmero de bultos totales que ha transportado cada conductor por
cada tipo de mercanca.
Esta informacin sera muy cmoda de consultar si se encontrase en una tabla similar a :
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 23

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 24

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 25

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 26

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 27

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Pagina: Si ponemos un campo


sobre esta seccin, tendremos
una tabla distinta para cada
campo.
Columna: Si colocamos un
campo en esta seccin veremos
en la parte superior de las
columnas los valores que tenga
dicho campo.
Fila: En la parte izquierda de
la filas veremos los distintos
valores que contenga el campo
que coloquemos.
Datos: Con el campo que coloquemos aqu, se realizar el clculo que seleccionemos,
agrupando previamente por los encabezados de fila y columna que hayamos escogido.
Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 28

Departamento de Economa Financiera.


Visual Basic para Aplicaciones en Excel

Cuando se genera la tabla dinmica, Excel muestra una barra de herramientas para poder
realizar diferentes operaciones con los datos obtenidos de la tabla:

Material elaborado por Julia Suso, Manuel Ventura y Juan M. Prez-Salamero

Pg. 29

También podría gustarte