Saltar al contenido

casilla verificación triple estado

publicado

Buen día foreros;

Adjunto una macro que contiene un formulario y una casilla de verificación con triple estado.

Si pulso sobre ella arroja un mensaje en su etiqueta con la propiedad .Caption

Me funciona con .Value= True y .Value="False" 

Lo que no se configurar es que cuando no sea ninguno de los dos primeros casos la propiedad .Caption sea igual a "Todos".

-Esto es un recorte de un formulario y este check me permite según su estado el filtro solo las facturas pagadas, pendientes y "todas".

-Igual no es viable hacerlo, si es así agradecería la confirmación.

Un saludo y buen día.

Private Sub CheckBox1_Click()
If CheckBox1.Value = True Then
CheckBox1.Caption = "Pagado"
CheckBox1.ForeColor = vbBlue
ElseIf CheckBox1.Value = False Then
CheckBox1.Caption = "Pendiente"
CheckBox1.ForeColor = vbRed
Else
CheckBox1.Caption = "Todos"
End If
End Sub

Private Sub UserForm_Activate()
CheckBox1.Value = True
CheckBox1.Caption = "Pagado"
CheckBox1.ForeColor = vbBlue
End Sub

 

TripleEstado.xlsm

Featured Replies

publicado

El problema es que el tercer estado no dispara el evento click, por lo que debes usar el evento change.

Private Sub CheckBox1_Change()
If CheckBox1.Value = True Then
   CheckBox1.Caption = "Pagado"
   CheckBox1.ForeColor = vbBlue
ElseIf CheckBox1.Value = False Then
   CheckBox1.Caption = "Pendiente"
   CheckBox1.ForeColor = vbRed
Else
   CheckBox1.Caption = "Todos"
End If
End Sub

 

publicado
  • Autor

Hola Antoni,  

Gracias por el apunte. 

Ya me parecía extraño que teniendo las tres opciones no se pudiese configurar.

Un abrazo  maestro?

Que teñas bo día  a pesar da ?

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.