Pintar Label de un Userform según condición (Excel)

Tengo un formulario con 75 label, cada uno tiene un nombre diferente (Caption). Tengo un botón que me devuelve uno de esos nombres al azar. Si el nombre que dicho botón me devuelve es, por ejemplo, B10, entonces solo el Label que tiene ese nombre se debe pintar de color amarillo.

2 Respuestas

Respuesta
1

Te dejo la macro del bucle que recorrerá todos los label hasta encontrar ese caption y colocarle el color.

Private Sub CommandButton1_Click()
dato = "B10"
For Each ct In Me.Controls
    If TypeName(ct) = "Label" Then
        If ct.Caption = dato Then ct.BackColor = RGB(255, 255, 0): Exit For
    End If
Next ct
End Sub

En tu botón colocarás solo la parte del bucle, ajustando el nombre de la variable (dato).

En este caso se recorren todos los controles del Userform (Me. Controls) pero bien podrías limitar la búsqueda a solo el Frame que los contiene si es que tienes más de un cuadro. Por ejemplo:

For Each ct in Frame2.Controls

Sdos y no olvides valorar la respuesta.

Elsa

http://aplicaexcel.com/manuales.htm

Respuesta
1

Solamente otra manera de buscar el label y de poner el color:

Private Sub CommandButton1_Click()
  Dim ct As Control, dato As String
  dato = "B10"
  For Each ct In Controls
    If TypeOf ct Is MSForms.Label And ct.Caption = dato Then ct.BackColor = &H80FF80
  Next
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas