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 online, el 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.

jueves, 29 de octubre de 2015

BUCLES EN VISUAL BASIC PARA EXCEL

Imagínese que tiene que escribir un programa en visual Basic que imprima los números de uno hasta mil mientras recorre una hoja de cálculo, ¿Cómo lo haría?.

Los lenguajes de programación (Visual Basic no es la excepción), nos brindan una solución para este tipo de situaciones, los bucles.
En Visual Basic para Excel tenemos los siguientes bucles:

While…wend , Do…Loop , For…Next .

Curso online de excel 

Ciclo While…End

Ejecuta una instrucción mientras se cumpla una condición:

While condición
    Instrucciones
Wend

En el ejemplo siguiente imprimimos los números desde el uno hasta el 1000 usando el ciclo while

Curso Online de excel 

Ciclo Do…Loop

Este ciclo ejecuta una instrucción hasta que se cumpla una condición ó mientras se cumpla dicha condición

Do  until condición
     Instrucciones
Loop

Mira este ejemplo, ejecuta la instrucción hasta que la variable cont = 1000

Curso online de excel 

También se puede escribir así

Do
  Instrucciones
Loop  until condición.

Este ejemplo funciona igual al anterior únicamente cambia la estructura

Curso online de excel 

Ciclo For…Next

Este ciclo ejecuta una instrucción un número determinado de veces de acuerdo a una variable  que controla las repeticiones, permite definir en cuanto se aumenta la variable de control.

For variable = valor TO limite [step]
         Instrucciones
Next [variable]

En el siguiente ejemplo puedes ver que el ciclo for simplifica el código:



Desde este enlace podrás descargar una colección de mas de 20 macros. Si necesitas automatizar tus procesos en excel  escríbenos a macrosymacros1@gmail.com.

Curso online de excel

Espero que esta información sea de utilidad, para aprender mas sobre excel visita el curso online.

Curso online de excel


jueves, 22 de octubre de 2015

OPERADORES LOGICOS EN VBA PARA EXCEL

Los operadores lógicos también son conocidos como operadores booleanos ya que están basados en el álgebra de Boole, nos permiten comparar dos o más expresiones obteniendo un valor verdadero o falso.

Operador lógico AND

El resultado de la comparación será verdadero si y solo si todas las expresiones son verdaderas en caso contrario será falso, veamos este sencillo ejemplo.


Se definen dos variables y cada una representa un valor entero que pedimos por pantalla



 Usamos el operador and para validar cuál de las dos variables es mayor y además igual a 10

Expresión 1: (a > b): Esta condición se cumple puesto que a = 10 y b= 5, por lo tanto la expresión es verdadera.

Expresión 2: (a = 10): Esta condición se cumple puesto que a = 10, por lo tanto la expresión es verdadera.

Si las dos expresiones son verdaderas se mostrara el siguiente mensaje:

Operador lógico OR

El resultado de la comparación será verdadero si una de las expresiones es verdadera en caso contrario será falso, si en el ejemplo anterior cambiamos el operador and por or veremos lo siguiente:


Igual que en el ejemplo anterior solicitamos dos valores por pantalla:



Con el operador or validamos si la variable es igual a 10 o mayor que la otra variable

Expresión 1: (a > b): Esta condición no se cumple puesto que a=10 es menor que b=11, por lo tanto la expresión es falsa.

Expresión 2: (a = 10): Esta condición se cumple puesto que a = 10, por lo tanto la expresión es verdadera.

Esto es suficiente para que la condición se cumpla porque: Verdadero ó Falso = Verdadero.

Si continuamos la ejecución del programa arrojara el siguiente mensaje:


Para aprender más sobre operadores lógicos y todo en torno al manejo del lenguaje VBA para Excel visita nuestro curso online de excel.

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í.

Espero que este post te sea de utilidad, si quieres automatizar tus procesos en excel escríbeme a macrosymacros1@gamail.com.


miércoles, 14 de octubre de 2015

MACRO PARA ADICIONAR UN MENU EN EXCEL

Ocasionalmente tendremos la necesidad de agregar menús en la hoja de cálculo,  VBA para Excel nos permite agregar menús y ejecutar con el uso de estos las macros que hemos creado previamente.

El código siguiente ejemplifica como adicionar un menú:



Como se puede ver el código anterior se invoca la rutina “Dalete_Menu”, esta nos permitirá borrar el menú cada vez que se ejecute la macro, con el fin que no se agregue nuevamente un menú que ya existe. Este el código de la rutina “Delete_Menu”:


Así se verá el menú después de ejecutar la macro:


Si quieres aprender más acerca de macros y programación en VBA visita el curso online de excel donde podrás aprender sobre temas como este y mucho más.

Puedes descargar el documento excel con la macro en 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í.

Espero que esta macro te sea útil, por favor deja tus comentarios , si necesitas automatizar tus procesos en excel escríbeme a macrosymacros1@gmail.com.

jueves, 8 de octubre de 2015

USO DEL CONTROL IMAGEN EN VBA EXCEL

Regularmente en nuestros programas en VBA tendremos que utilizar imágenes, para tal fin tenemos el control IMAGEN.

Este control como todos los demás tienen varias propiedades, algunas de ellas son:

NAME: Permite asignarle un nombre a el objeto el cual nos permitirá identificarlo dentro del código.

AUTOSIZE: nos permite ajustar la imagen al tamaño del control, dependiendo si le asignamos el valor true o false.

BORDERSTYLE: a esta propiedad podemos asignarle dos valores 0 sin borde 1 con borde.


PICTURE: Esta es la propiedad más importante pues nos permite asignar la imagen al control.

Para ejemplificar el uso de la propiedad imagen escribí una macro que nos permite asignar diferentes imágenes al control, ejemplos como este los puedes encontrar en el curso online de excel.

En la hoja de cálculo están registradas las direcciones en el PC de cuatro imágenes


Tenemos un formulario compuesto por un control combobox( en una entrada anterior vimos su uso) un botón de comando y el control de imagen


Llenamos el control combobox con la información de la hoja de cálculo, para dicho fin utilizamos el siguiente código, esta rutina recibe como parámetro el formulario:


Expliquemos un poco el código anterior, la variable WS de tipo worksheet representa la hoja de cálculo en la cual tenemos nuestros datos, la variable que hemos llamado final no servirá para identificar la última fila con datos en la hoja de Excel. Después de asignar la hoja de cálculo a la variable WS con la instrucción ( set ws _ thisworkbook.worksheets(“HOJA1”)) y calcular la última fila con datos con la instrucción (final = ws.range(“A1”).End(xlDown).Row), empezamos un ciclo que va desde la fila 2 hasta la fila final y durante el cual asignamos a la propiedad additem del combobox la información que tiene la hoja de cálculo en la fila i.

Para invocar la rutina “LLENAR_COMBO” en el código del botón de comando agregamos este código donde el parámetro “ME” representa el formulario:


Cuando el usuario haga clic o seleccione un dato del combobox  ejecutamos el siguiente código:


Lo que hacemos con este código es invocar la rutina “mostrar_imagen”  pasándole como parámetro la dirección de imagen seleccionada y el formulario.

Este es el código que llena el control de imagen


Cargamos la imagen en el control a la propiedad picture  con la instrucción LoadPicture(dirección), asignamos true a la propiedad autosize para que la imagen se ajuste al tamaño del control y le asignamos borde ( el valor fmBordeStyleSingle es igual a 1).

Para aprender más sobre este y otros temas visita el curso online  de excel.

En este enlace encontraras una colección de mas de 20 macros que podrás descargar.

Para automatizar tus proceso en excel escríbeme a macrosymacros1@gmail.com.

Espero que esta macro te sea de utilidad, por favor deja tus comentarios.