Click con el Mouse

Hola a todos!!!

Quisiera saber si se puede en un UserForm con varios Labels que al dar Click con el mouse me muestre (ya sea en un Label o celda de la hoja de cálculo) cuál número de Label es, debido a que tengo más de 300 Labels y en cada Label tengo que darle una función y creo que podría hacerlo en una función general de acuerdo a que Label le estoy dando el Click.

Gracias!!!

1 Respuesta

Respuesta
1

¿Está un poco difícil imaginarse una situación así... 300 label?

Para '... que al dar Click con el mouse me muestre ... cuál número de Label es...' necesitas programar cada label con una rutina de este tipo:

Private Sub Label1_Click()
MsgBox Label1.Name
End Sub

Por lo que está visto que no lo estoy entendiendo o estás errando en el desarrollo... mejor me lo aclaras un poco ... ¿por qué no identificarlos desde el Editor?

Private Sub Label1_Click()

For i = 1 To 106
Controls("Label" & i).BackColor = vbWhite
Next i
Label1.BackColor = vbYellow
Range("A1") = 1
End Sub

Este es el modelo de lo que quiero hacer, sería que cuando dé click sobre cualquier Label se ponga color amarillo y los demás en blanco y de acuerdo al número de Label me lo ponga en la celda A1.

y gracias por su atención!

La rutina que quisiera hacer es una sola para todos los Labels, por eso creo que sería algo como que al dar click con el mouse o puntero sobre algún Label me mostrara si es Label1 o Label2...

Claro, pero justamente '... al dar click con el mouse o puntero sobre algún Label me mostrara si es Label1 o Label2...' significa que tendrás que colocar esa única rutina en TODOS los label. O por lo menos algunas líneas para llamar a una rutina única, algo como esto:

Public nroLabel As Integer

Private Sub Label1_Click()
nroLabel = 1
Call CambioColor
End Sub
Private Sub Label2_Click()
nroLabel = 2
Call CambioColor
End Sub

'repetir los Private Sub para los 106 Labels, y luego la rutina única:

Sub CambioColor()
For I = 1 To 4
Controls("Label" & I).BackColor = vbWhite
Next I
Controls("Label" & nroLabel).BackColor = vbYellow
Range("A1") = nroLabel
End Sub



Añade tu respuesta

Haz clic para o

Más respuestas relacionadas