Pequeña macro para que calcule siempre las fórmulas del libro al cambiar de hoja

Tengo un libro de excel basado en fórmulas según el nombre de cada hoja, concretamente fórmulas de fechas que usan el nombre del mes que tiene la hoja correspondiente.

Por causas que desconozco, cuando duplico una hoja y la renombro con el mes elegido, las fórmulas funcionan perfectamente pero al cambiar a otro mes (otra hoja), se siguen manteniendo en esa hoja los mismos resultados de las fórmulas que los de la hoja de donde procedo. O bien, hay veces que aparecen errores en la fórmulas. Esto se corrige fácilmente dando a F9 pero es un fastidio tener que calcular manualmente cada vez que cambias de hoja y que se actualicen las fechas, porque si se te olvida, lógicamente no cuadra. He de decir que el cálculo autómatico está activado.

Quisiera el código de una macro que nada más cambiar de hoja calcule automáticamente las fórmulas.

1 respuesta

Respuesta
1

Puedes poner las siguientes líneas de código en la hoja que duplicas así cada vez que cambies de hoja al seleccionarla esta se calcula automáticamente sin que presiones F9.

Private Sub Worksheet_Activate()ActiveSheet.CalculateEnd Sub

o estas lineas de código si quieres dar el nombre de la hoja específicamente.

Private Sub Worksheet_Activate()ActiveWorkbook.Sheets("NOMBRE HOJA").CalculateEnd Sub

O si quieres decirle que solo se calcule si el nombre de la hoja es alguno en especifico si el código lo vas a usar en un Módulo sería así.

Sub Nombre_Macro()If ActiveSheet.Name = "NOMBRE HOJA ESPESIFICA" Then    ActiveSheet.CalculateEnd IfEnd Sub

Opción 1

Private Sub Worksheet_Activate()
ActiveSheet.Calculate
End Sub

Opción 2

Private Sub Worksheet_Activate()
ActiveWorkbook.Sheets("NOMBRE HOJA").Calculate
End Sub

Opción 3

Sub Nombre_Macro()
If ActiveSheet.Name = "NOMBRE HOJA ESPESIFICA" Then
ActiveSheet.Calculate
End If
End Sub

Hola Julio César, muchas gracias por tu respuesta.

La opción que me serviría, sería la opción 1, pero no funciona correctamente. Al crear una nueva hoja y renombrarla con el mes correspondiente, esa hoja si me la calcula bien pero al hacer clic en la hoja del mes anterior, siguen exactamente los mismos datos que en la anterior y hay que hacer f9 para el cálculo automático. Resumiendo, la idea sería que cada vez que hago clic en la pestaña del mes (hoja) correspondiente, se actualizaran las fórmulas de esa hoja.

Gracias por tu tiempo

Debes poner en hoja en el evento Activate las tres líneas del código de la opción 1 para que cada que selecciones alguna de las hojas esta calcula los cambios realizados.

¡Gracias! 

Me puede valer, si la pongo en la primera hoja y luego esa es la que duplico para cambiar el nombre, me funciona, así que muchas gracias por la respuesta.

Un saludo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas