Error macro al cambiar libro excel

Buenos días,
Como puedo hacer para que no se me detenga esta macro al cambiar de libro de excel?
Sub ActualizarHora1() 'Poner la hora en una celda Worksheets
("Hoja1").Range("R12").Value = Now - Worksheets("Hoja1").Range("P12").Value
'Lanzar el siguiente evento 1 segundo después
dtHoraSiguiente = Now + (1 / 86400) Application.OnTime dtHoraSiguiente, "ActualizarHora1"
End Sub

Muchas gracias

Respuesta
1

Déjame ver si entendí: ¿Lo qué necesitas es copiar la macro en otro libro?... ¿Y una vez que lo haces es cuando se detiene la macro?... si es así, lo que tienes que revisar es que el nombre de la Hoja1 sea el mismo en los dos libros, o bien en el libro donde copias la macro cambiar el nombre de Hoja1 por el nombre de la hoja donde quieres que se ejecute la macro.

Si no es ese el caso, escríbeme nuevamente y lo vemos otra posible solución.

Lo siento, no me he explicado bien, es una macro que hace correr un cronometro, esta parte de la macro es la que actualiza que cada segundo se actualize y funcione correctamente la macro y el cronometro, siempre cuando no me voy a otro excel va bien ya que cuando voy a otro excel, me imagino que intentara coger el valor de "R12" y "P12" de la "Hoja1" del nuevo libro abierto y al no existir se bloquea.

Lo que yo quiero es hacer otras tareas con otro documento (ej:ventas) de excel y que el cronometro siga funcionando en el otro documento de excel (cronometro).

Necesitaria una orden que dijera, haz esta macro siempre en ("cronometro") independientemente de en el documento que este yo

Muchisimas gracias,

Ignacio

Ah... ok... En ese caso es necesario especificar en el código que la macro sólo se debe ejecutar en el libro cronómetro. Para ello sólo hay que añadir WorkBooks("cronometro"). Al inicio de la primera línea, así que tu macro debe quedar más o menos así:

Sub ActualizarHora1() 'Poner la hora en una celda Worksheets

WorkBooks("cronometro").("Hoja1").Range("R12").Value = Now - Worksheets("Hoja1").Range("P12").Value

'Lanzar el siguiente evento 1 segundo después

dtHoraSiguiente = Now + (1 / 86400) Application.OnTime dtHoraSiguiente, "ActualizarHora1"

End Sub

Eso debe resolver el problema.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas