martes, 29 de septiembre de 2015

ABRIR UN LIBRO DE EXCEL CON EL USO DE MACROS

El protagonista en la macro de hoy es el objeto WORKBOOK,  este objeto hace parte de la colección workbooks y nos permitirá acceder a nuestros libros de Excel.

Para hacer referencia al libro de Excel en que estamos ejecutando el código VBA usamos la propiedad THISWORKBOOK como se mostrara más adelante en la macro.

Para ejemplificar el uso del objeto WORKBOOK , cree una macro que permite abrir un libro de Excel que cree  previamente. Ejemplos como este los puedes encontrar en nuestro curso online de excel.




El libro datos será el que abriremos con el uso de la macro. Adicionalmente la macro copia los datos del libro que abre y los pega en el libro que contiene la misma, en este caso copiara los datos que se encuentran en DATOS  a Macro10.

Este es el código de la macro


Como se puede ver en el código usamos la instrucción THISWORKBOOK.PATH esta instrucción retorna la ubicación actual del libro que contiene la macro por este motivo Para que esta macro funcione el libro que queremos abrir debe estar en la misma carpeta que el libro que contiene la macro.

Para copiar los datos desde el libro que estamos abriendo lo hacemos fila por fila, previamente sabemos hasta que fila debemos copiar porque lo calculamos con la instrucción
FILA = WS_DATOS.RANGE(“A1”).ROWS.END(XLDOWN).ROW, esta instrucción nos retornara la última fila con datos después en la columna A1 de la primera hoja del libro que estamos abriendo, para el ejemplo el libro datos.

Espero que esta macro te sea de utilidad, por favor deja tus comentarios. Si quieres aprender más sobre temas como este visita nuestro curso online de excel.

domingo, 27 de septiembre de 2015

MACRO PARA OCULTAR O MOSTRAR FILAS DE UN LIBRO EXCEL

En diferentes ocasiones y por diversos motivos necesitamos ocultar o mostrar una fila determinada de una de cálculo.

Hoy les traigo un sencillo ejemplo de cómo podemos con el uso de VBA para Excel ocultar o mostrar una fila de Excel.

Este código busca en una  hoja de cálculo definida para almacenar los datos las filas que contienen un valor x y las oculta o las muestra dependiendo de la rutina de la macro que estemos ejecutando.


En mi libro de Excel he definido dos hojas de cálculo, una hoja con el nombre parámetros y otra hoja con el nombre principal, la hoja parámetros contiene el valor que buscaremos en la hoja principal para ocultar o mostrar las filas


La hoja principal contiene los datos, en esta misma hoja agregue dos figuras que uso como botones para ejecutar una determinada rutina de la macro.


Para asignar una rutina de la macro para cada figura hacemos clic derecho sobre la figura y seleccionamos asignar macro, veremos el siguiente cuadro de dialogo donde escogemos la macro para nuestra figura o botón. En este ejemplo le estoy asignando la macro ocultar al botón que lleva el mismo nombre en nuestra hoja de cálculo.


Este es el código que ejecutamos para ocultar o mostrar las filas, en el  curso online de excel donde podras encontrar más ejmplos como este

En cada rutina de la macro(mostrar , ocultar) calculamos la última fila con datos esto con el fin de recorrer la hoja de cálculo hasta dicha fila, el recorrido lo hacemos con un ciclo for desde la fila uno hasta la que hemos calculado como última fila con datos,  durante este recorrido se busca el valor que se encuentra en la hoja parámetros en la hoja principal y la fila en que se encuentra  se le aplica la acción ocular o mostrar, asignando el valor booleano verdadero o falso según corresponda  a la propiedad Hidden de la fila.

Podemos ver la hoja de cálculo principal antes de ejecutar la macro, los valores resaltados en amarillo son los que se ocultaran.


Si hacemos clic en el botón ocular el resultado es el siguiente:



Como se puede ver se ocultan las filas resaltadas de amarillo.

Para aprender mas sobre programacion con VBA para excel  te recomiendo el curso online de excel donde te mostraran mas detalladamente como utilizar la maravillosa herramienta que es este lenguaje.

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 te haya sido de utilidad, por favor deja tus comentarios.






sábado, 26 de septiembre de 2015

MACRO QUE CALCULA FECHA Y HORA DEL SISTEMA

Poder conocer la fecha y hora del sistema es una posibilidad que como lo hacen otros lenguajes de programación también nos brinda VBA para Excel.

Para conocer esta información usamos dos funciones como son:

Función DATE: nos permite conocer la fecha del sistema, contiene la fecha a partir del año 0001 hasta el 9999. Además de contener la fecha también contiene valores de hora. Podemos usar Date como tipo de dato, por ejemplo Dim fechayhora as DATE, esta variable contendrá la fecha y la hora por haber sido definida de tipo DATE.

Función TIME: Nos permite obtener la hora del sistema en formato Date.

Para ejemplificar el uso de estas dos funciones crearemos una macro que nos permite calcular la hora inicial y final del sistema, la macro funciona de la siguiente forma:

  1.  Tiene dos botones creados en la hoja de cálculo botón inicio y botón final.
  2.  Tiene además de la hoja principal una hoja de hemos llamado parámetros y contiene la estructura (bordes, tamaño) de la celda en que pondremos los datos.
  3. Cuando se hace clic en el botón inicio la macro busca la última fila con datos en la hoja de cálculo principal después de la columna fecha inicial , copia la fila que hemos definido con la estructura para nuestros datos desde la hoja parámetros y la pega en la hoja principal, con el uso de la función date asigna la fecha inicial , con el uso de la función time asigna la hora inicial.
  4. Cuando se hace clic en el botón fin la macro busca la última fila con datos en la hoja de cálculo después de la columna fecha inicial,   con el uso de la función date asigna la fecha final, con el uso de la función time asigna la hora final.
     Este es el código de la macro:

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


   Hacemos clic en el botón Inicio y se inserta la primera fila:

   Hacemos clic en el botón fin y se muestra la fecha y hora final

    Espero que te sea de utilidad , por favor deja tus comentarios , en el curso online de excel puedes encontrar mas información sobre este y otros temas. 

















lunes, 21 de septiembre de 2015

MACRO PARA RECORRER UNA TABLA ACCES

En una entrada anterior habíamos visto como insertar registros en una base de datos usando macros, hoy veremos cómo consultar o recuperar información de la base de datos atravez de macros.
Excel nos brinda herramientas para importar datos desde acces a la hoja de cálculo, pero además de esto existe la posibilidad de acceder a una base de datos acces usando macros.

Hay dos elementos para tener en cuenta en esta macro:

1.       Modelo DAO(Objetos de acceso a datos): Este utiliza el motor de base de datos Microsoft jet que nos brinda un conjunto de objetos para manipular la base de datos especialmente archivos .mdb.

2.       Recordset: el recordset representa los registros de una tabla de la base de datos o de una consulta.

Para poder presentar este ejemplo previamente cree una basede datos en acces:


Antes de empezar a escribir el código debemos agregar una referencia al modelo de datos DAO


Este es el código que nos permite acceder y recorrer la basede datos


En la primera línea definimos una instancia del modelo de datos DAO que nos permitirá manipular la base de datos.
Definimos una rutina Recorrer tabla como su nombre lo indica es la que más nos interesa. Dentro de esta rutina esta definida la variable WS  de tipo Excel.Worksheet este variable nos permite manipular la hoja de cálculo. La variable STRSQL contendrá la instrucción SQL que ejecutaremos sobre el objeto recordset. Definimos un ciclo que nos ayuda a recorrer la tabla hasta que llegamos al final de la misma.

Antes de ejecutar la macro tenemos la hoja de cálculo vacía


Después de ejecutar la macro podemos ver que trae la información de la base de datos



Puedes aprender más sobre base de datos , instrucciones SQL  y  macros en el curso online de excel podras aprender más sobre este y otros temas

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 te haya sido de utilidad, por favor deja tus comentarios.






sábado, 12 de septiembre de 2015

MACRO PARA BLOQUEAR UN RANGO DE CELDAS EN EXCEL

Este es un código muy sencillo pero a la vez muy útil pues nos permite bloquear la celda o el rango de celdas que necesitemos en una hoja de cálculo. En esta ocasión utilice un formulario en el cual el usuario de la macro indica cuales celdas quiere bloquear.

Voy a mostrar paso a paso como construí la macro:


         Diseñamos nuestro formulario. Para esto insertamos un USERFORM en nuestra macro



Modificamos la propiedad caption de nuestro formulario


Agregamos dos controles label al formulario y para cada control label un control textbox


Finalmente agregamos un botón que nos permitirá accionar la protección del rango de celdas seleccionadas


 Agregamos el siguiente código a el botón (proteger Celdas) de nuestro formulario.

Este código realiza dos cosas:

1. Define una variable que guarda el rango que se desea proteger.
2.  Invoca una rutina que protege las celdas seleccionadas pasando como parámetro el rango y una referencia de nuestro formulario.

         Rutina que protege las celdas. 


Esta rutina hace lo siguiente:

a.       Recibe como parámetro el rango a proteger y el formulario definido inicialmente.
b.      Define una variable que representa la hoja de cálculo.
c.       Asigna la hoja de cálculo a la variable que representa la misma.
d.      Desprotege la hoja de calculo
e.      Desbloquea todas las celdas de la hoja de calculo
f.        Bloquea las celdas que comprenden el rango definido por el usuario
g.       Protege la hoja de calculo
h.      Oculta el formulario.


Ahora ejecutamos nuestra macro. Seleccionamos el rango A1:B1 y  Hacemos clic en proteger celdas



Si intentamos escribir la celda A1 o B1 Excel muestra el siguiente mensaje


Aprenda Excel  desde cero con 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í.

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

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

      











domingo, 6 de septiembre de 2015

¿ COMO ENVIAR CORREOS ELECTRONICOS USANDO MACROS ?

En el post anterior vimos como recorrer una hoja de cálculo y agregar sus datos a una base de datos acces. Ahora le agregaremos a ese código una rutina que envía correos electrónicos usando Outlook.

Para este ejemplo usaremos la misma hoja de cálculo que en el post anterior, solo agregamos dos celdas una con el asunto y otra con el mensaje que enviaremos


Antes de mostrarles el código, debemos tener en cuenta que nuestra macro realiza cuatro tareas:
1.       Se conecta con acces.
2.       Recorre la hoja de cáculo
3.       Inserta los datos en acces utilizando una instrucción sql.
4.       Envía correos electrónicos usando Outlook a los destinatarios relacionados en la hoja de cálculo.

Para que el código funcione correctamente debes agregar la siguiente referencia en tu libro de Excel


Este es el código




Como resultado de la ejecución del código, podemos apreciar la lista de correo enviados en Outlook


Espero que te sea de utilidad, por favor deja tus comentarios. Si quiere aprender mas sobre excel y macros puedes ver el curso online de excel.



sábado, 5 de septiembre de 2015

RECORRER UNA HOJA DE CALCULO CON MACROS

En esta ocasión veremos cómo podemos recorrer una hoja de cálculo y agregar sus datos a acces todo esto usando macros.

Previamente hice una base de datos en acces cuyo nombre es DATOS, esta base de datos tiene una sola tabla que se llama EMAIL.


También tengo una hoja de cálculo con nombre y correo electrónico de 10 personas, esta es la información que agregaremos a nuestra base de datos


A continuación les muestro el código que recorre la hoja de cálculo y usando una instrucción sql inserta los datos en acces.
Se deben tener en cuenta varios elementos dentro del código:
1.       El código está dividido en dos rutinas y como se requiere que ambas tengan acceso a la base de datos, la variable de la misma se define pública.

2.       Se define una variable que identifica la hoja de cálculo dentro del código.


3.       Es muy importante la  instrucción que nos permite encontrar la última fila con datos de la hoja de cálculo, pues esta nos indica hasta donde debemos recorrer la hoja de cálculo.

4.       La rutina que ejecuta la instrucción INSERT se invoca pasando como parámetro los datos de cada fila hasta la  que encontramos como ultima.



Después de ejecutar el código podemos evidenciar que los datos de la hoja de cálculo fueron insertados en la base de datos.


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

En el curso online de excel podrás aprender más sobre todas las posibilidades que nos brinda esta fantastica herramienta.


viernes, 4 de septiembre de 2015

CONECTANDO EXCEL Y ACCES CON MACROS VBA

Una de las grandes ventajas que brinda Excel es la facilidad para conectarnos con base de datos acces.
Hoy les mostrare un sencillo ejemplo de cómo abrir una base de datos acces desde excel y ejecutar una instrucción sql sobre una tabla de la misma.
Para empezar abrimos Excel , seleccionamos el menú archivo y después opciones

Se activa la siguiente pantalla,  seleccionamos personalizar cinta de opciones y desarrollador

Damos clic en aceptar y volvemos a Excel, donde ya nos aparece el menú desarrollador
Si hacemos clic en desarrollador ya podemos empezar a escribir nuestro código

Ahora les mostrare el código, previamente yo cree la base de datos en acces para este ejemplo.

Espero te sea de utilidad, por favor deja tus comentarios.
En el curso online de macros Excel puedes aprender mucho más sobre este y otros temas.



jueves, 3 de septiembre de 2015

DIME QUE MACRO QUIERES


Si es un usuario habitual de office debe hacer usado alguna vez Excel,  bien sea para tareas financieras o contables la hoja de cálculo se ha convertido en una herramienta indispensable.
Entre todas las posibilidades que brinda Excel están las macros que como ya sabemos nos permite automatizar tareas que hacemos de manera repetitiva para que las podemos ejecutar cuando queramos.
El objetivo de este blog es brindarle tanto a personas con conocimiento en programación como a usuarios habituales de Excel un espacio donde van encontrar macros ya escritas y explicadas.

Dime que macro quieres?


La idea es que los lectores nos indiquen que macros quisieran crear y nosotros la haremos y publicaremos en el blog, solo debe dejar sus comentarios diciendo que macro quisiera.
Queremos facilitar el uso de las macros y tener un amplio contenido que sea útil para todos los usuarios de Excel, estaremos atentos a tus comentarios.
Comience a pensar que macro necesita y cuéntenoslo.

Y después de las macros?

 No solo queremos hacer y publicar macros, también vamos a resolver las dudas que tengas sobre Excel y VBA (esto para las personas que quieren adentrarse en el mundo del código y la programación).
Déjenos comentarios con sus dudas y estaremos contestándoles.
Bienvenido al mundo de las macros.