EXCEL - Aplicaciones de Software Minero

108
APLICACIONES DE SOFTWARE MINERO: Aplicaciones en Excel SEBASTIAN CASTILLO

description

introducción a las aplicaciones de excel, desde nivel básico a intermedio, incluyendo aplicaciones macro.

Transcript of EXCEL - Aplicaciones de Software Minero

Page 1: EXCEL - Aplicaciones de Software Minero

APLICACIONES DE SOFTWARE MINERO: Aplicaciones en Excel

SEBASTIAN CASTILLO

Page 2: EXCEL - Aplicaciones de Software Minero

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?

Page 3: EXCEL - Aplicaciones de Software Minero

Vista de Excel

Page 4: EXCEL - Aplicaciones de Software Minero

Ingresar una fórmula

Page 5: EXCEL - Aplicaciones de Software Minero

Fórmulas

• Operaciones matemáticas simples(+,-,*,/)• Números negativos?• Cálculo de las raíces de una ecuación de segundo grado?• Cálculo de distancia entre dos puntos en tres dimensiones?• Cálculo de media, desviación estándar y otras estadísticas?• Regresión Lineal?• Operaciones con matrices?• Cálculo de probabilidades(Normal, Binomial, Exponencial, Poisson,

Etc?

ABURRIDO?Seeeee

Page 6: EXCEL - Aplicaciones de Software Minero

Algunas situaciones

• Podemos “arrastrar” una fórmula un número 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?

Page 7: EXCEL - Aplicaciones de Software Minero

Ejercicios

• Elabore una hoja de cálculo 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.

Page 8: EXCEL - Aplicaciones de Software Minero

Funciones útiles de Excel• Sumaproducto• Contar.si.conjunto• Sumar.si.conjunto• Indice• Coincidir• Buscarv• Si• Y• O• Entre MUCHAS otras

Page 9: EXCEL - Aplicaciones de Software Minero

Megafórmulas

Page 10: EXCEL - Aplicaciones de Software Minero

Situaciones mas complejas

• Cómo podemos tomar una decisión en base al color de una celda?

• Cómo podríamos poner un borde a la celda automáticamente dada una condición?

• Qué ocurre cuando tenemos un número no definido de datos?

• Que tal si queremos poner bordes a las celdas de un número no definido de datos

• Que tal si tenemos que hacer la misma tarea 200 veces con miles de datos

Page 11: EXCEL - Aplicaciones de Software Minero

Situaciones mas complejas

• Que pasaría 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á?

Page 12: EXCEL - Aplicaciones de Software Minero

Macros

• Excel es un programa que tiene un gran potencial, pero la mayoría de la gente lo maneja de una forma muy simple, utilizando solo opciones básicas, 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 fácilmente, solo debemos aprender a programarlo y para eso es este curso, podría la gente decir que este curso es un nivel muy alto de Excel y quizás si lo sea, pero es fácil de aprender ya que se manejaran términos sencillos. La programación que emplea en este curso o las estructuras que aparecen son creadas por nosotros mismos. Para manejar la programación de Visual Basic con Excel es necesario tener mucha creatividad, cada persona puede crear estructuras diferentes pero que trabajen igual.

Page 13: EXCEL - Aplicaciones de Software Minero

Porqué conviene hacer un programa en Excel

• Excel es un producto altamente programable, y definitivamente es la mejor opción para desarrollar aplicaciones basadas en hojas de cálculo.

• Permite hacer aplicaciones que de otro modo, serías muy tediosas de elaborar.

Page 14: EXCEL - Aplicaciones de Software Minero

Una buena aplicación debe contener las siguientes características:

• Esta permite al usuario final desarrollar una tarea que podría no ser capaz de hacer por si solo.

• Provee una solución apropiada al problema• Produce resultados precisos y libre de errores• Utiliza metodos eficientes y apropiados además de algoritmos que

acompañen 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

código escrito por el programador.

Page 15: EXCEL - Aplicaciones de Software Minero

Metodología 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 fórmulas, macros e interfaz de usuario• Testear la aplicación bajo un conjunto razonable de condiciones• Hacer la aplicación amigable al usuario (a menudo basado en los

resultados del testeo)• Hacer una aplicación estéticamente agradable e intuitiva• Documentar la aplicación• Distribuir la aplicación a los usuarios• Actualizar la aplicación siempre y cuando sea necesario

Page 16: EXCEL - Aplicaciones de Software Minero

Entendiendo VBA• Modelo de objetos

– El secreto para usar VBA radica en el entendimiento del modelo de objetos. Es posible programar una aplicación a través de los objetos que la aplicación utilice.

– El modelo de objetos de VBA, posee varios objetos que permiten realizar los análisis, tales como: Hojas de cálculo, gráficos, tablas dinámicas y un gran conjunto de funciones matemáticas, financieras, de ingeniería, 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 práctica hace al maestro”

Page 17: EXCEL - Aplicaciones de Software Minero

Aspectos básicos de VBA• Antes de comenzar, es recomendable familiarizarse con

algunos conceptos.– Código: Es básicamente texto, pero que VBA lo interpreta

para desarrollar acciones. Es guardado en un módulo– Módulo: Un módulo VBA es guardado en un archivo Excel.

Se puede visualizar y editar con el editor de VBA. Está compuesto de procedimientos.

Page 18: EXCEL - Aplicaciones de Software Minero

Aspectos básicos de VBA– Procedimientos: Es una unidad de código que desarrolla

alguna acción. Existen dos tipos de procedimientos:• SUB: Un Sub consiste en una serie de sentencias que

serán ejecutadas.• Función: Una función es similar a un sub, pero devuelve

un valor, asociado a un tipo de dato

Page 19: EXCEL - Aplicaciones de Software Minero

Aspectos básicos de VBA• Objeto Activo: Si se omite una referencia específica 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 código a

Range(“A1”)

• Propiedades de los objetos: Los objetos tienen propiedades. Por ejemplo el objeto Range, tiene propiedades tales como: Text, Value, Address, etc.

Page 20: EXCEL - Aplicaciones de Software Minero

Aspectos básicos 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• Métodos: Un método es una acción 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 código para que se realice una

acción cuando un determinado evento ocurre: Por ejemplo si cambia el valor de una celda, es posible activar una macro, sin necesidad de ejecutarla manualmente.

Page 21: EXCEL - Aplicaciones de Software Minero

Aspectos básicos 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, gráficos, celdas, tablas dinámicas.Los objetos van organizados en una jerarquía, y un objeto puede contener varios tipos de objeto.

• Colecciones: Un conjunto de objetos del mismo tipo forman una colección. Por ejemplo la colección Worksheets representa todo el conjunto de hojas que existan en un libro. Una colección es un objeto.

• Jerarquía de objetos: Para referirse a un objeto en particular debemos respetar la jerarquía existente. Por ejemplo:

Application.Workbooks(“Libro1”).Worksheets(“Hoja1”).Range(“A1”)

Page 22: EXCEL - Aplicaciones de Software Minero

Macros en Excel

• Pero vamos a lo que vinimos…

• Active la ficha programador… Heche un vistazo a los elementos disponibles.

• Presione Alt + F11

Page 23: EXCEL - Aplicaciones de Software Minero

FUNDAMENTOS DE PROGRAMACION EN VBA

Page 24: EXCEL - Aplicaciones de Software Minero

Macros en Excel

• Objetivos de este capítulo– Comprender los elementos del lenguaje, incluyendo

variables, tipos de datos, constantes y arreglos.– Usar funciones predefinidas de VBA– Manipulación de objetos– Controlar la ejecución de sus procedimientos.

Page 25: EXCEL - Aplicaciones de Software Minero

Nuestro primer programa• Inserte un módulo y escriba lo siguiente:

• Presione Play o F5

Page 26: EXCEL - Aplicaciones de Software Minero

AnálisisDeclara el inicio de un programa

Comentario: Comienza con un apóstrofe ( ‘ ), y VBA no lo considera en la ejecución

Cuadro de mensajes, indicando el mensaje “Hola”

Fin del programa

Todo programa comienza con Sub y termina con End Sub

Page 27: EXCEL - Aplicaciones de Software Minero

Variables, tipos de datos y constantes

• Una variables es simplemente un nombre guardado en alguna ubicación 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

Page 28: EXCEL - Aplicaciones de Software Minero

Variables, tipos de datos y constantes

• Reglas para nombrar variables.1. Se pueden usar caracteres alfabéticos, números y algunos

caracteres de puntuación, per el primer carácter debe ser siempre alfabético.

2. VBA no distingue entre mayúsculas y minúsculas. Para hacer los nombres más legibles los programadores acostumbran a utilizar letras mayúsculas en cada nueva palabra. (Ej: NombreAlumno)

3. No se pueden utilizar espacios, a menudo se utiliza el guión 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

Page 29: EXCEL - Aplicaciones de Software Minero

Variables, tipos de datos y constantes

• Ejemplos de asignación 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.

Page 30: EXCEL - Aplicaciones de Software Minero

Variables, tipos de datos y constantes

• Tipos de datos admitidos en VBA.

Page 31: EXCEL - Aplicaciones de Software Minero

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 ejecución. Pero RECUERDE: se sacrifica velocidad en la ejecución.

Page 32: EXCEL - Aplicaciones de Software Minero

Variables, tipos de datos y constantes

• Declarar cada variable es un excelente hábito, y le provee de dos beneficios:– Sus programas correrán más rápido 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.

Page 33: EXCEL - Aplicaciones de Software Minero

Variables, tipos de datos y constantes

• Alcance de una variable: Determina en donde será utilizado el valor de una variable

Alcance Como se declara la variable

Dentro de un procedimiento Incluye una sentencia Dim o Static dentro del procedimiento

Dentro de un módulo Incluye una sentencia Dim o Private antes del primer procedimiento en un módulo

Todos los módulos Incluye una sentencia Public antes del primer procedimiento en un módulo

Page 34: EXCEL - Aplicaciones de Software Minero

Operadores Aritméticos• Suma: +• Resta: -• Multiplicación: *• División: /• Potencia: ^• División entera: \ (Ej: 16\3 = 5)• Resto: Mod (Ej: 4 Mod 3 = 1)

Page 35: EXCEL - Aplicaciones de Software Minero

Métodos de entrada y salida de datos• Entradas:

– Inputbox: Cuadro de diálogo– Celdas: Celdas de excel

• Salidas:– MsgBox: Cuadro de diálogo (Mensajes)– Celdas: Celdas de excel

¿Como se utiliza cada uno?… veamos algunos ejemplos

Page 36: EXCEL - Aplicaciones de Software Minero

Ejemplos: Operaciones Aritméticas• Ejemplo 1: Dados dos números enteros, hallar la suma

• Escoja la alternativa que más le acomode… esto sólo dependerá de sus necesidades y gustos.

Observe la concatenación (&)

Page 37: EXCEL - Aplicaciones de Software Minero

Ejercicios

1. Hallar la suma de tres números enteros.2. Hallar el cociente y el resto de dos números 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 raíz enésima de un número, Use el tipo Single o Double.6. Utilizando la división de enteros y el resto, escriba un programa que ingrese un

número de 5 dígitos y lo entregue en orden inverso. (Concatene (&) para obtener el resultado final)

7. Determine la suma de los N primeros números enteros ( S = N*(N+1)/2)

8. Calcule el valor futuro de una inversión C, dada una tasa de interés i%, en n periodos. (VF = C*(1+i)^n)

Page 38: EXCEL - Aplicaciones de Software Minero

Ejercicios

9. Cree un programa para calcular el área de un círculo. Investigue como manejar el número pi.

10. Cree un programa que permita convertir una cantidad de segundos a un formato “hh:mm:ss”. (Utilice resto, división de enteros y concatenación).

11. Dado 4 números, obtener el porcentaje de cada uno en función a la suma de los 4 números ingresado.

12. Hallar el área y perímetro de un triángulo.13. Dada una cantidad de horas obtener su equivalente en

minutos y segundos.

Page 39: EXCEL - Aplicaciones de Software Minero

Arreglos (Arrays)

Page 40: EXCEL - Aplicaciones de Software Minero

Arrays

• Un array es un conjunto de elementos (Cualquiera sea su tipo), que tienen el mismo nombre en común. Por ejemplo “Meses del año”, el cual tendría 12 elementos.

Page 41: EXCEL - Aplicaciones de Software Minero

Arrays

• Declarando un Array– Se declara de la misma forma de una variable regular. Pero

también se debe especificar el número 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).

Page 42: EXCEL - Aplicaciones de Software Minero

Arrays

• Existen Arrays Multidimensionales y pueden contener hasta 60 dimensiones.

• Ejemplo:

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

• Todos los arrays mostrados hasta el momento tienen la característica de ser estáticos, es decir tienen un tamaño fijo.

Page 43: EXCEL - Aplicaciones de Software Minero

Arrays

• Arrays Dinámicos: Un Array dinámico no tiene un número prefijado de elementos. Se declara de la siguiente forma.

Dim MiArray() as Integer

• Antes de poder utilizar el array dinámico sin embargo debemos usar la sentencia ReDim, para indicarle a VBA cuantos elementos contendrá finalmente el array.

Redim MiArray(n)

Page 44: EXCEL - Aplicaciones de Software Minero

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

Page 45: EXCEL - Aplicaciones de Software Minero

Variables Objeto

Page 46: EXCEL - Aplicaciones de Software Minero

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 código significativamente, haciéndolo más legible.– El código puede ejecutarse más rápido.

• 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”)

Page 47: EXCEL - Aplicaciones de Software Minero

Variables Objeto• Para ver como las variables objetos simplifica el código,

veamos un ejemplo

Observe que MyCell reemplaza a Worksheets(“Sheet1”).Range(“A1”)

Page 48: EXCEL - Aplicaciones de Software Minero

Funciones de VBA

Page 49: EXCEL - Aplicaciones de Software Minero

Funciones de VBA

• VBA tiene una variedad de funciones propias del lenguaje que simplifica los cálculos y operaciones. Muchas funciones de VBA son similares ( o idénticas ) a las de excel. Por ejemplo la función de VBA Ucase, es similar a la función MAYUSC de excel, la cual convierte una cadena de texto a mayúsculas.

Page 50: EXCEL - Aplicaciones de Software Minero

Funciones de VBA

• Ejemplo de función interna de VBA

• En este caso se muestra el uso de la función Sqr que es similar a la función RAIZ de Excel. El resultado se muestra a través de un cuadro de mensajes.

Page 51: EXCEL - Aplicaciones de Software Minero

Funciones de VBA

• Se pueden utilizar muchas (no todas) de las funciones de Excel en el código 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

Page 52: EXCEL - Aplicaciones de Software Minero

Funciones de VBA: MSGBOX

La función MsgBox:• No sólo es un cuadro de diálogo, si no que también nos puede

devolver un valor de tipo String, para poder realizar alguna consulta al usuario.

• Más adelante veremos aplicaciones sobre este tema.

Page 53: EXCEL - Aplicaciones de Software Minero

Manipulando Objetos y Colecciones

Page 54: EXCEL - Aplicaciones de Software Minero

Manipulando Objetos y Colecciones

• Existen formas eficientes de escribir el código para poder manipular objetos y colecciones. VBA nos ofrece dos construcciones que simplifican ese trabajo:

With – End With For Each - Next

Page 55: EXCEL - Aplicaciones de Software Minero

With – End With• Permite ejecutar múltiples acciones sobre un objeto.

• Ambas alternativas ejecutan la misma acción, la segunda es más legible que la primera y se ejecuta más rápido.

Page 56: EXCEL - Aplicaciones de Software Minero

For Each - Next• Recuerde el concepto de colección• Suponga que desea desarrollar una acción en todos los

objetos de una colección bajo ciertas condiciones. Esa es la ocasión perfecta para esta construcción, porque no debe saber cuantos objetos existen en una colección ya que el bucle ejecutará la acción sobre todos los objetos.

• Los objetos pueden ser, celdas, hojas, gráficos, etc.

Page 57: EXCEL - Aplicaciones de Software Minero

For Each - Next• La siguiente macro, muestra todos los nombres de las hojas

existentes en el libro activo.

Page 58: EXCEL - Aplicaciones de Software Minero

Controlando la ejecución del código• 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 condición o ejecutar alguna sentencia en múltiples ocasiones.

Page 59: EXCEL - Aplicaciones de Software Minero

Controlando la ejecución del código• En está sección veremos las siguientes estructuras de control

del código: If – Then – Else Select – Case For – NextDo – WhileDo – Until

Page 60: EXCEL - Aplicaciones de Software Minero

If – Then - Else• Quizás el tipo mas utilizado, está especialmente diseñado

para tomar decisiones. Un programa que toma decisiones de seguro nos aliviana la tarea a realizar.

• Sintaxis Básica: Permite evaluar una condicion y ejecutar una acción en una sola línea de código

• Sintaxis mas utilizada: Básicamente lo mismo que la sintaxis básica, pero se pueden realizar múltiples acciones dependiendo de una condición

Page 61: EXCEL - Aplicaciones de Software Minero

If – Then - Else• Sintaxis generalizada: Permite evaluar tantas condiciones

como se desee con sus consiguientes acciones a realizar.

Page 62: EXCEL - Aplicaciones de Software Minero

If – Then – Else: Ejemplos• Macro que evalúa la hora del día y dice Buenos Días.

Page 63: EXCEL - Aplicaciones de Software Minero

If – Then – Else: Ejemplos• Una versión mas completa sería la siguiente:

Page 64: EXCEL - Aplicaciones de Software Minero

If – Then – Else: Ejemplos• Ahora si quisiéramos indicar al usuario las frases, Buenos Días,

Buenas Tardes y Buenas Noches tenemos las siguientes alternativas.

Page 65: EXCEL - Aplicaciones de Software Minero

La función VBA IIF• Trabaja de forma similar a la función “Si” de excel.• Sintaxis:

IIf(Condicion, Valor si condicion = true, Valor si condicion = False)

• Ejemplo: Función que evalúa si la celda A1 contiene valor cero o no.

• Es importante tener en cuenta que el tercer argumento SIEMPRE se evalúa

Page 66: EXCEL - Aplicaciones de Software Minero

IF – THEN – ELSE: Ejercicios1. Determinar si un número es positivo, negativo o neutro2. Dado un caracter determinar si es una vocal (Utilice el

comando “Or” (si es “a” Or “A”))3. Determinar si un número es múltiplo de 3 y de 5 a la vez.4. Determinar si un numero es par o impar5. Dados tres números, devolver el mayor.6. Dado un numero, devolver el doble si el número no es par,

caso contrario el triple.

Page 67: EXCEL - Aplicaciones de Software Minero

IF – THEN – ELSE: Ejercicios• Un restaurant desea aplicar descuento dado un cierto nivel de

consumo con las siguientes condiciones.

Consumo DescuentoHasta $ 10.000 10%Hasta $ 20.000 20%Hasta $ 30.000 30%

Mayor 40%

Page 68: EXCEL - Aplicaciones de Software Minero

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 además indique su destino según corresponda (Planta, Botadero, Stock). Utilice “And” para evaluar si el bloque es marginal (ley < 0.5 And ley > 0.4).

Page 69: EXCEL - Aplicaciones de Software Minero

SELECT - CASE• La instrucción 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.

Page 70: EXCEL - Aplicaciones de Software Minero

SELECT – CASE: Ejemplos• Alternativa al caso del saludo visto con If

Page 71: EXCEL - Aplicaciones de Software Minero

SELECT – CASE: Ejemplos• Detectando un día de semana o fin de semana

Page 72: EXCEL - Aplicaciones de Software Minero

SELECT – CASE: Ejemplos• Estimando el valor de descuento de acuerdo a una cierta

cantidad:

Page 73: EXCEL - Aplicaciones de Software Minero

SELECT – CASE: Ejemplos• Esta estructura también puede ser anidada, observe el siguiente ejemplo:

Se utiliza la función de VBA TypeName para determinar si se está seleccionando un rango (1 celda o más de una) o no ha nada seleccionado, o si se está seleccionando otro objeto.

Page 74: EXCEL - Aplicaciones de Software Minero

SELECT – CASE: Ejercicios1. 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 además indique su destino según corresponda (Planta, Botadero, Stock).

2. De acuerdo al índice RDQ indique la calidad del testigo.

RQD Calidad de la roca

<25% muy pobre25-50% pobre50-75% normal75-90% bueno

90-100% muy bueno

Page 75: EXCEL - Aplicaciones de Software Minero

SELECT – CASE: Ejercicios• Haga un programa que de acuerdo a la calidad de un

determinado producto señale el precio de venta.

• Sugerencia: Desarrolle una estructura anidada.

Calidad

1 2 3

Producto

1 5000 4500 4000

2 4500 4000 3500

3 4000 3500 3000

Page 76: EXCEL - Aplicaciones de Software Minero

Estructuras Repetitivas - Loops

Page 77: EXCEL - Aplicaciones de Software Minero

LOOPS• Un Loop es el proceso de repetir

un bloque de instrucciones. Puede tener dos opciones:

– Se conoce el número de repeticiones a priori.

– El número de repeticiones viene dado por una condición.

Page 78: EXCEL - Aplicaciones de Software Minero

FOR - NEXT• Es el tipo más simple de

loop. Su sintaxis es la siguiente:

Page 79: EXCEL - Aplicaciones de Software Minero

FOR – NEXT: Ejemplos• El siguiente ejemplo suma las raíces cuadradas de los

primeros 100 enteros:

Analice el mecanismo de esta instrucción

Page 80: EXCEL - Aplicaciones de Software Minero

FOR – NEXT: Ejemplos• Es posible incorporar una instrucción 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 razón de porqué no funciona.

Page 81: EXCEL - Aplicaciones de Software Minero

FOR – NEXT: Ejemplos• La siguiente macro encuentra el valor máximo en la columna A, Cuando el

programa encuentra el valor máximo se termina el loop, con el uso de Exit For:

Esta forma es más eficiente.

Page 82: EXCEL - Aplicaciones de Software Minero

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.

Page 83: EXCEL - Aplicaciones de Software Minero

FOR – NEXT: Ejercicios• Obtener la cantidad de los N primeros múltiplos de 5.• Calcular la suma y el producto de los N primeros números

naturales múltiplos 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.

Page 84: EXCEL - Aplicaciones de Software Minero

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 condición es conocida.

En este caso la condición se evalúa al INICIO del Bucle

En este caso la condición se evalúa al FINAL del Bucle

Page 85: EXCEL - Aplicaciones de Software Minero

Do While: Ejemplos• Si deseamos seleccionar la primera celda vacia en la columna

de la celda activa podríamos utilizar la siguiente macro.

Page 86: EXCEL - Aplicaciones de Software Minero

Do While: Ejemplos• Este es un ejemplo en el cual se prueba la condición 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 vacía, 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.

Page 87: EXCEL - Aplicaciones de Software Minero

Do While: Ejemplos• El siguiente procedimiento escribe las fechas del mes actual

en una columna comenzando desde la celda activa.

Page 88: EXCEL - Aplicaciones de Software Minero

Do While: Ejemplos• El mismo ejemplo anterior pero ahora la condición se evalúa

al final del loop.

Page 89: EXCEL - Aplicaciones de Software Minero

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 ubicación fija. A través del método GetOpenFileName, podemos hacer variable la ubicación de los archivos.

Page 90: EXCEL - Aplicaciones de Software Minero

While – loop: Ejercicios:• Dado 2 números 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

Page 91: EXCEL - Aplicaciones de Software Minero

Una última herramienta.• La grabadora de macros.

• Nos sirve para grabar cualquier operación que realicemos, esta herramienta generará el código requerido, pero es un código que muchas veces es excesivo, por lo que debe ser tratada con cuidado.

• Cuando nos enfrentemos a la situación de desconocer un determinado código, podremos utilizar la grabadora de macros para poder obtener el código deseado.

• Pruébela!!

Page 92: EXCEL - Aplicaciones de Software Minero

Resumen• Hasta ahora hemos visto las principales herramientas que nos aporta VBA para

poder realizar aplicaciones basadas en hojas de cálculo. • 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 carácter básico. 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 ingeniería de minas.

Si aprovechamos bien estas herramientas podríamos crear aplicaciones que serían o imposibles o muy tediosas de realizar en condiciones normales.

Page 93: EXCEL - Aplicaciones de Software Minero

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

Page 94: EXCEL - Aplicaciones de Software Minero

Ejercicio• Cree un archivo de valores separados por comas. Que tenga 4

filas y 3 columnas de números.• Esta macro lee los datos del archivo y los almacena en una

matriz de 4 x 3.

Page 95: EXCEL - Aplicaciones de Software Minero

Funciones en VBA

Page 96: EXCEL - Aplicaciones de Software Minero

Funciones en VBA• Una función es un procedimiento VBA que desarrolla cálculos

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 versátiles y se pueden utilizar en

dos situaciones– Como parte de una expresión en un procedimiento VBA– En fórmulas para una planilla,

Page 97: EXCEL - Aplicaciones de Software Minero

Funciones en VBA• A menudo se pueden crear funciones personalizadas que

pueden simplificar enormemente las fórmulas.• Cuando se crean aplicaciones, podemos notar que algunos

procedimientos repiten ciertos cálculos, en tales casos, es bueno considerar crear una función personalizada que desarrolle esos cálculos.

• Una función personalizada puede eliminar la necesidad de repetir varias veces un código.

Page 98: EXCEL - Aplicaciones de Software Minero

Funciones: Ejemplos• Si deseamos sumar dos valores contenidos en dos celdas

diferentes podemos crear una función tal como la que se muestra a continuación:

• Utilice esta función en una planilla

Page 99: EXCEL - Aplicaciones de Software Minero

Funciones: Ejemplos• A continuación se muestra una función que permite eliminar

las vocales de un texto.• Utilice esta función en una planilla.

Page 100: EXCEL - Aplicaciones de Software Minero

Funciones: Ejemplos• Funciones sin argumento:

Page 101: EXCEL - Aplicaciones de Software Minero

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 función que sea capaz de separar cada dato de una misma línea. De ese modo podemos leer un modelo de bloques que tenga un número de columnas variable.

• Observe el siguiente ejemplo.

Page 102: EXCEL - Aplicaciones de Software Minero

• Pruebe esta función paso a paso (F8) para comprobar como funciona

Page 103: EXCEL - Aplicaciones de Software Minero

• 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

Page 104: EXCEL - Aplicaciones de Software Minero

Lectura del modelo de bloques con la función extrae.

Funciones: Ejemplos

Page 105: EXCEL - Aplicaciones de Software Minero

Funciones Ejercicios• Elabore una función que permita realizar la valorización de los bloques. Utilice la ley de corte

marginal para poder realizar la distinción entre Lastre y Mineral.• Asuma que los todos los bloques tienen el mismo tamaño 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

Page 106: EXCEL - Aplicaciones de Software Minero

Solución• Una solución al problema podría ser la siguiente:

Page 107: EXCEL - Aplicaciones de Software Minero

Solución

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

Page 108: EXCEL - Aplicaciones de Software Minero