Macro de fecha parpadeante en Excel
Resuelto
edgc
Mensajes publicados
7
Estado
Miembro
-
motorest -
motorest -
Hola a todos,
Quiero hacer una tabla con:
Una fecha en A1
Una fórmula con fecha + 10 días en la celda B1
Quiero que en la celda B1, el resultado haga parpadear la celda cuando se alcance la nueva fecha.
¿Alguien puede ayudarme?
Cuidado, no soy muy bueno con las macros, ¡son mis primeros pasos!
Configuración: Windows 7 / Internet Explorer 9.0
Quiero hacer una tabla con:
Una fecha en A1
Una fórmula con fecha + 10 días en la celda B1
Quiero que en la celda B1, el resultado haga parpadear la celda cuando se alcance la nueva fecha.
¿Alguien puede ayudarme?
Cuidado, no soy muy bueno con las macros, ¡son mis primeros pasos!
Configuración: Windows 7 / Internet Explorer 9.0
20 respuestas
-
Hola,
Olvida la solicitud de EDGC, cada código es particular. En tu caso deberías haber abierto tu propia conversación.
Si entiendo bien tu solicitud, en la columna F introduces la fecha de envío y en la columna J el artículo correspondiente, en la columna ? que queda por definir, la fecha de la devolución del presupuesto. Si la fecha de la columna ? o la fecha de la devolución del presupuesto que debes ingresar está vacía y la fecha de la columna F es anterior a 15 días con respecto a hoy, las celdas de las columnas F y J parpadean y se detienen cuando ingreses la fecha de la devolución en la columna ?. ¿Es correcto?
A+
Mike-31
Una periodo de fallo es un momento soñado para sembrar las semillas del saber. -
Hola,
Pega este código en un módulo y asocia cada macro a un botón para probar si responde a tus expectativas; ya veremos más tarde el perfeccionamiento.
Option Explicit
Dim BlinkTime As Date
Dim c, x As Range
Public Sub Clignot()
On Error Resume Next
For Each c In Sheets("Feuil1").Range("A2:A150").Cells 'Zona del parpadeo
If c.Interior.ColorIndex = -4142 Then
If c.Value <> "" And c.Offset(0, 2) = "" And c.Value + 15 <= Date Then
c.Interior.ColorIndex = 3 'Rojo
Else
c.Interior.ColorIndex = 0 'Blanco2 actualmente 0 a ver
End If
Else
c.Interior.ColorIndex = 0
End If
Next c
BlinkTime = Now() + TimeValue("00:00:01") 'el tiempo del parpadeo
Application.OnTime BlinkTime, "Clignot"
End Sub
Sub ArretClignot()
On Error Resume Next
Application.OnTime BlinkTime, "Clignot", , False
Sheets("Feuil1").Range("F2:F19,J2:J19").Interior.ColorIndex = xlNone
End Sub
--
A+
Mike-31
Una época de fracaso es un momento soñado para sembrar las semillas del saber. -
Hola,
En las propiedades de tu hoja, pega estos tres códigos (clic derecho en la pestaña de la hoja correspondiente / ver código)
el primer código inicia el parpadeo automáticamente cuando vuelves a la hoja, el segundo detiene el parpadeo para permitir las modificaciones de las celdas cómodamente, y el tercero detiene el parpadeo en cuanto abandonas la hoja, lo que facilita las entradas en las hojas del libro.
Private Sub Worksheet_Activate()
Call Clignot
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("A:C")) Is Nothing Then
Call ArretClignot
Columns("A:C").Interior.ColorIndex = xlNone
End If
Call Clignot
End Sub
Private Sub Worksheet_Deactivate()
Call ArretClignot
End Sub
En el ThisWorkbook, estos dos códigos: uno para detener el parpadeo al cerrar el libro y otro para seleccionar la hoja llamada "Feuil1" (a adaptar) al abrir y por lo tanto lanzar el parpadeo.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Call ArretClignot
End Sub
Private Sub Workbook_Open()
Sheets("Feuil1").Select
Call Clignot
End Sub
En un módulo, pega estos dos códigos: uno que controle el parpadeo y otro para detenerlo.
Option Explicit
Dim BlinkTime As Date
Dim c, x As Range
Public Sub Clignot()
On Error Resume Next
For Each c In Sheets("Feuil1").Range("A2:A150").Cells 'Zona del parpadeo
If c.Offset(0, 2).Interior.ColorIndex = -4142 Then
If c.Value <> "" And c.Offset(0, 2) = "" And c.Value + 15 <= Date Then
c.Offset(0, 2).Interior.ColorIndex = 3 'Rojo
Else
c.Offset(0, 2).Interior.ColorIndex = 0 'Blanco (actualmente 0 a revisar)
End If
Else
c.Offset(0, 2).Interior.ColorIndex = 0
End If
Next c
BlinkTime = Now() + TimeValue("00:00:01") 'tiempo del parpadeo
Application.OnTime BlinkTime, "Clignot"
End Sub
Sub ArretClignot()
On Error Resume Next
Application.OnTime BlinkTime, "Clignot", , False
Sheets("Feuil1").Range("F2:F19,J2:J19").Interior.ColorIndex = xlNone
End Sub
parametrando los códigos así, todo botón es innecesario, y si lo deseas, es posible hacer parpadear las celdas A, B y C indicadas.
A+
Mike-31
Una época de fracaso es un momento soñado para sembrar las semillas del saber. -
Hola,
No hay ninguna fórmula para hacer parpadear una celda o el valor contenido en una celda; la única solución es VBA.
Al finalizar tu solicitud "Ten cuidado, soy nulo en macros, ¡estos son mis primeros pasos!"
lo mejor sería publicar tu archivo para que pongamos el código encima
Para adjuntar tu archivo con este enlace
https://www.cjoint.com/
--
Nos vemos
Mike-31
Un periodo de fracaso es un momento soñado para sembrar las semillas del saber. -
Hola,
también podrías pasar por el formato condicional, esta forma de hacer que la celda no parpadee, pero puedes hacer que el texto o el fondo de la celda se muestre en un color de tu elección.
Gracias
--
Todo problema tiene una solución... solo hay que ser perseverante. -
Buenas noches,
Preferiría tener una celda parpadeante porque es más visible cuando no mantienes el ojo en tu hoja de cálculo de Excel en todo momento.
Gracias por tu respuesta. -
Hola,
Para escribir un código VBA hay que ser preciso; si se te pide un ejemplo de archivo, es principalmente para ahorrarnos tiempo y adaptar un código a la estructura del archivo.
Tu archivo tarda en llegar, así que esta noche me voy, mañana amanecerá.
--
A+
Mike-31
Un periodo de fracaso es un momento soñado para sembrar las semillas del conocimiento.-
Lo siento por esta respuesta tardía!
Aquí está el archivo adjunto.
Son las celdas en gris las que me gustaría que aparecieran parpadeando (en rojo si es posible) cuando la fecha haya pasado
Gracias por tu ayuda
https://www.cjoint.com/?0KbmdmLa36w
-
-
Hola,
En tu solicitud querías hacer parpadear una celda en B cuya fecha tenía 10 días más que la fecha en A. En tu archivo adjunto las fechas en F y J solo tienen un día más, y ¿el parpadeo depende de la fecha en F y J con respecto a hoy, es decir, si la fecha en estas dos columnas es la de hoy la celda parpadea o incluso hoy y anterior? En el ejemplo, el parpadeo está ligado a hoy.
aquí tienes el enlace: https://www.cjoint.com/?BKbqkzCCUN8
A+
Mike-31
Una época de fracaso es un momento soñado para sembrar las semillas del saber. -
Buenas noches,
Cuando hice mi pregunta, mi archivo aún no estaba creado; solo era un ejemplo que deseaba reproducir a mi conveniencia.
Por eso hoy por la tarde creé este inicio de archivo para poder enviártelo.
En realidad, quiero que las celdas de las columnas F y J parpadeen cuando se alcance la fecha y que sigan parpadeando aunque la fecha haya pasado.
En lo ideal, debería poder cancelar el parpadeo pulsando un botón u otra cosa (por ejemplo).
Gracias por tu ayuda. -
Re,
Así
https://www.cjoint.com/?BKbvtrPFHip
--
A+
Mike-31
Un periodo de fracaso es un momento soñado para sembrar las semillas del saber. -
Super así!
Pero uno por cada línea, para borrar cada línea en cuanto termine. -
Hola,
¿qué quieres decir con
Pero una para cada línea, para borrar cada línea en cuanto termine
--
A+
Mike-31
Un periodo de fracaso es un momento soñado para sembrar las semillas del saber. -
Concentrémonos en una fecha parpadeante en cuanto se supere
El resto no tiene importancia
Gracias -
Hola,
Entonces, el archivo ¿está bien, verdad?
--
Nos vemos
Mike-31
Un período de fracaso es un momento perfecto para sembrar las semillas del conocimiento. -
Genial,
Funciona como quería.
No había notado antes el parpadeo porque las macros estaban desactivadas.
Lo siento y de nuevo gracias. -
Hola,
Esta macro es muy interesante
¿existe alguna mejora para que el parpadeo se detenga en función de una fecha de intervención en la misma fila pero en una celda distinta?
ejemplo con el mismo archivo que mencionamos anteriormente, si colocamos una fecha en la celda fecha de intervención prevista. el parpadeo se detiene únicamente en la fila correspondiente
Gracias de antemano
Cédric -
Gracias por esta respuesta rápida.
de hecho, partí del archivo que se encuentra en la solicitud de "EDGC" arriba.
él quería hacer parpadear las celdas de las columnas F y J en función de la fecha del día y de un valor dado.
busco hacer que el parpadeo en las celdas se detenga cuando introduzco un valor (fecha) en una de las columnas siguientes
Ejemplo para este archivo, el parpadeo se detiene si introduzco un valor (fecha) en la columna M.
para mi aplicación personal, adapté la macro a otro archivo, pero no encuentro la solución.
mi archivo incluye una fecha de envío de un artículo en reparación en una "celda".
más de 15 días sin presupuesto hace que una celda parpadee en rojo.
tan pronto como recibo el presupuesto, introduzco la fecha de recepción y la celda deja de parpadear.
¿es viable?
Gracias de antemano -
entonces olvidamos el archivo anterior.....
en la columna A introduzco la fecha de envío.
en la columna C mi fecha de recepción de la cotización.
A partir del momento en que he introducido una fecha de envío en A
y respecto a la fecha actual, hayan pasado 15 días sin recepción de la cotización, mi columna C empieza a parpadear hasta que introduzca una fecha en la columna que parpadea, es decir, en "C"
¿vale para 150 filas de Excel?
Gracias de antemano
Cédric -
Gracias,
He probado un poco en todos los sentidos para ver si todo funciona. Esta macro funciona bien.
La fecha de envío se empieza a parpadear una vez que hemos superado 15 días.
y se detiene cuando introducimos una fecha en la columna C.
algunos problemas durante las entradas complementarias, pero nada grave.
pero abuso un poco en realidad me gustaría que fuera la celda C y no la A
fecha de "recepción de presupuesto" la que parpadee mientras no introducimos una fecha en C.
mantenemos todo, solo que el parpadeo se haga en la columna C.
............. A.......................................B............................................C
Fecha de envío en reparación...... reparador......................fecha de recepción del presupuesto
01/11/2013............................... rep 1
15/11/2013;...............................rep12
................................................. rep16
..................................................rep 9
Gracias
Cédric -
Hola,
Gracias, funciona muy bien,
Me llevó un poco responder porque quería entender qué estaba haciendo.
Todo no está aún claro para mí, pero logré hacerlo funcionar en mi archivo adaptando los códigos.
otra vez muchas gracias, voy a profundizar esto
Cédric