No se me ejecuta una macro

2 envíos / 0 nuevos
Último envío
santiqe
Imagen de santiqe
Offline
última acción: Hace 5 años 11 meses
alta: 20/07/2017 - 06:44
Puntos: 55
No se me ejecuta una macro

Buenos días:

Dentro de un mismo libro tengo varias hojas. En la primera del libro llamada Datos tengo esta macro: 

Sub esconder()

    If Sheets("DATOS").[B60] = "NO" Then

        Rows("61:92").EntireRow.Hidden = True

    Else

        Rows("61:92").EntireRow.Hidden = False

    End If

     If Sheets("DATOS").[B93] = "NO" Then

        Rows("94:124").EntireRow.Hidden = True

    Else

        Rows("94:124").EntireRow.Hidden = False

    End If

     If Sheets("DATOS").[B125] = "NO" Then

        Rows("126:161").EntireRow.Hidden = True

    Else

        Rows("126:161").EntireRow.Hidden = False

    End If   

End Sub

Y efectivamente cuando en la celda B60 pone NO se esconden las filar y cuando pone si, aparecen.

En el mismo libro tengo una página llamada VALORACION. Tengo la siguiente macro en este libro:

ub ESCONDEROFERTA()

    If Sheets("VALORACION").[D54] = "NO" Then

        Rows("55:77").EntireRow.Hidden = True

    Else

        Rows("55:77").EntireRow.Hidden = False

    End If

    

End Sub

Pero en este caso cuando pone No en la celda asignada co ejecuta la macro. Si entro en la macro y le doy a ejecutar, lo hace, pero no lo hace automaticamente como en la primera macro que os he enseñado.

 

Ma sabríais explicar porque? No lo entiendo.

 

Muchas gracias por vuestra ayuda.

Cron
Imagen de Cron
Offline
última acción: Hace 8 meses 1 día
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntos
alta: 23/06/2010 - 12:30
Puntos: 12735
Para que una macro se ejecute

Para que una macro se ejecute, se debe lanzar manualmente, desde otra macro, o capturar un evento.

Por ejemplo, cuando asocias una macro al click en un botón, estás haciendo que cuando se dé el evento "click" en el botón se ejecute esa macro que has asociado.

Si lo que quieres es que al cambiar el valor en tus celdas se ejecute la macro, entonces deberás lanzarla desde el evento onChange de tu hoja de cálculo. Dentro de este evento es habitual poner condicionales que comprueben que el objeto target (que es la celda que ha cambiado, la que dispara el evento) es efectivamente la celda o celdas que tú quieres que lancen tu macro. Si se cumple, lanza desde ahí esconderoferta.

 

Espero haber sido claro.

Un saludo