Vous êtes sur la page 1sur 108

APLICACIONES DE SOFTWARE

MINERO: Aplicaciones en Excel


SEBASTIAN CASTILLO

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

Ingresar una frmula

Frmulas

Operaciones matemticas simples(+,-,*,/)


Nmeros negativos?
Clculo de las races de una ecuacin de segundo grado?
Clculo de distancia entre dos puntos en tres dimensiones?
Clculo de media, desviacin estndar y otras estadsticas?
Regresin Lineal?
Operaciones con matrices?
Clculo de probabilidades(Normal, Binomial, Exponencial,
Poisson, Etc?
ABURRIDO?
Seeeee

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.

Funciones tiles de Excel

Sumaproducto
Contar.si.conjunto
Sumar.si.conjunto
Indice
Coincidir
Buscarv
Si
Y
O
Entre MUCHAS otras

Megafrmulas

Situaciones mas complejas


Cmo podemos tomar una decisin en base al
color de una celda?
Cmo podramos poner un borde a la celda
automticamente dada una condicin?
Qu ocurre cuando tenemos un nmero no
definido de datos?
Que tal si queremos poner bordes a las celdas de
un nmero no definido de datos
Que tal si tenemos que hacer la misma tarea 200
veces con miles de datos

Situaciones mas complejas


Que pasara si se dieran todas las situaciones
anteriores a la vez en el mismo problema?
Podemos solucionar todos estos problemas de
una forma manual, pero cuanto tiempo le
tomar?

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.

Porqu conviene hacer un


programa en Excel
Excel es un producto altamente programable, y
definitivamente es la mejor opcin para
desarrollar aplicaciones basadas en hojas de
clculo.
Permite hacer aplicaciones que de otro modo,
seras muy tediosas de elaborar.

Una buena aplicacin debe


contener las siguientes
caractersticas:
Esta permite al usuario final desarrollar una tarea que podra

no ser capaz de hacer por si solo.


Provee una solucin apropiada al problema
Produce resultados precisos y libre de errores
Utiliza metodos eficientes y apropiados adems de algoritmos
que acompaen al trabajo.
Captura los errores antes de que el usuario pelee con ellos.
Provee una interfaz clara y consistente que permite al usuario
saber como proceder.
Puede correr en diferentes sistemas que tengan el software
apropiado.
Debe facilitar las modificaciones ya sea en la planilla misma o
en el cdigo escrito por el programador.

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.

La prctica hace al maestro

Aspectos bsicos de VBA


Antes de comenzar, es recomendable
familiarizarse con algunos conceptos.
Cdigo: Es bsicamente texto, pero que VBA lo
interpreta para desarrollar acciones. Es
guardado en un mdulo
Mdulo: Un mdulo VBA es guardado en un
archivo Excel. Se puede visualizar y editar con
el editor de VBA. Est compuesto de
procedimientos.

Aspectos bsicos de VBA


Procedimientos: Es una unidad de cdigo que
desarrolla alguna accin. Existen dos tipos de
procedimientos:
SUB: Un Sub consiste en una serie de
sentencias que sern ejecutadas.
Funcin: Una funcin es similar a un sub,
pero devuelve un valor, asociado a un tipo
de dato

Aspectos bsicos de VBA


Objeto Activo: Si se omite una referencia especfica a un objeto,
Excel utiliza el objeto activo. Ejemplo: Si se desea referir a la
celda A1 ubicada en la hoja1 podemos escribir:
Worksheets(Hoja1).Range(A1)
Pero si sabemos que la hoja1 est activada podemos simplificar
el cdigo a
Range(A1)
Propiedades de los objetos: Los objetos tienen propiedades. Por
ejemplo el objeto Range, tiene propiedades tales como: Text,
Value, Address, etc.

Aspectos bsicos de VBA


Variables: Sirven para asignar valores y almacenarlos en la
memoria. Por ejemplo para guardar el valor de la celda A1
de la hoja1 en una variable a, podemos escribir:
a = Worksheets(hoja1).Range(A1).Value
Mtodos: Un mtodo es una accin que se puede aplicar a
un objeto, un ejemplo de ellos es el de eliminar el valor de
la celda A1.
Range(A1).ClearContents
Eventos: Es posible escribir cdigo para que se realice una
accin cuando un determinado evento ocurre: Por ejemplo
si cambia el valor de una celda, es posible activar una
macro, sin necesidad de ejecutarla manualmente.

Aspectos bsicos de VBA


Objetos: Excel posee mas de 100 clases de objetos disponibles
para manipular. Ejemplos de objetos son: Excel(en si es un
objeto), Libros, Hojas, grficos, celdas, tablas dinmicas.
Los objetos van organizados en una jerarqua, y un objeto
puede contener varios tipos de objeto.
Colecciones: Un conjunto de objetos del mismo tipo forman una
coleccin. Por ejemplo la coleccin Worksheets representa todo
el conjunto de hojas que existan en un libro. Una coleccin es
un objeto.
Jerarqua de objetos: Para referirse a un objeto en particular
debemos respetar la jerarqua existente. Por ejemplo:
Application.Workbooks(Libro1).Worksheets(Hoja1).Range(A1)

Macros en Excel
Pero vamos a lo que vinimos
Active la ficha programador Heche un vistazo a
los elementos disponibles.
Presione Alt + F11

FUNDAMENTOS DE PROGRAMACION EN VBA

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.

Nuestro primer programa


Inserte un mdulo y escriba lo siguiente:

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

Todo programa comienza con Sub y termina con End Sub

Variables, tipos de datos y constantes


Una variables es simplemente un nombre
guardado en alguna ubicacin de la memoria. Las
variables se acomodan a una amplia variedad de
tipos de datos.
Para simplificar el desarrollo de aplicaciones es
conveniente usar los nombres de las variables tan
descriptivas como sea posible. Sin embargo
existen algunas reglas

Variables, tipos de datos y constantes


Reglas para nombrar variables.
1. Se pueden usar caracteres alfabticos, nmeros y algunos
caracteres de puntuacin, per el primer carcter debe ser
siempre alfabtico.
2. VBA no distingue entre maysculas y minsculas. Para hacer
los nombres ms legibles los programadores acostumbran a
utilizar letras maysculas en cada nueva palabra. (Ej:
NombreAlumno)
3. No se pueden utilizar espacios, a menudo se utiliza el guin
bajo. (Ej: Nombre_Alumno)
4. No se pueden emplear caracteres especiales como #, $, %, &,
!
5. Los nombres de variables pueden contener hasta 254
caracteres, pero no es muy recomendable utilizar nombres
tan largos

Variables, tipos de datos y constantes


Ejemplos de asignacin de valores a variables de
varios tipos de datos.

VBA tiene palabras reservadas (no se pueden


declarar como nombres, ya que son de uso
interno). El ejemplo siguiente dar un error.

Variables, tipos de datos y constantes

Tipos de datos
admitidos en
VBA.

Variables, tipos de datos y constantes


Las variables se declaran de la siguiente manera:
Dim NombreVariable As Tipo
Si una variable no es declarada entonces el
programa la reconoce como tipo Variant, y de ese
modo sirve para cualquier tipo de dato, aunque
ocupa mas espacio en la memoria. Eso a su vez
puede conllevar riesgos en la ejecucin. Pero
RECUERDE: se sacrifica velocidad en la ejecucin.

Variables, tipos de datos y constantes


Declarar cada variable es un excelente hbito, y
le provee de dos beneficios:
Sus programas corrern ms rpido y usan la
memoria de una forma mas eficiente.
Se evitan problemas involucrados con
variables mal nombradas.
Si utiliza Option Explicit al inicio de cada
programa, VBA lo fuerza a declarar TODAS las
variables.

Variables, tipos de datos y constantes


Alcance de una variable: Determina en donde
ser utilizado el valor de una variable
Alcance
Dentro de un
procedimiento
Dentro de un
mdulo
Todos los mdulos

Como se declara la variable


Incluye una sentencia Dim o Static dentro del
procedimiento
Incluye una sentencia Dim o Private antes del
primer procedimiento en un mdulo
Incluye una sentencia Public antes del primer
procedimiento en un mdulo

Operadores Aritmticos

Suma: +
Resta: Multiplicacin: *
Divisin: /
Potencia: ^
Divisin entera: \ (Ej: 16\3 = 5)
Resto: Mod (Ej: 4 Mod 3 = 1)

Mtodos de entrada y salida de datos


Entradas:
Inputbox: Cuadro de dilogo
Celdas: Celdas de excel
Salidas:
MsgBox: Cuadro de dilogo (Mensajes)
Celdas: Celdas de excel
Como se utiliza cada uno? veamos algunos
ejemplos

Ejemplos: Operaciones Aritmticas


Ejemplo 1: Dados dos nmeros enteros, hallar la
suma

Observe la
concatenacin
(&)

Escoja la alternativa que ms le acomode esto


slo depender de sus necesidades y gustos.

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:

Dim MiArray(1 to 10, 1 to 10) as Integer


Dim MiArray(1 to 10, 1 to 10, 1 to 10) as
Integer
Todos los arrays mostrados hasta el
momento tienen la caracterstica de ser
estticos, es decir tienen un tamao fijo.

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.

Set InputArea = Range(C16:E16)

Variables Objeto
Para ver como las variables objetos simplifica el
cdigo, veamos un ejemplo

Observe que MyCell


reemplaza a
Worksheets(Sheet1).Range(
A1)

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

En este caso se muestra el uso de la funcin Sqr


que es similar a la funcin RAIZ de Excel. El
resultado se muestra a travs de un cuadro de
mensajes.

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

Funciones de VBA: MSGBOX


La funcin MsgBox:
No slo es un cuadro de dilogo, si no que
tambin nos puede devolver un valor de tipo
String, para poder realizar alguna consulta al
usuario.
Ms adelante veremos aplicaciones sobre este
tema.

Manipulando Objetos y Colecciones

Manipulando Objetos y Colecciones


Existen formas eficientes de escribir el cdigo
para poder manipular objetos y colecciones. VBA
nos ofrece dos construcciones que simplifican ese
trabajo:
With End With
For Each - Next

With End With


Permite ejecutar mltiples acciones sobre un
objeto.

Ambas alternativas ejecutan la misma accin, la


segunda es ms legible que la primera y se
ejecuta ms rpido.

For Each - Next


Recuerde el concepto de coleccin
Suponga que desea desarrollar una accin en
todos los objetos de una coleccin bajo ciertas
condiciones. Esa es la ocasin perfecta para esta
construccin, porque no debe saber cuantos
objetos existen en una coleccin ya que el bucle
ejecutar la accin sobre todos los objetos.
Los objetos pueden ser, celdas, hojas, grficos,
etc.

For Each - Next


La siguiente macro, muestra todos los nombres
de las hojas existentes en el libro activo.

Controlando la ejecucin del cdigo


Algunos procedimientos en VBA se ejecutan linea
por linea de inicio a fin y completan una
determinada tarea que queremos realizar Sin
embargo, a menudo se necesita controlar el flujo
de tus rutinas, ya sea para testear alguna
condicin o ejecutar alguna sentencia en
mltiples ocasiones.

Controlando la ejecucin del cdigo


En est seccin veremos las siguientes
estructuras de control del cdigo:
If Then Else
Select Case
For Next
Do While
Do Until

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.

If Then Else: Ejemplos


Macro que evala la hora del da y dice Buenos
Das.

If Then Else: Ejemplos


Una versin mas completa sera la siguiente:

If Then Else: Ejemplos


Ahora si quisiramos indicar al usuario las frases,
Buenos Das, Buenas Tardes y Buenas Noches
tenemos las siguientes alternativas.

La funcin VBA IIF


Trabaja de forma similar a la funcin Si de
excel.
Sintaxis:
IIf(Condicion, Valor si condicion = true, Valor si
condicion = False)
Ejemplo: Funcin que evala si la celda A1
contiene valor cero o no.

Es importante tener en cuenta que el tercer


argumento SIEMPRE se evala

IF THEN ELSE: Ejercicios


1. Determinar si un nmero es positivo, negativo o
neutro
2. Dado un caracter determinar si es una vocal
(Utilice el comando Or (si es a Or A))
3. Determinar si un nmero es mltiplo de 3 y de 5
a la vez.
4. Determinar si un numero es par o impar
5. Dados tres nmeros, devolver el mayor.
6. Dado un numero, devolver el doble si el nmero
no es par, caso contrario el triple.

IF THEN ELSE: Ejercicios


Un restaurant desea aplicar descuento dado un
cierto nivel de consumo con las siguientes
condiciones.
Consumo
Descuento
Hasta $ 10.000
10%
Hasta $ 20.000
20%
Hasta $ 30.000
30%
Mayor
40%

IF THEN ELSE: Ejercicios


Elabore una macro que permita decidir si un
bloque es mineral (Ley > 0.5), lastre (Ley < 0.4) o
marginal (entre 0.4 y 0.5), y adems indique su
destino segn corresponda (Planta, Botadero,
Stock). Utilice And para evaluar si el bloque es
marginal (ley < 0.5 And ley > 0.4).

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.

SELECT CASE: Ejemplos


Alternativa al caso del saludo visto con If

SELECT CASE: Ejemplos


Detectando un da de semana o fin de semana

SELECT CASE: Ejemplos


Estimando el valor de descuento de acuerdo a
una cierta cantidad:

SELECT CASE: Ejemplos

Esta estructura tambin puede ser anidada, observe el


siguiente ejemplo: Se utiliza la funcin de VBA TypeName
para determinar si se est seleccionando un rango (1 celda
o ms de una) o no ha nada seleccionado, o si se est
seleccionando otro objeto.

SELECT CASE: Ejercicios


1. Elabore una macro que permita decidir si un
bloque es mineral (Ley > 0.5), lastre (Ley < 0.4)
o marginal (entre 0.4 y 0.5), y adems indique su
destino segn corresponda (Planta, Botadero,
Stock).
2. De acuerdo al ndice
RDQ
indique
la calidad del
Calidad
de
RQD
la roca
testigo.
<25%
muy pobre
25-50%
50-75%
75-90%
90-100%

pobre
normal
bueno
muy bueno

SELECT CASE: Ejercicios


Haga un programa que de acuerdo a la calidad de
un determinado producto seale el precio de
venta.

Pr 1
od
2
uc
to 3

Calidad
1

5000

4500

4000

4500

4000

3500

4000

3500

3000

Sugerencia: Desarrolle una estructura anidada.

Estructuras Repetitivas - Loops

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:

FOR NEXT: Ejemplos


El siguiente ejemplo suma las races cuadradas
de los primeros 100 enteros:

Analice el
mecanismo de
esta instruccin

FOR NEXT: Ejemplos


Es posible incorporar una instruccin STEP, para
poder realizar un Salto en el contador. El
siguiente ejemplo elimina las 5 primeras filas
pares:
Note que se utiliza un
valor negativo
Pruebe poniendo un
valor positivo, y
encuentre la razn de
porqu no funciona.

FOR NEXT: Ejemplos

La siguiente macro encuentra el valor mximo en la


columna A, Cuando el programa encuentra el valor mximo
se termina el loop, con el uso de Exit For:

Esta forma
es ms
eficiente.

FOR NEXT: Ejemplo


Observe el siguiente ejemplo, en el que se
emplea una estructura for next anidada.

En este ejemplo cada uno de los 1000 elementos


del array contienen el valor -1.

FOR NEXT: Ejercicios


Obtener la cantidad de los N primeros mltiplos de 5.
Calcular la suma y el producto de los N primeros
nmeros naturales mltiplos de 3.
Dado una base de datos de 100 leyes, indicar para cada
bloque si es mineral lastre o marginal, dados ciertos
rangos.
RESOLVER EN CLASE: Elabore una base de datos para un
modelo de bloques bidimensional, Los bloques deben
contener iguales dimensiones y deben tener una ley
asignada. La primera columna debe corresponder a la
coordenada X, la segunda a la Y, la tercera a la ley.
Represente dichos datos bidimensionalmente.

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.

While loop: Ejercicios:


Dado 2 nmeros diga si son amigos. Dos numeros
son amigos si la suma de los divisores de uno es
igual al otro y viceversa. Por ejemplo 220 y 284
son amigos:
Divisores de 220 son:
1+2+4+5+10+11+20+22+44+55+110 = 284
Divisores de 284 son: 1+2+4+71+142 = 220

Una ltima herramienta.


La grabadora de macros.

Nos sirve para grabar cualquier operacin que realicemos, esta


herramienta generar el cdigo requerido, pero es un cdigo que
muchas veces es excesivo, por lo que debe ser tratada con cuidado.
Cuando nos enfrentemos a la situacin de desconocer un
determinado cdigo, podremos utilizar la grabadora de macros para
poder obtener el cdigo deseado.
Prubela!!

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.

Si aprovechamos bien estas herramientas podramos


crear aplicaciones que seran o imposibles o muy tediosas
de realizar en condiciones normales.

Leer un archivo de texto


Una herramienta importante es el hecho que
podemos leer archivos de texto que contengan
valores separados por comas o por espacios.
Los modelos de bloques vienen generalmente en
archivos de valores separados por comas,
espacios o tabulaciones.

Desarrollar ejercicio en clases

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

Elabore una funcin que permita realizar la valorizacin de los bloques.


Utilice la ley de corte marginal para poder realizar la distincin entre Lastre
y Mineral.
Asuma que los todos los bloques tienen el mismo tamao por lo tanto
tienen el mismo volumen y que el costo mina para el lastre y mineral son
diferentes.
Valor(mineral) = ton * (PCu * 2204 - cfr) * ley / 100 * RPlanta * RRefineria (mmin + c) * ton
Valor(lastre) = ValorBloque = -mest * ton

Observe las unidades

Solucin
Una solucin al problema podra ser la siguiente:

Solucin
Suponiendo que los
valores se encuentran
en estas celdas. En
una hoja llamada
Valorizacion

Vous aimerez peut-être aussi