Ocultar botón de opción de formulario según valor en Excel

Estoy empezando a usar excel así que no tengo mucho conocimiento sobre lo que es programación de macros.

Mi inquietud es que quiero que dos botones de formulario aparezcan o desaparezcan según el valor de una celda

Por ejemplo, si una celda tiene un valor > 0,5 los dos botones deben desaparecer. En cambio si el valor de la misma celda es < 0,5 tienen que aparecer visibles.

1 Respuesta

Respuesta

Para estar empezando, has empezado con algo un poco enredado.

¿Primero deberías decir como piensas ejecutar eso? O mas bien, como se va a alterar el valor en la celda.

Si el valor se altera a través de OTRA macro dentro del mismo formulario, no hay mucha ciencia, pero si lo quieres cambiar manualmente entrando en la celda mientras el formulario esta en ejecución, habría que hacer algo que casi nunca se hace, que es poner el formulario como Modal y el código estaría en el modulo de la hoja, no del formulario.

¿Asi?: Video demo

¿O cómo tienes pensado ejecutar esto?

Hola Andy, esta celda se cambia mediante una fórmula, no tengo asignado ningún macro todavía

Si esa fórmula me arroja un resultado mayor a tal, quiero que desaparezcan los botones, y a la inversa

¿Se entiende?

Si yo te entiendo, lo que no sé es en que momento ocurre la aparición o desaparición.

A ver te pondré un escenario de ejemplo y tu me dices si es así:

Abres el formulario, y dependiendo de lo que hay en la celda en el momento en que se abre el formulario, los botones estarán visibles o no.

O el otro escenario es:

Una vez ya abierto el formulario, el valor de la celda puede cambiar mientras el formulario esta abierto, y en tiempo real frente a tus ojos los botones desaparecerán y/o aparecerán.

Cual de esos se parece más a lo que quieres lograr. ¿O ambos?

Seria el segundo caso, ya que el valor de esta celda puede cambiar varias veces pero seria imposible estimarlas.

Este valor cambiaría a partir de que se empieza a llenar otras casillas y estas casillas pueden cambiar varias veces por lo que cambia el resultado general y, también, si se ve o no se ven los botones

Vale, supongo que las casillas van cambiando valores en diferentes celdas a medida que se escribe en ellas, y esas celdas a su vez van alterando la fórmula que contiene el resultado final.

En ese caso, lo más conveniente es ejecutar un código en el modulo de la hoja que vaya chequeando cada vez que la fórmula hace un calculo. Algo así:

Private Sub Worksheet_Calculate()
Dim rCell As Range
Set rCell = Range("A1")
    If Not Application.Intersect(rCell, rCell) Is Nothing Then
        If rCell.Value > 0.5 Then
            UserForm1.CommandButton1.Visible = False
            UserForm1.CommandButton2.Visible = False
        Else
            UserForm1.CommandButton1.Visible = True
            UserForm1.CommandButton2.Visible = True
        End If
    End If
End Sub

Y funciona asi: video demo

En el código uso A1 como la celda que contiene la fórmula, debes editarlo.

Andy

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas