jueves, 10 de diciembre de 2015

FUNCIONES DE CADENA EN VBA

Cuando hablamos de cadenas en VBA nos referimos al tipo de dato String el cual representa un conjunto de caracteres donde cada uno de ellos es de tipo Char. Para resumir podemos decir que una cadena es una agrupación de caracteres tipo Char.

Macro para recorrer una cadena de caracteres

En Visual Basic encontramos una serie de funciones que nos permiten manipular cadenas de caracteres. Hoy veremos tres funciones muy importantes y ejemplificaremos su uso con la creación de una macro que nos permitirá recorrer una cadena de caracteres, descomponerla y encontrar el código ascii correspondiente a cada carácter de la cadena.

Función Len: Nos retorna la longitud de una cadena de caracteres, su sintaxis es
Len(cadena de caracteres).

Función Mid: esta función nos retorna una subcadena con n caracteres a partir de la posición x. Su sintaxis es Mid(cadena de caracteres, posición inicial , longitud subcadena).

Función ASC: retorna el código Ascii que corresponde a un carácter. Su sintaxis es ASC(carácter).

Veamos la macro:

Curso Online De Excel

Previo a la escritura de la macro creamos la siguiente hoja de cálculo:


En la posición A2 de la hoja de calculo tenemos la palabra que recorreremos con la macro (puedes usar cualquier palabra).

Primero calculamos la longitud de la cadena usando la función Len. Cuando ya conocemos su longitud la recorremos desde la primera posición hasta la ultima utilizando un ciclo for. 

Para leer cada carácter de la cadena usamos la función mid , se toma cada carácter y se escribe en la columna B de la hoja de calculo.

Para cada carácter leído con la función Mid buscamos su correspondiente código Ascii  usando la función ASC y lo escribimos en la columna C de la hoja de cálculo.

Finalmente veremos la hoja de cálculo así:


Espero que esta macro te sea útil, deja tus comentarios o escríbeme a macrosymacros1@gmail.com. Para aprender más sobre macros y VBA visita nuestro curso online  , en este enlace podrás descargar una colección de mas de 20 macros.




martes, 1 de diciembre de 2015

MACRO PARA CREAR HIPERVINCULOS


1   Crear  hipervínculos en Excel es muy fácil, pero si tuviéramos que generar una gran cantidad de estos Seria bastante tedioso crear uno por uno.

Hoy les traigo una macro que nos permitirá crear hipervínculos de forma masiva.

Esta macro hará lo siguiente:
Recorrerá una lista con el nombre de los documentos a los cuales queremos referenciar con el hipervínculo.
Creara el hipervínculo a dichos documentos.

Aquí esta el código:

Curso online de excel


En esta macro son muy importantes las siguientes instrucciones: ffinal = ws.range(“A1”).End(xlDown).row” , esta instrucción nos permitirá saber cual es la ultima fila con datos en la lista de documentos a los cuales crearemos hipervínculo.

Después nos encontramos un ciclo que recorre la hoja de cálculo por la columna A desde la fila 2 hasta la última fila que hemos calculado con datos

La instrucción “ws.Range("A" & i + 1).Hyperlinks.Add anchor:=ws.Range("A" & i + 1), Address:=direccion”  nos permitirá crear el hipervínculo, esta instrucción tiene dos parámetros muy importantes anchor que indica el lugar o celda de la hoja de calculo donde crearemos el hipervínculo y Addres que nos indica la dirección de el documento al cual queremos hacer referencia(para que la macro funcione todos los documentos deben estar en la misma carpeta en que esta nuestro libro de Excel que contiene la macro), a ambos parámetros(anchor y addres) les asignamos la celda en la cual se encuentra “parada” la macro.

Esta es la hoja de cálculo antes de ejecutar la macro:

Cusro online de excel

En el listado solo puse cuatro documentos, pero la lista puede ser tan larga como necesites.

Esta es la hoja de cálculo después de ejecutar la macro:

Como puede ver ya tiene los hipervínculos a los diferentes documentos.

Espero que esta macro te sea útil, si quieres aprender mas sobre Excel y macros visita nuestro curso online. En la sección de libros recomendados encontraras el enlace al libro Excel 2013.MACROS Y VBA donde encontraras mucha mas información sobre estos temas, en este enlace podrás descargar una colección de mas de 20 macros como esta.







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.

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.