lunes, 23 de noviembre de 2015

MACRO PARA CREAR UN LIBRO DE EXCEL

Hoy les traigo una macro tan sencilla como útil. Veremos como crear un libro de Excel con el uso de VBA.

Antes de escribir la macro debemos tener configuradas correctamente las referencias, de lo contrario la macro no funcionara.

Para agregar las referencias, sigue estos pasos:
Clic en la barra de menú de tu entorno de desarrollo, después seleccionas herramientas y finalmente haces clic en referencias


Curso online excel avanzado
Después que tengamos listas las referencias escribimos el código de nuestra macro:


Como puedes ver se ha definido una sola rutina que nos permitirá crear el libro de Excel, hemos definido tres variables:
Wb de tipo workbook identifica el libro que crearemos.
Ws de tipo worksheet identifica la primera hoja del nuevo libro.
Libro de tipo string nos servirá para guardar el nombre del nuevo libro

Con la instrucción libro = InputBox(“Nombre del libro?”) , pedimos al usuario que ingrese el nombre del nuevo libro y guardamos el valor ingresado en la variable libro.

curso online de excel


Las siguientes cuatro instrucciones son las que en realidad crean el libro y lo graban con el nombre que le hemos asignado.




Finalmente informamos al usuario que el libro se creo de manera exitosa y cerramos el nuevo libro


El nuevo libro se creara en el directorio que se encuentre nuestra macro, esto porque la instrucción “thisworkbook.path” retorna la dirección del libro que esta ejecutando la macro.


Espero que esta macro te sea de utilidad, recuerda para aprender mas de Excel avanzado visita nuestra curso online de Excel.

En este enlace podrás descargar una colección de macros en PDF , si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.

En el libro Excel 2013.MACROS Y VBA podrás aprender a programar y sacar el máximo provecho del lenguaje de programación VBA, en la sección de libros recomendados se encuentra el link.

Curso online de excel








domingo, 15 de noviembre de 2015

MACRO PARA BUSCAR VALORES DUPLICADOS EN UNA HOJA DE CÁLCULO

Aunque en Excel existen varias maneras de encontrar valores duplicados, me decidí a hacer una macro con dicho fin porque esta nos permitirá entre otras cosas el uso de vectores y métodos de ordenación.

Tenemos la siguiente hoja de cálculo



Como pueden ver el nombre y correo electrónico se repiten los deje igual porque el dato que más nos interesa es el teléfono. La macro que les mostrare a continuación busca los teléfonos repetidos y los resalta con un color especifico además escribe en la celda contigua en que posición de la hoja de calculo se encuentra el teléfono por primera vez.

Para empezar definimos las variables globales:


Se definen dos vectores pero a ninguno se le asigna el tamaño, esto porque no sabemos cuantos datos contendrá la hoja de cálculo. En el vector1 guardaremos los números de teléfono y el vector2 la fila en la hoja de calculo que contiene dicho numero de teléfono.

Después agregamos la rutina principal

Curso online de excel

A partir de esta rutina se ejecutara toda la macro, para averiguar cuantas filas con datos tiene la hoja de calculo usamos la instrucción ffinal = ws.Range("C2").End(xlDown).Row. 
Conociendo este dato redefinimos el tamaño de los vectores con la instrucción 
ReDim Preserve vector1(ffinal - 1)
ReDim Preserve vector2(ffinal - 1)
Podemos hacerlo sin usar la palabra Preserve esta se usa para indicar que cuando se redefina el tamaño del arreglo no se borren los datos que contiene, en este caso no era realmente necesario pues el vector aun se encuentra vacio.

Generamos un ciclo que nos permite adicionar valores al vector invocando una rutina creada para dicho fin.
For F = 2 To ffinal
        Adicionar_Vector ws.Range("C" & F), F
Next F

Después  invocamos otra rutina que organiza el vector usando el método burbuja y por ultimo buscamos valores repetidos en el vector con una rutina más. 

Esta es la rutina que agrega datos a los vectores:


Recibe por parámetro el teléfono y la fila en la hoja de cálculo que contiene dicho teléfono, guarda en el vector1 el teléfono y en el vector2 la fila del teléfono.

Después debemos ordenas los vectores, esto nos lo facilita la siguiente rutina


Para ordenar el vector usamos el método burbuja, lo que hacemos con este método de ordenación es comparar cada posición del vector con la siguiente intercambiándola si es menor (para este caso donde queremos ordenar en orden ascendente) este procedimiento se repite hasta que no sea necesario realizar mas intercambios.

Para finalizar adicionamos la rutina que nos permitirá encontrar los teléfonos repetidos:

Cusro online de excel
En esta rutina recorremos los vectores comparando cada posición con la siguiente si tienen el mismo numero de teléfono resaltamos la celda de la hoja de Excel con un color especifico y escribimos en la celda inmediatamente contigua donde se encuentra dicho teléfono por primera vez.

Así es como se ve la hoja de cálculo después de ejecutar la macro:



Espero que esta información te sea útil, si quieres aprender mas sobre Excel avanzado visita nuestro curso onlineel curso de Excel se encuentra dividido en tres niveles:

Nivel Básico: Diseñado para las personas que no tienen ningún conocimiento en Excel aprenderá a crear planillas formulas gráficos.

Nivel Intermedio: Diseñado para aquellos que tienen los conocimientos básicos de Excel, entre otras cosas aprenderá  a crear semáforos, tableros comandos, tableros de función etc.

Nivel avanzado: aprenderá funciones muy poderosas de Excel que lo impulsaran en su vida laboral, tablas dinámicas, solver , buscar objetivos.

Los beneficios que obtendrá con respecto a un curso presencial de excel son varios:

El curso está disponible las 24 horas, podrá ingresar a la hora que quiera es decir no estará limitado por horarios.

Se inscribe en el curso una vez y estará disponible para usted  de por vida.

No hay mensualidades, paga una  vez y tiene acceso al curso de por vida además de manuales y libros de Excel

Para mayor información sobre el curso de Excel online haga clic aquí.

Curso online de excel
Puedes ver la macro en funcionamiento en el siguiente vídeo.

Si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.

Puedes descargar el documento excel con la macro siguiendo este enlace.


En mi ebook Macrosymacros encontraras una colección de macros, que te serán muy útiles  en tus procesos de automatización de hojas de calculo, puedes encontrarlo aquí.






sábado, 7 de noviembre de 2015

ARREGLOS EN VBA PARA EXCEL


Para todos los lenguajes de programación existe un elemento muy importante como son los arreglos, un arreglo es un conjunto de valores agrupados. Un arreglo puede estar formado únicamente por una fila a estos llamaremos vectores (también se conocen como arreglos unidimensionales) ó por filas y columnas a estos llamaremos matrices (también se conocen como arreglos bidimensionales). Existen también arreglos tridimensionales o cajas. Si recuerdas tus clases de matemáticas entenderás de donde vienen los términos: vector, matriz etc.

Curso Online de Excel

VECTORES

Los vectores se representan gráficamente de la siguiente forma:


Como puedes ver tenemos un vector con cinco posiciones donde cada posición representa un lugar de memoria en el cual se guardara la información ahí contenida.

Observa el siguiente ejemplo:

Curso online de excel

En la primera línea definimos el vector con el nombre “Enteros” y una longitud de 10 posiciones. Creamos una rutina que con el uso de un ciclo llena el vector mientras lo recorre posición por posición. Finalmente esta una rutina que nos permite imprimir el valor del vector en la hoja de cálculo como se puede observar en la siguiente imagen:

Curso online de excel

MATRICES

La representación grafica de las matrices es así:


Como se puede apreciar la imagen representa una matriz de 3 filas por 3 columnas o sea que en esta matriz podremos almacenar 9 datos, para hacer referencia a una posición de la matriz usamos la siguiente notación (fila, columna) , por ejemplo (1,3) nos indica que estamos refiriéndonos al valor que se encuentra en la fila 1 columna 3.

Observa el siguiente ejemplo:

Curso Online de excel

En la primera línea definimos la matriz con el nombre “Enteros”  de 3 filas por 3 columnas, definimos una rutina en la cual llenamos la matriz con números enteros y otra en la que imprimimos la matriz en la hoja de cálculo  como puedes ver en la siguiente imagen se imprime en forma matricial:

Curso Online de excel

Para aprender mas sobre Excel visita el curso online que te recomiendo seguro te será de mucha utilidad.

En mi ebook Macrosymacros encontraras una colección de macros que te serán muy útiles en tus procesos de automatización, encuentralo aquí.

Si necesitas automatizar tus procesos en Excel escríbeme al correo macrosymacros1@gmail.com.