Excel - Situar un valor en función del dia actual

 
Vista:

Situar un valor en función del dia actual

Publicado por TETRIAK (12 intervenciones) el 10/07/2009 13:02:52
Hola a todos, os comento mi pequeño repto:

Estoy programando una macro que copie un valor de una hoja de excel y lo pegue en otra hoja de excel.

Tengo que ejecutar esta macro una vez por día

En la segunda hoja donde se pegaran los valores he puesto los días del mes en una columna, en este caso, hasta el 31 de julio.

Mi dificultad reside en que no se cómo automatizar el excel para que cada dia pegue el valor en la segunda hoja en la casilla del día anterior al actual

Sabeis como debo hacerlo? teneis alguna referencia?

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE: Situar un valor en función del dia actual

Publicado por jazmin (57 intervenciones) el 15/07/2009 17:56:00
Me parece que tu problema reside en que lo que tu programa debe hacer es colocar el nuevo valor en la celda que corresponde, es decir, si hoy es viernes 17, y vas a procesar lo de ayer jueves 16, tu macro lo que deberia hacer es ubicar el nuevo valor en la celda marcada con jueves 16/07/2009. Y si hoy fuera lunes, deberia colocar el valor en sabado o domingo, cierto????

Es un problema recurrente pero de facil solucion, te recomiendo usar FIND, declarando previamente variables de fecha, para que la macro ubique la fecha deseada y pegue los datos sin posibilidad de error. deberas usar tambien OFFSET.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Situar un valor en función del dia actual

Publicado por tetriak (12 intervenciones) el 16/07/2009 12:44:49
Jazmin, un compañero me propuesto esta solución.

He colgado un archivo comprimido en .rar donde se incluyen 3 libros: libro0, libro1 y libro2.

Estan en 3 servidores, por si alguno de los 3 fallan.
-----------------------------------------------------------------------------------
http://rapidshare.com/files/256415207/Libros_by_Tetriak.rar.html

http://www.gigasize.com/get.php?d=8y7socdbfob

http://www.mediafire.com/?sharekey=7dc9b622e990a55707258ee67c679e4ab6b2a3be7c9b553b5621d66e282a0ee8

(esta última dirección si la usas escríbela en una línea únicamente)

--------------------------------------------------------------------------------------
Cuando tengas el archivo, verás que cuando se ejecuta la macro del libro0, se copian los valores del libro1 al libro2, en la fila del día correspondiente y entre las columnas "B" e "I"

Quisiera realizar otra macro casi igual a esta, pero necesito que los mismos valores se peguen entre las columnas "K" y "R" también en su día correspondiente y con el mismo orden que antes.

De esta manera, entenderé como se hace para cambiar la posición de los valores a pegar y podré realizar más modificaciones de la misma forma, variando el rango de columnas donde se pegarán dichos valores.

¿Sabrías más o menos como se haría esta leve modificación?¿Sabrías más o menos como se haría esta leve modificación?

Muchísimas gracias.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Situar un valor en función del dia actual

Publicado por jazmin (57 intervenciones) el 16/07/2009 17:33:49
Pues bien, si, es una leve modificacion

Revisa en la ayuda del VBA, sobre la propiedad OFFSET. Esta propiedad lo que hace es mover una referencia hacia la derecha, izquierda, arriba o abajo, tiene dos argumentos, el primero especifica cuantas filas se movera, puede ser negativo o positivo (es negativo si quieres que suba y es positivo si baja) y el segundo argumento es la cantidad de columnas que moveras, y tiene el mismo tratamiento que el primero.

Lo que debes modificar en el codigo:

Despues del bucle (Do- Loop) tienes una expresion condicional (If), luego tienes esto:

ActiveCell.Offset(0, 1).Value = a

lo que hace es asignar el valor de "a" a la celda que esta una columna hacia la derecha de la celda activa "Offset(0-Cero filas-, 1 -Una columna-)" y pondra el valor de a ahi. Prueba con otros valores en el segundo argumento hasta que se ubiquen en la columna que quieras.

ActiveCell.Offset(0, 10).Value = a ' pondra en la col K
ActiveCell.Offset(0, 11).Value = b ' pondra en la col L
y asi sucesivamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE: Situar un valor en función del dia actual

Publicado por tetriak (12 intervenciones) el 17/07/2009 12:38:36
Muchas gracias jazmin, he seguido tu consejo y ha funcionado correctamente, y lo he podido implantar a mi proyecto.

Gracias por tus explicaciones

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar