¿Cómo poner limite de Datos a un Listbox?

Tengo un listbox donde solo quiero que me acepte solo 20 Filas ya que a donde el lleva eso datos no hay más de 20 filas.

3 respuestas

Respuesta
1

Hol.a

No es muy clara tu necesidad ya que si solo quieres 20 filas, basta que la llenar el "ListBox" le agregues lo que deseas o ¿qué sucede o tienes en realidad?

Abraham Valencia

  Tengo es Codigo
If list_TareasSo.ListCount = 20 Then
MsgBox " A llegado al Maximo de Tareas"
End If

Este codigo hace que al llega a la fila 20 me salga ese mensaje pero yo quiero que cuando llegue a la fila 20 no me deje cargar mas datos en mi listbox 

Siguen siendo insuficientes los datos que das pero por si acaso prueba con un "Exit Sub" después del "MsgBox" y antes del "End If"

Abraham Valencia

Le explico con más detalles tengo un listbox que se le agrega información cada que yo le doy al botón agregar datos, lo que quiero que al yo agregar los 20 datos no me deje agregar más datos. ¿Ya entiende? Lo único que hace mi código es enviar el mensaje pero aun así sigue agregando datos a mi listbox y no quiero que pase eso

¿Probaste ya lo del "Exit Sub? OJO, tienes que colocarlo en donde te dije y estoy asumiendo que el "If" lo colocas en algún momento del llenado ya que si está al final, no te será útil porque además no mencionas como llenas el "ListBox". Si es con "RowSource", y sin variables, tampoco te será útil.

Abraham Valencia

Si ya probe con exit sub y el listbox lo lleno con un RowSource

Con este Código lleno mi listbox

Dim items As Integer
Dim C As Integer
Dim i&
Dim CAMBIO As Boolean
Dim z As Byte
Dim y As Byte

On Error Resume Next

Worksheets("TAREAS").Activate
items = Range("Tabla11").CurrentRegion.Rows.Count

For C = 5 To items
For i = 2 To items
Me.list_TareasSo.Locked = False
Me.list_TareasSo.BackColor = &H80000005
Me.list_HerramientasSo.Locked = False
Me.list_HerramientasSo.BackColor = &H80000005

If LCase(Cells(i, C).Value) Like "*" & LCase(txt_DescripcionSo.Value) & "*" Then
Me.list_TareasSo.AddItem Cells(i, 4)
Me.list_HerramientasSo.AddItem Cells(i, 6)

Hol.a

Pues respondiste que llenas con "RowSource" pero ahí veo que estás usando "AddItem", además no colocas todo lo que tienes.

Bueno, igual la sugerencia sigue siendo que coloques el "if" con el agregado del "Exit Sub" en la parte del bucle en que se llena cada fila, es decir, antes del "next" el "if" revisa la propiedad "ListCount", tal cual tienes ahí, y si es 20, sale el "msgBox" y luego el "Exit Sub". No está nada difícil pero tú eres la que tiene al frente el código completo, solo agrega, como ya dije, eso antes del "next" posterior al llenado de cada fila.

Abraham Valencia

Si disculpa después fue que me di cuenta que usaba era un AddItem en fin el exit Sub no me funciona por eso que estoy preguntando acá

Pues no solo es colocar el "Exti Sub", trata de seguir las indicaciones dadas, todas.

Abraham Valencia

Respuesta
1

[Hola 

A tu código agrega exit sub 

ejemplo

    If list_TareasSo.ListCount = 20 Then
        MsgBox "A llegado al Maximo de Tareas"
        Exit Sub
    End If

Gracias pero ya intente ponerle exit sub y no me funciona igue entrando datos al listbox y quiero que eso no suceda después de a ver puesto los 20 datos

Necesito ver la macro de botón con lo que pasas los datos al listbox

Private Sub CommandButton1_Click()
' Establezco la condición
    If list_TareasSo.ListCount = 20 Then
        MsgBox "A llegado al Maximo de Tareas"
        Exit Sub
    End If
'Paso datos del ListBox1 al list_TareasSo
    list_TareasSo.AddItem ListBox1.ListIndex + 1
End Sub

Esta macro hice pruebas y me funciona normal pero Ojo la condición debe estar antes

Con este Código lleno mi listbox

Dim items As Integer
Dim C As Integer
Dim i&
Dim CAMBIO As Boolean
Dim z As Byte
Dim y As Byte

On Error Resume Next

Worksheets("TAREAS").Activate
items = Range("Tabla11").CurrentRegion.Rows.Count

For C = 5 To items
For i = 2 To items
Me.list_TareasSo.Locked = False
Me.list_TareasSo.BackColor = &H80000005
Me.list_HerramientasSo.Locked = False
Me.list_HerramientasSo.BackColor = &H80000005

If LCase(Cells(i, C).Value) Like "*" & LCase(txt_DescripcionSo.Value) & "*" Then
Me.list_TareasSo.AddItem Cells(i, 4)
Me.list_HerramientasSo.AddItem Cells(i, 6)

Y EL EXIT SUB no me sirve

Envíame mejor tu archivo [email protected]

Pero no me llegó el archivo

_Hola

Hay problemas con la web me parece te envié por email

Respuesta

Puedes contar las filas mira este ejemplo

https://youtu.be/0UuR_zRQCB4

https://youtu.be/smL4A-aRjCM

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas