Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema2 ExcelMacrosVBA
Tema2 ExcelMacrosVBA
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.
3.
4.
5. 6.
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 ()
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()
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
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