lunes, 25 de enero de 2016

Macros y Programación VBA en Excel 2016.Crear varias condiciones con If y ElseIf. Evento Change. Emisión 0006.

Seguimos conociendo las instrucciones de VBA que nos permiten condicionar la ejecución del código. En esta emisión, entre otras cosas, veremos como condicionar el código cuando se presentan más de dos posibles condiciones, usando If junto con ElseIf. Ya está disponible el vídeo de la emisión, para su visionado en diferido. Aunque estaba previsto explicar en esta emisión la instrucción Select Case, no ha sido posible por la larga duración de la emisión. Se hará en la próxima.

Curso: Macros y VBA 
en Excel 2016.
Formato:Emisión en Directo.
Archivo necesario:Emisión 0006....xlsm
Acceso a la emisión
en Youtube:
Continuamos donde lo dejamos en la emisión anterior, vamos a seguir conociendo más opciones para condicionar la ejecución de nuestro código. Con lo que os expliqué en la emisión anterior, podíamos tomar dos caminos de ejecución del código, podíamos usar un If con un Else, para ordenar que se hagan dos cosas diferentes. Pero en muchas ocasiones nos vamos a encontrar con que los diferentes caminos que puede tomar el código, son más de dos, hay más de dos posibles condiciones o caminos. Bueno pues en esos casos podemos usar el ElseIf que también acompaña a la instrucción If.

Junto con las instrucciones condicionales os voy a explicar dos Funciones de VBA, con las que podemos controlar si determinados valores son fechas o son valores numéricos, las funciones IsDate y IsNumeric. En los ejemplos las vamos a usar para controlar si los valores escritos en unas celdas, son fechas o números. Son dos funciones que nos pueden ahorrar muchos problemas, al permitir controlar que los datos que llegan son del tipo correcto, del tipo que esperamos.

Además de todo lo anterior, en los ejemplos seguiremos conociendo más posibilidades ya características de los objetos de Excel. En concreto en esta emisión vamos a trabajar con un evento de los objetos de tipo hoja, tipo Worksheet, el evento Change. Este evento se produce cuando se cambia el valor de una celda y permite ejecutar código justo en ese momento. Lo vamos a utilizar para controlar los valores que se escriben en unas celdas. Relacionado con esto, también veremos cómo podemos deshabilitar y habilitar los eventos de Excel a nuestro gusto. Muchas veces, conviene hacer por cuestiones de rendimiento, o para solucionar situaciones como la que veremos en la emisión, en la que entramos en una especie de bucle sin fin, que no nos dejará continuar con el trabajo en Excel.

Hay más detalles que os iré explicando en esta emisión, pero no son el tema principal. Por ejemplo, veremos cómo acceder a otras celdas utilizando la propiedad Offset. Pero como os digo, son detalles "menores" de los que voy a ir metiendo en todas las emisiones, para ir conociendo poco a poco los objetos que componen Excel.


Para esta emisión necesitáis descargar el documento que voy a utilizar, lo podéis descargar en el siguiente enlace. También tenéis los datos de la emisión que se realizó el 25/01/2016 y el enlace que os permitirá acceder a su grabación.


  • Nombre: Macros y Programación VBA en Excel 2016. If, ElseIf. Evento Change. Emisión 0006.
  • Fecha en la que se emitió: 25/01/2016.
  • Duración: 2h:26m:51s.
  • Versión de Excel: ES/Español.
  • Audio: Español.



En las próximas horas os iré informado de cuales son las próximas emisiones. Todavía no está decidido ;)

4 comentarios:

  1. Saludos David, felicitaciones por tu gran trabajo.
    Tengo una pregunta, estoy tratando de generar correos desde excel y habilite las librerías, pero me sale el error 429 el componente active X no puede crear el objeto

    ResponderEliminar
  2. Gracias por tu trabajo, a ver si pronto puedo seguirte en directo

    ResponderEliminar
    Respuestas
    1. De nada!!!!!!!

      El lunes hay emisión en directo de este tema.

      Saludos.

      Eliminar
  3. Hola David, muchas gracias por compartir con nosotros tus conocimientos, he visto en su mayoria los video de vba.
    quisiera hacerte una consulta sobre unas dudas que tengo sobre un formulario que debo hacer, te agradeceria demasiado si me pudieses ayudar.

    ResponderEliminar