sábado, 20 de octubre de 2018

INSTRUCCIÓN PARA EJECUTAR UNA MACRO A UNA HORA DETERMINADA


Esta macro nos permitirá crear un libro de excel a una hora predeterminada , el libro llevara por nombre la fecha en formato añomesdia. Para esto usaremos el método OnTime , este método nos permite ejecutar cualquier macro a una hora especifica. Su sintaxis es la siguiente:

Application.OnTime Primera Hora , procedimiento , Ultima Hora , Programar.

Primera Hora: El momento en que se ejecutara la macro.

Procedimiento : Nombre de la macro.

Ultima Hora: La ultima hora en que se puede ejecutar la macro. Si por algún motivo no se puede ejecutar el procedimiento en la hora establecida(primera hora) , se ejecutar en la ultima hora. Si no se establece este parámetro excel esperara hasta que se pueda ejecutar.

Programa: Se estable en verdadero o falso , verdadero para programar otra macro y falso para borrar una macro previamente establecida.

Veamos el ejemplo:

Para empezar en un nuevo libro de excel vamos a la opción programador  y seleccionamos Visual Basic. 


Cuando estemos en el IDE de VBA seleccionamos la pestaña ThisWorKbook.


Escribimos el siguiente código :
Como podemos ver en el codigo anterior la macro que ejecutaremos a las “17:41:00” se llama CrearLibro.
En una entrada anterior explicamos como crear libros de excel usando macros .

A continuación el código de la macro CrearLibro:























De esta manera la proxima vez que se abra este libro de excel a las  “17:41:00” se creara un nuevo libro.

sábado, 25 de agosto de 2018

FUNCION EN EXCEL QUE RETORNA LOS NUMEROS DE UNA CADENA DE TEXTO


Excel tiene muchas funciones que podemos usar dependiendo de nuestra necesidad, sin embargo puede ser que  para casos específicos no encontremos la función que requerimos. Pensando en esto se nos ofrece la posibilidad de crear nuestras propias funciones. Vamos a crear una función en Excel que nos permita extraer los campos numéricos dentro de una cadena de texto, por ejemplo si tenemos la cadena de texto “Agosto2018” la función que crearemos nos retornara el valor 2018. Con este ejemplo también aprenderemos el uso de algunas funciones de cadena.

En las macros que hemos creado hasta ahora siempre usamos la palabra Sub para iniciar los procedimientos. Como  lo que estamos creando son funciones usaremos la palabra Function.

La sintaxis es: palabra Function nombre de la función (parámetros de la función). Para el ejemplo el nombre de la función será numbers y recibirá como parámetro un texto.



Definiremos tres variables: longitud de tipo entero para almacenar la longitud del texto que llega por parámetro, un contador  de tipo entero que usaremos para recorrer la cadena de texto recibida por parámetro  y una variable de tipo texto que nos servirá para almacenar los datos que retorna la función.


CALCULAR LA LONGITUD DE UNA CADENA


Lo primero que debemos hacer es calcular la longitud de la cadena, para esto usamos la función Len , que nos retorna el número de elementos que contiene una cadena de texto.






Hasta ahora nuestra función esta así:




RECORRER LA CADENA


Debemos recorrer la cadena y validar cada elemento para saber si es numérico. Para recorrer la cadena usaremos un ciclo for  desde 1 hasta la longitud de la cadena, la cual calculamos en el punto anterior.




Hasta ahora nuestra función está así:










SUBCADENA DE UN TEXTO


Debemos validar si cada elemento de la cadena es numérico, para esto extraemos posición por posición la subcadena  del texto recibido por parámetro, utilizando la función MID.




Con esta instrucción estamos indicando que necesitamos ver el valor que tiene la variable text a partir de la posición i una posición.

VALIDAR SIN UN VALOR ES NUMÉRICO


Para saber si el texto que hemos extraído con la palabra reservada MID es numérico usaremos la función IsNumeric .




La función IsNumeric retorna verdadero o falso, si el substring es numérico retorna verdadero de lo contrario falso.

Nuestra función estaría así:










CONCATENAR UNA CADENA


A medida que recorremos la cadena de texto y encontramos números debemos ir  uniéndolos en una variable.
Para concatenar usaremos (&)




Con esto estamos almacenando en la variable number lo que contiene la misma con el subtring de la cadena.
Finalmente nuestra función debe retornar la variable concatenada, esto lo conseguimos con la siguiente instrucción




Con esto terminamos y este sería el código de nuestra función
















Ahora podemos utilizar en la hoja de cálculo la función numbers.