miércoles, 5 de octubre de 2016

Curso de Macros y Programación VBA en Excel 2016: Creación y uso de Funciones Definidas por el Usuario. Emisión 0011.

Si os cuento que podemos desarrollar nuestras propias funciones y que se pueden usar en Fórmulas de Excel, igual que hacemos con las que trae Excel de serie, seguro que más de uno ya estará frotándose las manos... Bueno pues entre otras cosas eso es lo que vamos a ver en esta emisión, como crear Funciones y utilizarlas desde las Fórmulas de Excel y desde programación. La emisión se realizará el 05/10/2016 a las 22:00 hora Española, a las 15:00 hora de México D.F.

Curso: Macros y VBA 
en Excel 2016.
Formato:Emisión en Directo.
Acceso a la emisión
en Youtube:
Aunque ya hemos visto que, con los Procedimientos con Argumentos, podemos llegar a reutilizar el código, tenemos otra posibilidad menos conocida, las Funciones. Podríamos decir que con los procedimientos podemos reutilizar código que se encarga de realizar operaciones, trabajos repetitivos, como pueden ser crear gráficos, tablas, formatos, etc... Las Funciones hilan más fino, también permiten reutilizar código y no repetirlo en diferentes sitios, pero con un objetivo diferente, tienen como objetivo obtener resultados y devolverlos. Es decir, todo el código que metamos dentro de una Función, tiene como objetivo devolver un resultado que después puede ser utilizado en otro sitio, bueno, en concreto en dos sitios.

Con una Función podemos, por ejemplo, devolver el resultado de cálculos muy complejos y ese resultado utilizarlo en el código VBA para realizar otros cálculos o para mostrar ese resultado en otras herramientas de Excel, por ejemplo, en un MsgBox, un UserForm, un control ActiveX o en donde lo necesitemos. Pero quizás, el uso más interesante que se le pueden dar a las Funciones es el otro, creando Funciones en VBA, programándolas, podemos desarrollar nuestras propias Funciones de Excel, de Fórmulas de Excel.

Es decir, en las Fórmulas de Excel podremos utilizar nuestras propias funciones e incluso las podremos utilizar junto con las que incorpora Excel. Seguro que muchas veces habéis pensado, que pena que Excel no tenga una Función que pueda hacer esto y esto otro, etc... Bueno pues no hay problema, no tenéis que esperar a que Microsoft las incorporé en próximas versiones, os las podéis crear vosotros mismos en VBA. En la emisión veremos cómo hacerlo.

En esta emisión se quedarán detalles muy interesantes por comentar sobre las funciones, sobre todo detalles orientados a su uso desde Fórmulas de Excel, pero no os preocupéis porque habrá más emisiones dedicadas a esta herramienta. En mi opinión una emisión muy interesante que no deberíais perderos.


Para esta emisión necesitáis descargar los dos documentos que voy a utilizar, los podéis descargar en el siguiente enlace. También tenéis los datos de la emisión que se realizará el 05/10/2016.



  • Nombre: Curso Macros Programación VBA Excel 2016: Creación de Funciones definidas por el usuario. #0011.
  • Fecha de emisión: 05/10/2016.
  • Hora de Emisión: 22:00 hora Española, 15:00 México D.F.
  • Versión de Excel: ES/Español.
  • Chat en Directo: Sí.


Espero que no os la perdáis, poco a poco intentaré poner en práctica mis planes para el Blog y para el Canal, pero como he vuelto a trabajar, habrá que tener paciencia ;)

martes, 28 de junio de 2016

Curso de Macros y Programación VBA en Excel 2016: Procedimientos con Argumentos. Argumentos por Referencia y por Valor. Emisión 0010.

Retomamos un tema que tocamos nada más empezar con el curso, los Procedimientos. Los hemos ido utilizando en todas las emisiones del Curso, pero no utilizábamos la característica que nos permite reutilizar código, los argumentos. En esta emisión lo veremos. La emisión se realizará el 28/06/2016 a las 22:00 hora Española, a las 15:00 hora de México D.F.

Curso: Macros y VBA 
en Excel 2016.
Formato:Emisión en Directo.
Acceso a la emisión
en Youtube:
En muchas ocasiones, nos vamos a encontrar con que, en diferentes sitios del proyecto, necesitamos realizar las mismas tareas con pequeños cambios. La mayor parte del código será igual y solo tendrá pequeñas modificaciones para resolver cada caso específico. Bueno, pues en estos casos no debemos repetir código, debemos optar por intentar crear un solo procedimiento para todos los casos y utilizar los argumentos que pueden recibir los procedimientos, para variar internamente el funcionamiento de este y ser capaz de solucionar todos los casos. Es decir, los argumentos, son datos que podemos pasar al interior de los procedimientos y que pueden ser utilizados para realizar trabajos o variar el funcionamiento del código, dependiendo de lo que se le pase.

Por ejemplo, en la emisión, crearemos una pequeña calculadora que realizará cuatro operaciones diferentes. Pero para ello, utilizaremos un único procedimiento que realizará una de las cuatro operaciones dependiendo de uno de los parámetros que se le pasará al procedimiento. Es un ejemplo muy típico pero que facilita mucho la compresión de este tema.

Cuando finalicemos el ejemplo, con otro ejemplo similar os explicaré un detalle muy importante que hay que tener en cuenta cuando se pasan argumentos a un procedimiento. Hay dos maneras de hacerlo, por Referencia o por Valor. Por valor se pasa una copia del dato original y si la copia es modificada, la original permanece inalterada. Sin embargo, al pasar por referencia un argumento, en realidad no pasamos datos, pasamos la dirección de memoria en la que está guardado el dato, y si modificamos el dato dentro del procedimiento, modificamos el original. Todo esto suena muy raro, pero en la explicación lo entenderéis fácilmente y es muy importante hacerlo, porque nos puede llevar a modificar datos de forma accidental.


Para esta emisión no necesitáis descargar documentos, empezaremos uno de cero. A continuación, tenéis los datos de la emisión que se realizará el 28/06/2016.

  • Nombre: Curso de Programación VBA en Excel 2016: Procedimientos con Argumentos. Reutilizar Código. #0010.
  • Fecha de emisión: 28/06/2016.
  • Hora de Emisión: 22:00 hora Española, 15:00 México D.F.
  • Versión de Excel: ES/Español.
  • Chat en Directo: Sí.


Nada más por esta semana. La próxima intentaré emitir el lunes, pero no prometo nada, se acercan las vacaciones familiares y creo que voy a intentar publicar otro tipo de material, pero ya os informaré. Como he comentado por las redes sociales, no os preocupéis por el ritmo de publicación, en Agosto creo que echan del trabajo y por desgracia, creo que tendré todo el tiempo del mundo para esto. Por lo menos durante un tiempo...

jueves, 2 de junio de 2016

Curso de Macros y Programación VBA en Excel 2016: Bucles For y Bucles For Each. Emisión 0009.

Acabamos el tema de los Bucles, con la explicación de dos tipos de Bucles muy similares, pero con muchas diferencias en cuanto a posibilidades de uso, hoy veremos los Bucles For y los Bucles For Each. La emisión se realizará el 02/06/2016 a las 22:00 hora Española, a las 15:00 hora de México D.F.

Curso: Macros y VBA 
en Excel 2016.
Formato:Emisión en Directo.
Archivo necesario:For #0009....xlsm
For Each 0009....xlsm
Acceso a la emisión
en Youtube:
Para acabar de momento, con las posibilidades que tenemos para provocar la repetición de código, hoy vamos a ver las dos variantes de Bucles For que tenemos. Con la primera, el bucle For clásico, podemos repetir código un número de veces determinado. Es decir, este bucle será el ideal cuando sabemos de antemano, cuantas veces hay que repetir un código. Si antes de entrar en el bucle, ya sabemos el número de veces que hay que repetirlo, bien porque es un número fijo o bien porque lo podemos calcular, los bucles For son perfectos para ese trabajo. Indicando un número inicial y un número final controlamos las veces que se repetirá el bucle.

Si no indicamos otra cosa, los bucles For, en cada repetición, aumentan una unidad el número inicial y finalizan las repeticiones cuando llegan al número final. Este incremento, tal y como veremos en la emisión se puede cambiar, incluso se pueden provocar incrementos negativos y de esa manera podemos controlar el número de veces que se repetirá el bucle. Este tipo de bucles suelen ser interesantes cuando por ejemplo hay recorrer filas de datos, tal y como veremos en la emisión. Junto a ellos hay que usar lo que se conocen como Variables Contador, variables numéricas que se utilizan para controlar el número de repeticiones. Por lo tanto, también usaremos variables de tipo numérico en la emisión, así poco a poco vamos profundizando en el uso de variables.

La otra variante de For es similar en cuanto a estructura, pero mucho más potente en cuanto a posibilidades de uso, ya que es perfecta para trabajar con las colecciones de objetos que forman Excel, se trata de los bucles For Each. Son unos bucles especiales que nos permiten recorrer colecciones de objetos. Por ejemplo, en Excel, nos permitirían recorrernos todas las hojas de un libro, todas las celdas que tengamos seleccionadas, todos los gráficos que tengamos creados en un documento, todos los libros que tengamos abiertos... Y muchas más posibilidades que iremos viendo a lo largo de curso. En concreto en esta emisión los utilizaremos para recorrernos todas las celdas que tengamos seleccionadas y todas las hojas que contenga un documento de Excel. Junto con estos bucles hay que usar variables objeto del mismo tipo que la colección de objetos que vamos a recorrer, en este caso usaremos variables de tipo Range (celdas) y variables de tipo Worksheet (Hoja de trabajo).

Esta emisión, seguramente no tiene tantos detalles como las anteriores, pero el uso de los Bucles For y For Each es fundamental en Excel y no os la debéis perder.


Para esta emisión necesitáis descargar los dos documentos que voy a utilizar, los podéis descargar en el siguiente enlace. También tenéis los datos de la emisión que se realizará el 02/06/2016.


  • Nombre: Curso Programación VBA Excel 2016: Bucles For y For Each. #0009.
  • Fecha de emisión: 02/06/2016.
  • Hora de Emisión: 22:00 hora Española, 15:00 México D.F.
  • Versión de Excel: ES/Español.
  • Chat en Directo: Sí.



Nada más por esta semana. La próxima creo que volveremos a Access...