Está en la página 1de 21

Universidad Sergio Arboleda Informtica III Tema2: Excel Macros y VBA

Administracin Empresarial, Finanzas y Comercio Exterior


Juan Manuel Cubillos A. Ingeniero de Sistemas, M.Sc., PMP, TOGAF, COBIT Semestre 1 - 2011

Agenda
1. Introduccin
Justificacin de las macros Este tema fue revisado en Informtica II programacin en Excel Macros simples Macros de nivel de complejidad simple-intermedia Macros de nivel de complejidad intermedia-compleja

2.

Macros Este tema fue revisado en Informtica II


3.

Creacin y Manejo de Formularios


Formularios sencillos (practicar) Formularios de ingreso de datos Formularios que ejecutan operaciones financieras
Revisin de cdigo VBA Anlisis de funciones Ejemplos aplicados a las finanzas

4.

Cdigo Visual Basic para Excel - Ejercicios


5. 6.

Resumen Ejercicios extra-clase


2

1. Introduccin
MS Excel tiene incorporado un lenguaje de programacin llamado VBA Visual Basic para Aplicaciones. Este lenguaje es utilizado en los casos en los cuales la funcionalidad disponible de Excel no es suficiente. Existen muchos lenguajes de programacin pero uno de los ms sencillos y potentes es Visual Basic
3

1. Introduccin
La programacin en Excel sugiere un ciclo de Anlisis Diseo Programacin Pruebas Ejecucin Mantenimiento. Existen programas llamados IDEs (Integrated Development Environment) para desarrollar programas. Excel tiene su propio IDE que se activa con la combinacin de teclas ALT + F11
4

1. Formularios Simples
Realice el siguiente ejercicio:
Crear un Botn (Men de Programador) Asignar la macro comando

1. Formularios Simples
Asigne el fragmento de cdigo a la macro comando:
Sub comando() Dim nombre As String nombre = InputBox("Digite sus nombres y apellidos", "Parmetros de entrada", "Nombres, Apellidos") MsgBox ("Hola" & nombre & "!!") End Sub

Ejecute el programa

2. Ejercicio No.1
Crear un convertidor de temperatura entre grados Centgrados y grados Fahrenheit.
Anlisis
Las frmulas son:

Diseo
Se crearn botones para ejecutar la conversin de temperaturas.
7

2. Ejercicio No.1
Diseo
Diseo de la pantalla:

2. Ejercicio No.1
Programacin
Botnes:
Macro 1: centigradosAfahrenheit() Macro2: fahrenheitAcentigrados ()

Cdigo de las macros:


Sub centigradosAfahrenheit() Range("D6").Value = (Range("B6").Value) * 9 / 5 + 32 End Sub Sub fahrenheitAcentigrados() Range("B6").Value = (Range("D6").Value - 32) * 5 / 9 End Sub
9

2. Ejercicio No.1
Pruebas
Ir a cualquiera de las direcciones para comparar resultados: http://www.lenntech.es/calculadoras/temperatura/temperatu ra.htm http://www.translationtown.com/tt/_es/cont/conversort.asp http://es.metric-conversions.org/conversion-de-unidades-detemperatura.htm

10

2. Ejercicios No.2
Dado un rango de 20 nmeros, utilizando VBA (no utilizar frmulas) hallar lo siguiente:
El mximo nmero del rango El mnimo nmero del rango El promedio nmero del rango La desviacin estndar nmero del rango La sumatoria del rango

11

2. Ejercicios No.2
Anlisis y Diseo

12

2. Ejercicios No.2
Programacin
Botnes:
Calcular Macro: Calcular() Limpiar Macro: limpiar()

Cdigo de las macros:


Sub calcular() Range("D4").Value = Application.WorksheetFunction.Max(Range("A1:A21")) Range("D5").Value = Application.WorksheetFunction.Min(Range("A1:A21")) Range("D6").Value = Application.WorksheetFunction.Average(Range("A1:A21")) Range("D7").Value = Application.WorksheetFunction.StDev(Range("A1:A21")) Range("D8").Value = Application.WorksheetFunction.Sum(Range("A1:A21")) End Sub Sub limpiar() Range("D4").Value = "" Range("D5").Value = "" Range("D6").Value = "" Range("D7").Value = "" Range("D8").Value = "" End Sub 13

2. Ejercicios No.2
Pruebas
Probar con los nmeros del 1 al 20. Los resultados deben ser los siguientes:
Estadsticas Nmero Mximo Nmero Mnimo Promedio Desviacin Estndar Sumatoria

20,00 1,00 10,50 5,92 210,00

14

2. Ejercicio No.3
Crear un programa de flujo de pagos dada la siguiente informacin:
Valor inicial del prstamo Tasa de inters Nmero de periodos

15

2. Ejercicio No.3
Crear un programa de flujo de pagos dada la siguiente informacin:
Valor inicial del prstamo Tasa de inters Nmero de periodos

Anlisis
Se debe hallar el valor de la cuota mensual para construir el flujo de pagos del prstamo El valor de la cuota se hala con la funcin Excel PAGO

16

2. Ejercicio No.3
Diseo
Se utilizar la funcionalidad de INPUTBOX para almacenar los valores del prstamo, la tasa de inters y el nmero de periodos. Se utilizar la funcin Application.WorksheetFunction.pmt para calcular el valor del pago peridico.

17

2. Ejercicio No.3
Diseo
Pantallas de entrada de datos:

0,03

18

2. Ejercicio No.3
Programacin
Botn de Iniciar: Macro iniciar() Botn de Restablecer : Macro reestablecer()
Sub reestablecer() Range("G1:L180") = "" End Sub

19

2. Ejercicio No.3
Sub iniciar() Dim valorPrestamo As Double 'tipo de datos con decimales Dim tasaInteres As Double 'tipo de datos con decimales Dim numeroPeriodos As Integer 'tipo de datos entero Dim valorCuota As Double 'tipo de datos con decimales Dim contador As Integer valorPrestamo = InputBox("Digite el valor del prstamo", "Parmetros de entrada", "20000000") tasaInteres = InputBox("Digite la tasa de inters", "Parmetros de entrada", "0,03") numeroPeriodos = InputBox("Digite el nmero de cuotas", "Parmetros de entrada", "36") valorCuota = Application.WorksheetFunction.Pmt(tasaInteres, numeroPeriodos, -valorPrestamo) Range("G4").Value = "Mes" Range("H4").Value = "Saldo de la Deuda" Range("I4").Value = "Pago Mensual" Range("J4").Value = "Intereses" Range("K4").Value = "Amortizacin Capital" Range("L4").Value = "Saldo Deuda al Final del Periodo" 'Mes 1 Range("G5").Value = 1 Range("H5").Value = valorPrestamo Range("I5").Value = valorCuota Range("J5").Value = valorPrestamo * tasaInteres Range("K5").Value = valorCuota - (valorPrestamo * tasaInteres) Range("L5").Value = valorPrestamo - (valorCuota - (valorPrestamo * tasaInteres)) contador = 2 While contador <= numeroPeriodos Cells(contador + 4, 7).Value = contador 'La funcin CELLS (Fila, Columna) Cells(contador + 4, 8).Value = Cells(contador + 3, 12).Value Cells(contador + 4, 9).Value = valorCuota Cells(contador + 4, 10).Value = Cells(contador + 4, 8).Value * tasaInteres Cells(contador + 4, 11).Value = valorCuota - Cells(contador + 4, 10).Value Cells(contador + 4, 12).Value = Cells(contador + 4, 8).Value - Cells(contador + 4, 11).Value contador = contador + 1 Wend MsgBox ("Proceso Finalizado!!") End Sub

20

Tarea
Revisar todos los programas realizados en clase:
Analizar cada lnea del programa Cambiar los valores de los parmetros y ejecutar el programa para verificar el nuevo comportamiento Buscar en Internet ejemplos de programas sencillos e implementarlos en Excel No olvidar grabar los archivos Excel con cdigo con el formato Habilitado para Macros . De lo contrario pueden perder el cdigo VBA que han escrito

21

También podría gustarte