Botón oculto/activo según valor de celda

Tengo en una "PLANILLA MATRIZ" un botón en excel creado con "Controles de formulario" al cuál le grabe una macro que me lleva a la "Hoja 1" y tengo otro botón creado de la misma manera que me lleva a la "Hoja 2", estás hojas pueden estar o no activas. Lo que quiero lograr es que si en la celda AV15 aparece el número "1" me habilite el "botón hoja 1", si en la celda AV16 aparece el "2" haga visible el "botón hoja 2" y si estás celdas están "" que esos botones estén ocultos.

1 Respuesta

Respuesta
2

Te anexo la macro para que la pongas en los eventos de la hoja "PLANILLA MATRIZ".

Private Sub Worksheet_Change(ByVal Target As Range)
'Por.Dante Amor
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("AV15")) Is Nothing Then
        With Sheets("Hoja1").Shapes("Botón 1")
            Select Case Target
                Case 1
                    .Visible = True
                Case ""
                    .Visible = False
            End Select
        End With
    End If
    '
    If Not Intersect(Target, Range("AV16")) Is Nothing Then
        With Sheets("Hoja2").Shapes("Botón 2")
            Select Case Target
                Case 2
                    .Visible = True
                Case ""
                    .Visible = False
            End Select
        End With
    End If
End Sub

Cambia en la macro "Hoja1", "Hoja2", por los nombres de tus hojas que tienen los botones.

Cambia en la macro "Botón 1", "Botón 2", por los nombres de los botones. Para ver el nombre del botón, selecciona el botón y revisa el nombre en el cuadro de nombres:


Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja "PLANILLA MATRIZ")
  4. Del lado derecho copia la macro

Dante,

Creo que no me expliqué bien ya que la macro no funciona...

Yo tengo en la celda H10 la fórmula (H9/H8) que da un resultado entre 1 y 8.

Lo que me gustaría es que dependiendo del resultado de esa celda haga aparecer los diferentes botones, es decir si el resultado es 1 aparece el botón que me lleva a la hoja 1, si el resultado es 3 aparece el botón que me lleva a la hoja 1, el que me lleva a la hoja 2 y el que lo hace a la hoja 3.

No sé si me expliqué mejor.

Muchas gracias

No entiendo del todo.

Las macros son sensibles a nombres de hojas y celdas.

En la pregunta inicial pusiste la celda AV15

La macro dice esto:

If Not Intersect(Target, Range("AV15")) Is Nothing Then

Si ahora quieres que funcione con la celda H10 , pues la macro no va a funcionar.

Es difícil suponer todo el ambiente que tienes en tu hoja, ya que no la estoy viendo, si tienes una fórmula o una celda vacía, simplemente no lo sé, solamente me baso en lo que escribiste en la pregunta original.


Para comprender mejor lo que quieres, mejor envíame tu archivo y me dices en cuáles celdas quieres trabajar, todo explicado con colores y comentarios.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Gaston Añino” y el título de esta pregunta.

H o l a:

Te anexo la macro actualizada

Private Sub Worksheet_Calculate()
'Por.Dante Amor
    CommandButton1.Visible = False
    CommandButton2.Visible = False
    CommandButton3.Visible = False
    CommandButton4.Visible = False
    CommandButton5.Visible = False
    CommandButton6.Visible = False
    CommandButton7.Visible = False
    CommandButton8.Visible = False
    Select Case Int([H10])
        Case 1: CommandButton1.Visible = True
        Case 2: CommandButton2.Visible = True
        Case 3: CommandButton3.Visible = True
        Case 4: CommandButton4.Visible = True
        Case 5: CommandButton5.Visible = True
        Case 6: CommandButton6.Visible = True
        Case 7: CommandButton7.Visible = True
        Case 8: CommandButton8.Visible = True
    End Select
End Sub

Dante,

en la macro se habilita uno u otro botón, yo necesito que si son 3 ensayos me habilite el botón 1, 2 y 3, no solo el 3.

¿Cómo puedo hacerlo?

H o l a:

Entiendo que requieres que la macro realice más cosas, pero esto es lo que pusiste en tu solicitud:

"Lo que quiero lograr es que si en la celda AV15 aparece el número "1" me habilite el "botón hoja 1", si en la celda AV16 aparece el "2" haga visible el "botón hoja 2""

Con gusto te ayudo con todas tus peticiones, pero vamos avanzando una por una. La macro ya hace lo que pediste, de hecho la macro hace más, ya que tuve que cambiar la celda, el evento de la hoja y los nombres de los botones.

Valora la respuesta y crea una nueva pregunta para cada petición nueva.

S a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas