Académique Documents
Professionnel Documents
Culture Documents
Que es Excel?
Para que sirve?
Cuando ocupar Excel?
Que puedo hacer con Excel?
Que NO puedo hacer con Excel?
Que elementos puedo utilizar para
solucionar problemas en Excel?
Vista de Excel
Frmulas
Algunas situaciones
Podemos arrastrar una frmula un nmero
determinado de filas o columnas?
Podemos decidir el valor de una celda, dado un
determinado valor en otra celda?
Que ocurre cuando hay varias condiciones que
debemos tomar en cuenta?
Ejercicios
Elabore una hoja de clculo que permita obtener
el promedio de 3 notas de un curso.
De acuerdo al promedio de notas del ejercicio
anterior, determine lo siguiente
Nota < 3.0 -> Reprobado (ROJO)
Nota >= 3.0 y Nota < 5.0 -> Examen
(MORADO)
Nota >= 5.0 -> Aprobado (AZUL)
Aplique formato condicional para cada nota.
Sumaproducto
Contar.si.conjunto
Sumar.si.conjunto
Indice
Coincidir
Buscarv
Si
Y
O
Entre MUCHAS otras
Megafrmulas
Macros
Excel es un programa que tiene un gran potencial, pero la
mayora de la gente lo maneja de una forma muy simple,
utilizando solo opciones bsicas, pero hay algo muy importante
que tengo que decirles. Excel cuenta con un lenguaje muy
poderoso llamado Visual Basic(VBA), este es solo una parte del
lenguaje, pero permite hacer o resolver los problemas mas
fcilmente, solo debemos aprender a programarlo y para eso
es este curso, podra la gente decir que este curso es un nivel
muy alto de Excel y quizs si lo sea, pero es fcil de aprender
ya que se manejaran trminos sencillos. La programacin que
emplea en este curso o las estructuras que aparecen son
creadas por nosotros mismos. Para manejar la programacin de
Visual Basic con Excel es necesario tener mucha creatividad,
cada persona puede crear estructuras diferentes pero que
trabajen igual.
Metodologa de trabajo
Determinar las necesidades del usuario
Planificar una habilidad que resuelva las necesidades del
usuario
Determinar la interfaz de usuario mas apropiada
Crear las frmulas, macros e interfaz de usuario
Testear la aplicacin bajo un conjunto razonable de
condiciones
Hacer la aplicacin amigable al usuario (a menudo basado
en los resultados del testeo)
Hacer una aplicacin estticamente agradable e intuitiva
Documentar la aplicacin
Distribuir la aplicacin a los usuarios
Actualizar la aplicacin siempre y cuando sea necesario
Entendiendo VBA
Modelo de objetos
El secreto para usar VBA radica en el entendimiento del
modelo de objetos. Es posible programar una aplicacin
a travs de los objetos que la aplicacin utilice.
El modelo de objetos de VBA, posee varios objetos que
permiten realizar los anlisis, tales como: Hojas de
clculo, grficos, tablas dinmicas y un gran conjunto
de funciones matemticas, financieras, de ingeniera,
entre otras. Con VBA es posible trabajar con esos
objetos y desarrollar procedimientos automatizados. A
medida que se trabaja con VBA, gradualmente
aumentar el entendimiento del modelo de objetos.
Macros en Excel
Pero vamos a lo que vinimos
Active la ficha programador Heche un vistazo a
los elementos disponibles.
Presione Alt + F11
Macros en Excel
Objetivos de este captulo
Comprender los elementos del lenguaje,
incluyendo variables, tipos de datos,
constantes y arreglos.
Usar funciones predefinidas de VBA
Manipulacin de objetos
Controlar la ejecucin de sus procedimientos.
Presione Play o F5
Anlisis
Declara el
inicio de un
programa
Comentario: Comienza
con un apstrofe ( ),
y VBA no lo considera
en la ejecucin
Cuadro de mensajes,
indicando el mensaje
Hola
Fin del programa
Tipos de datos
admitidos en
VBA.
Operadores Aritmticos
Suma: +
Resta: Multiplicacin: *
Divisin: /
Potencia: ^
Divisin entera: \ (Ej: 16\3 = 5)
Resto: Mod (Ej: 4 Mod 3 = 1)
Observe la
concatenacin
(&)
Ejercicios
1. Hallar la suma de tres nmeros enteros.
2. Hallar el cociente y el resto de dos nmeros enteros.
3. Dado el valor de venta de un producto hallar el valor del impuesto
(19%) y el precio de venta final.
4. Hallar la potencia de an Donde a y n sean enteros.(Observe que
pasa con el tipo integer con valores mayores a 32,767, Use el tipo
LONG para almacenar el resultado en ese caso)
5. Hallar la raz ensima de un nmero, Use el tipo Single o Double.
6. Utilizando la divisin de enteros y el resto, escriba un programa
que ingrese un nmero de 5 dgitos y lo entregue en orden inverso.
(Concatene (&) para obtener el resultado final)
7. Determine la suma de los N primeros nmeros enteros ( S =
N*(N+1)/2)
8. Calcule el valor futuro de una inversin C, dada una tasa de inters
i%, en n periodos. (VF = C*(1+i)^n)
Ejercicios
9. Cree un programa para calcular el rea de un
crculo. Investigue como manejar el nmero pi.
10. Cree un programa que permita convertir una
cantidad de segundos a un formato hh:mm:ss.
(Utilice resto, divisin de enteros y concatenacin).
11. Dado 4 nmeros, obtener el porcentaje de cada
uno en funcin a la suma de los 4 nmeros
ingresado.
12.Hallar el rea y permetro de un tringulo.
13.Dada una cantidad de horas obtener su
equivalente en minutos y segundos.
Arreglos (Arrays)
Arrays
Un array es un conjunto de elementos
(Cualquiera sea su tipo), que tienen el mismo
nombre en comn. Por ejemplo Meses del ao,
el cual tendra 12 elementos.
Arrays
Declarando un Array
Se declara de la misma forma de una variable
regular. Pero tambin se debe especificar el
nmero de elementos que contendr el array.
Dim MiArray(5) as Integer
Contiene 6 elementos ya que el primer elemento
es MiArray(0), y el ltimo elemento es
MiArray(5).
Arrays
Existen Arrays Multidimensionales y pueden
contener hasta 60 dimensiones.
Ejemplo:
Arrays
Arrays Dinmicos: Un Array dinmico no tiene un
nmero prefijado de elementos. Se declara de la
siguiente forma.
Dim MiArray() as Integer
Antes de poder utilizar el array dinmico sin embargo
debemos usar la sentencia ReDim, para indicarle a
VBA cuantos elementos contendr finalmente el array.
Redim MiArray(n)
Arrays Ejemplo
Cree un Programa que tome tres valores del
rango A1:C1, y en el rango A2:C2, ponga los
valores multiplicados por un factor X
Variables Objeto
Variables Objeto
Una Variable Objeto es una variable que representa un objeto, tal
como un rango o una hoja. Son importantes por dos razones:
Simplifican el cdigo significativamente, hacindolo ms legible.
El cdigo puede ejecutarse ms rpido.
Las variables objeto se declaran tal como las variables normales.
Por ejemplo
Dim InputArea as Range
Utilice la sentencia Set para poder asignar el rango a la variable.
Variables Objeto
Para ver como las variables objetos simplifica el
cdigo, veamos un ejemplo
Funciones de VBA
Funciones de VBA
VBA tiene una variedad de funciones propias del
lenguaje que simplifica los clculos y
operaciones. Muchas funciones de VBA son
similares ( o idnticas ) a las de excel. Por
ejemplo la funcin de VBA Ucase, es similar a la
funcin MAYUSC de excel, la cual convierte una
cadena de texto a maysculas.
Funciones de VBA
Ejemplo de funcin interna de VBA
Funciones de VBA
Se pueden utilizar muchas (no todas) de las
funciones de Excel en el cdigo VBA. El objeto
WorksheetFunction almacena todas las funciones
disponibles para poder utilizar. Se debe utilizar la
siguiente sentencia para llamar a las funciones de
excel.
Application.WorksheetFunction
If Then - Else
Quizs el tipo mas utilizado, est especialmente
diseado para tomar decisiones. Un programa
que toma decisiones de seguro nos aliviana la
tarea a realizar.
Sintaxis Bsica: Permite evaluar una condicion y
ejecutar una accin en una sola lnea de cdigo
Sintaxis mas utilizada: Bsicamente lo mismo que
la sintaxis bsica, pero se pueden realizar
mltiples acciones dependiendo de una condicin
If Then - Else
Sintaxis generalizada: Permite evaluar tantas
condiciones como se desee con sus consiguientes
acciones a realizar.
SELECT - CASE
La instruccin Select Case es til cuando
deseamos escoger entre 3 o mas opciones, es
una buena alternativa al uso de If Then Else.
La Sintaxis es la siguiente.
pobre
normal
bueno
muy bueno
Pr 1
od
2
uc
to 3
Calidad
1
5000
4500
4000
4500
4000
3500
4000
3500
3000
LOOPS
Un Loop es el proceso de
repetir un bloque de
instrucciones. Puede tener
dos opciones:
Se conoce el nmero de
repeticiones a priori.
El nmero de
repeticiones viene dado
por una condicin.
FOR - NEXT
Es el tipo ms simple
de loop. Su sintaxis
es la siguiente:
Analice el
mecanismo de
esta instruccin
Esta forma
es ms
eficiente.
Do While
Este es otro tipo de estructura de loop disponible
en VBA. A diferencia de la estructura For Next,
Do While ejecuta un conjunto de acciones hasta
que una condicin es conocida.
En este caso la
condicin se evala al
INICIO del Bucle
En este caso la
condicin se evala al
FINAL del Bucle
Do While: Ejemplos
Si deseamos seleccionar la primera celda vacia
en la columna de la celda activa podramos
utilizar la siguiente macro.
Do While: Ejemplos
Este es un ejemplo en el cual se prueba la
condicin al comienzo del loop. Se busca un
valor mayor a 1.5 en la columna B. Note que lo
hace hasta que encuentra la primera celda vaca,
una vez encontrada termina el Loop. En el caso
de encontrar un valor mayor que 1.5, con la
sentencia Exit Do, termina el Loop.
Do While: Ejemplos
El siguiente procedimiento escribe las fechas del
mes actual en una columna comenzando desde la
celda activa.
Do While: Ejemplos
El mismo ejemplo anterior pero ahora la
condicin se evala al final del loop.
Do While: Ejemplos
Un ejemplo bastante til se encuentra en la
lectura de archivos de texto, cuyos datos pueden
ser almacenados en las celdas, observe el
siguiente ejemplo.
El archivo debe
estar
almacenado en
una ubicacin
fija. A travs del
mtodo
GetOpenFileNa
me, podemos
hacer variable
la ubicacin de
los archivos.
Resumen
Hasta ahora hemos visto las principales herramientas que nos aporta
VBA para poder realizar aplicaciones basadas en hojas de clculo.
Es importante practicar, ya que de ese modo tendremos la soltura
necesaria para poder realizar tareas complejas.
Tenga en cuenta que estos contenidos tienen un carcter bsico. VBA
tiene un conjunto mucho mayor de elementos de lo que hemos visto,
algunos de los cuales veremos a medida que avanza el curso.
Con estos elementos a mano y otros que iremos viendo en el camino
comenzaremos a realizar tareas aplicadas a nuestra especialidad, la
ingeniera de minas.
Ejercicio
Cree un archivo de valores separados por comas.
Que tenga 4 filas y 3 columnas de nmeros.
Esta macro lee los datos del archivo y los
almacena en una matriz de 4 x 3.
Funciones en VBA
Funciones en VBA
Una funcin es un procedimiento VBA que
desarrolla clculos y devuelve un valor.
Las funciones usualmente retornan un solo valor
(o un array), tal como las funciones incluidas en
Excel.
Las funciones son bastante verstiles y se pueden
utilizar en dos situaciones
Como parte de una expresin en un
procedimiento VBA
En frmulas para una planilla,
Funciones en VBA
A menudo se pueden crear funciones
personalizadas que pueden simplificar
enormemente las frmulas.
Cuando se crean aplicaciones, podemos notar
que algunos procedimientos repiten ciertos
clculos, en tales casos, es bueno considerar
crear una funcin personalizada que desarrolle
esos clculos.
Una funcin personalizada puede eliminar la
necesidad de repetir varias veces un cdigo.
Funciones: Ejemplos
Si deseamos sumar dos valores contenidos en
dos celdas diferentes podemos crear una funcin
tal como la que se muestra a continuacin:
Utilice esta funcin en una planilla
Funciones: Ejemplos
A continuacin se muestra una funcin que
permite eliminar las vocales de un texto.
Utilice esta funcin en una planilla.
Funciones: Ejemplos
Funciones sin argumento:
Funciones: Ejemplos
Suponga que desea leer un modelo de bloques
que viene en formato de archivo de texto con
valores separados por comas. Se puede crear una
funcin que sea capaz de separar cada dato de
una misma lnea. De ese modo podemos leer un
modelo de bloques que tenga un nmero de
columnas variable.
Observe el siguiente ejemplo.
Pruebe esta
funcin paso
a paso (F8)
para
comprobar
como
funciona
Funciones: Ejemplos
Ahora creemos un tipo de dato que me permita
manejar de una manera mas entendible dicho
modelo (ya se conocen las variables del modelo
subido al ambiente aprendizaje)
Funciones: Ejemplos
Lectura
del modelo
de bloques
con la
funcin
extrae.
Funciones Ejercicios
Solucin
Una solucin al problema podra ser la siguiente:
Solucin
Suponiendo que los
valores se encuentran
en estas celdas. En
una hoja llamada
Valorizacion