
ListBox multiselect activar/desactivar
Publicado por Guille (38 intervenciones) el 18/10/2021 13:17:23
Hola a tod@s!
Tengo una duda con un ListBox. Cuando selecciono un nombre de la lista, este me lo pone en un TextBox que aparece en un lado del Userform, si selecciono otro nombre me aparece otro TextBox debajo con el segundo nombre.
Pero si deselecciono cualquiera de los dos no consigo el codigo para que me el textbox desaparezca.
Os dejo el codigo y una imagen.
Espero haberme explicado y muchas gracias de antemano.
guille
************** CODIGO
Private Sub LstBx_SPP_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Falta el control de errores para que no se puedan seleccionar mas de 3 especies
Dim cont1, cont2, nFrame As Integer
Dim dens As Double
cont1 = 0
cont2 = 3
nFrame = UserForm2.Frm_DENSIDAD.Controls.Count
'dens = 100
For selSPP = LBound(Me.LstBx_SPP.List) To UBound(Me.LstBx_SPP.List)
If Me.LstBx_SPP.Selected(selSPP) = True Then
contSP = contSP + 1
ourSPP = Me.LstBx_SPP.List(selSPP)
Dim ctrl As Integer
For ctrl = 0 To nFrame - 4
If TypeOf UserForm2.Frm_DENSIDAD.Controls(ctrl) Is MSForms.Label Then
With UserForm2.Frm_DENSIDAD.Object(cont1)
.Caption = ourSPP
End With
End If
If TypeOf UserForm2.Frm_DENSIDAD.Controls(ctrl + 3) Is MSForms.TextBox Then
With UserForm2.Frm_DENSIDAD.Object(cont2)
.Visible = True
.Value = 0
End With
End If
Next ctrl
cont1 = cont1 + 1
cont2 = cont2 + 1
'dens = Round(100 / (contSP), 1)
Else
'si hago uncheck
End If
Next selSPP
End Sub

Tengo una duda con un ListBox. Cuando selecciono un nombre de la lista, este me lo pone en un TextBox que aparece en un lado del Userform, si selecciono otro nombre me aparece otro TextBox debajo con el segundo nombre.
Pero si deselecciono cualquiera de los dos no consigo el codigo para que me el textbox desaparezca.
Os dejo el codigo y una imagen.
Espero haberme explicado y muchas gracias de antemano.
guille
************** CODIGO
Private Sub LstBx_SPP_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
'Falta el control de errores para que no se puedan seleccionar mas de 3 especies
Dim cont1, cont2, nFrame As Integer
Dim dens As Double
cont1 = 0
cont2 = 3
nFrame = UserForm2.Frm_DENSIDAD.Controls.Count
'dens = 100
For selSPP = LBound(Me.LstBx_SPP.List) To UBound(Me.LstBx_SPP.List)
If Me.LstBx_SPP.Selected(selSPP) = True Then
contSP = contSP + 1
ourSPP = Me.LstBx_SPP.List(selSPP)
Dim ctrl As Integer
For ctrl = 0 To nFrame - 4
If TypeOf UserForm2.Frm_DENSIDAD.Controls(ctrl) Is MSForms.Label Then
With UserForm2.Frm_DENSIDAD.Object(cont1)
.Caption = ourSPP
End With
End If
If TypeOf UserForm2.Frm_DENSIDAD.Controls(ctrl + 3) Is MSForms.TextBox Then
With UserForm2.Frm_DENSIDAD.Object(cont2)
.Visible = True
.Value = 0
End With
End If
Next ctrl
cont1 = cont1 + 1
cont2 = cont2 + 1
'dens = Round(100 / (contSP), 1)
Else
'si hago uncheck
End If
Next selSPP
End Sub
Valora esta pregunta


0