En los laboratorios de las empresas, es muy importante evaluar periódicamente las sustancias peligrosas de acuerdo a una planificación hecha. El presente ejemplo muestra a través de una columna los días (1 al 31) en que se harán las evaluaciones.
La función DAY devuelve el día del mes (un número de 1 a 31) de una fecha. En el ejemplo, primero se evalúa el número de filas para saber cuántas actividades se van a evaluar entonces utilizamos una instrucción For… Next. Aplicamos la función DAY a cada fecha de la columna B y obtenemos el resultado en la columna C según se programó.
Es importante mencionar que este ejemplo permite que sean escritas nuevas sustancias con nuevas fechas pues el código de la última fila lo permite.
(Para mayor visualización de la imagen, hacer click en la misma)
Por: Christian Gózar
29/07/2013 a las 6:47 pm
Interesante.
03/09/2013 a las 10:05 pm
Hola, descargué el archivo de ejemplo (Evaluacion del dia con Day) pero no entiendo para qué sirve o qué significa el siguiente código:
ult = Cells(Rows.Count, 2).End(xlUp).Row
Está antes de la instrucción:
For i = 2 To ult
Este último lo describiste en el ejemplo saber cuántas actividades se van a evaluar.
27/10/2014 a las 10:12 am
Hola, este código significa que tomará el último valor de la fila en la columna B (columna A=1, Columna B=2, ...). Sirve para automatizar la búsqueda de los últimos valores que se encuentran en la columna "B", ya no tendrás que brindarle un valor específico al código For "i".
05/09/2013 a las 5:07 pm
En el problema Day, utiliza
ult = Cells(Rows.Count, 2).End(xlUp).Row
ult es la ultima fila ocupada de la hoja en la columna 2, todo ese comando hace eso
rows count hace un conteo de filas en la columna 2 y el resto del comando es para completar de concluir de hallar "ult"
ult lo necesita porque el for next requiere de un "inicio" y un final que es "ult"
Es un buen metodo para hallar la ultima fila de la hoja (en un columna dada) que esta ocupada por caracteres o numeros.
Favor si nos orientan un poco a entender este comando
08/09/2013 a las 7:56 pm
¿Y habrá alguna función que arroje la hora y segundo?, he buscado y no he encontrado y esto es algo que me serviría para mi trabajo.
09/09/2013 a las 2:47 pm
Diego
existe la función TimeSerial cuyo argumento es hora, minuto y segundo:
x = TimeSerial(a,b,c)
ahora si ya se tiene ese "numero x" que corresponde a una determinada hora
utilizas
Hour(x), Minute(x) ó second(x) y obtienes hora, minuto o segundo.
Prueba con z = Now() y con la diferencia con x obtienes "tiempo transcurido hasta el momento"
Suerte Doc
08/09/2013 a las 7:58 pm
Según entiendo la funcion DAY devuelve el numero del dia a que corresponde la fecha indicada, mientras que el macro ha contabilizado el numero de celdas ocupadas den la columna fecha (COLUMNA 2), para luego ejecutar la funcion DAY por cada fecha y devolver el resultado en la columna DIA (COLUMNA 3)
29/10/2013 a las 4:19 pm
Muy bueno
01/11/2013 a las 9:37 am
Muy buena la funcion, solo le agregaria un boton para actualizar los datos (cargar la macro), de la columna C.
02/11/2013 a las 1:45 am
Quisiera saber por qué no funciona la función day si pongo una fecha de la siguiente forma: 11.10.2011
02/11/2013 a las 8:14 am
En qué otros casos se podría utilizar esta función, no entiendo muy bien la importancia, si ya tenemos la fecha, para que sería necesario tener el día, sien la fecha ya está el día y el mes.
03/11/2013 a las 4:13 pm
Interesante la función.
Qué función se podría añadir para que la macro funcione si decides añadir filas antes del encabezado?
03/11/2013 a las 11:42 pm
Me parece interesante la función, creo que es aplicable a cualquier ámbito laboral por ejemplo en las finanzas se puede calcular cuántos días falta para que venza un préstamo.
23/11/2013 a las 7:15 pm
La función está interesante, pero sería bueno que se pudiera especificar el detalle de cada línea de comando (para los que estamos iniciando), porque si las fechas están en otras celdas no se ejecuta la función.
24/01/2014 a las 11:28 pm
siempre que se quiera hacer que el excel cuente la cantidad final de columnas debe ser escrita asi: Cells(Rows.Count, 2).End(xlUp).Row o basta con poner Cells(Rows.Count, 2)?
26/10/2014 a las 7:10 pm
Buenas es necesario que sea completo Cells(Rows.Count, 2).End(xlUp).Row y si deseas el ultimo valor de esa columna sería Cells(Rows.Count, 2).End(xlUp)
Espero que te sirva mi respuesta.
26/01/2014 a las 3:37 pm
La función DAY es interesante debido a que se pueden agregar una cantidad infinita de filas con el comando ult = Cells(Rows.Count, 2).End(xlUp).Row, luego se utiliza For...to.....Next y sigue Dia = Day(Cells(i, 2)) ; Cells(i, 3) = Dia. Tengo dos consultas:
Para hallar ult siempre se debe colocar por defecto End(xlUp).Row?
En vez de primero asignar una variable "día" podría hacer lo siguiente, Cells(i, 3) = Day(Cells(i, 2))??
26/01/2014 a las 4:17 pm
La función "day" es interesante pero tengo dos consultas con respecto a su formulación:
Cuando definimos ult = Cells(Rows.Count, 2).End(xlUp).Row, siempre se debe colocar por defecto End(xlUp).Row o en este caso tiene una función especial?
En vez de definir Dia = Day(Cells(i, 2)) ; Cells(i, 3) = Dia, podría definirlo de la siguiente forma, Cells(i, 3) = Day(Cells(i, 2))???
26/01/2014 a las 7:56 pm
La funcion es muy útil, sin embargo, solo se puede usar para las líneas/columnas en las que se ha establecido la tabla.
Me parece que se tendría que cambiar el código cada vez que se trate con una tabla diferente (ubicada en otro lugar, con la columna de fecha en otra posición, etc). Mi pregunta es si hay alguna forma de escanear las columnas de una tabla en busca de la columna de las fechas y obtener el día en la columna final de la tabla, por ejemplo.
06/10/2014 a las 7:38 pm
En ese caso solo se tendrán que contar la celda en la cual quieres que aparezcan el número de días, pero la función te facilita en caso sean 50000 fechas por ejemplo.
08/04/2014 a las 3:57 pm
Todo me parece muy bien, pero si utilizo la fórmula: day(), y la jalo no obtengo el mismo resultado? Entonces cómo esta macro mejora el uso del excel?
10/04/2014 a las 1:40 pm
Creo que la primera diferencia es que el dato obtenido con la macro es un valor y no una formula por cada celda en la que es aplicada.
Lo segundo es que en general al aplicar una macro que como resultado va a generar un valor y no una formula por cada celda hace que nuestro archivo Excel sea más ligero.
12/04/2014 a las 7:30 pm
El uso de macros disminuye los pasos a seguir con respecto a una fórmula, sólo con Ctrl+... , a mi parecer es más fácil.
10/04/2014 a las 11:14 am
Interesante la función "day" especialmente para los que recién iniciamos. Probé utilizando nuevos valores a las celda B y funcionó, pero no se porqué la función arroja 30 días cuando la celda a evaluar está vacía.
10/04/2014 a las 12:41 pm
Creo que la primera diferencia es que el dato obtenido con la macro es un valor y no una formula por cada celda en la que es aplicada.
Lo segundo es que en general al aplicar una macro que como resultado va a generar un valor y no una formula por cada celda hace que nuestro archivo Excel sea más ligero.
10/07/2014 a las 12:54 am
Buena función DAY bueno yo solo la empleaba de las funciones que tiene excel pero no lo havia visto en una macro de esa manera buena info