No precisamente con una sola orden. Pero se puede crear una clase y poner la instrucción en la clase.
Crea una Clase llamada Clase1 y pones el siguiente código:
Public WithEvents tbxCustom1 As MSForms.ComboBox 'Custom button
'
Private Sub tbxCustom1_Change()
'Por.Dante Amor
n = Mid(tbxCustom1.Name, Len("Combo") + 1)
UserForm1.Controls("Label" & n).Visible = False
End Sub
Instrucciones para crear una clase
- Abre tu hoja de excel
- Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
- En el menú elige Insertar / Módulo de clase
- En el panel del lado derecho copia la macro
- Cambia en la clase UserForm1 por el Name de tu formulario
Ahora, en tu formulario pon el siguiente código, revisa que la primera línea:
Dim colCombo As Collection
quede hasta el principio de todo tu código:
Dim colCombo As Collection 'Collection de Combos
'
Private Sub UserForm_Initialize()
'Act.Por.Dante Amor
Dim ctlLoop As MSForms.Control
Dim clsObject As Clase1
Set colCombo = New Collection
For Each ctlLoop In Me.Controls
If TypeName(ctlLoop) = "ComboBox" Then
Set clsObject = New Clase1
Set clsObject.tbxCustom1 = ctlLoop
colCombo.Add clsObject
End If
Next ctlLoop
End Sub
Notas: Veo que en tu código los Combos se llaman "Combo1", "Combo2", etc, entonces todos los combos deberán conservar el nombre "Combo", al igual todos los Label deberán conservar su nombre inicial "Label", de esa forma podemos saber que para el Combo3 le corresponde el Label3.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
:) interesante - Adriel Ortiz Mangia