Hola ! podran ayudarme con este problema....no se bien porque la busqueda a traves de mi fromunalio solo capta hasta la fila 739 y no mas de ahi.
Explico, genere una tabla1, que contiene todos los elementos de consulta, carga y edicion a traves de un formulario. la consulta es por medio de un listbox que busca por like y una vez seleccionado el objeto buscado me trae sobre el formulario todos los datos.
to que he notado que pasando la fila 739 ya no me busca mas los registros... como puedo hacer que funcione?
muchas gracias
Kadima.
Adjunto | Tamaño |
---|---|
prueba.xlsm | 312.99 KB |
Tu problema es común, lo he visto más veces, y me ha ocurrido a mí también.
Estás llenando los datos del listbox con un bucle que va desde la fila 6 a la fila que sale de contar todo lo que hay en la columna 1. El problema es que tienes tres celdas vacías arriba.
Imaginemos que tuvieras 100 filas con datos. Como la tabla empieza en la fila 4, terminará 100 filas más abajo, que es en la fila 103. Si tú cuentas todo lo que hay en la columna A, te dará 100. Y si utilizas esto como límite, tu bucle irá hasta la fila 100 y te faltarán los tres últimos.
¿Cómo lo resolvemos?
Lo más sencillo, ya que tienes montado todo, es cambiando la línea en la que asignas 'filas'. Podrías hacer:
Filas = Range("a4").CurrentRegion.Rows.Count + 3
Siendo 3 el número de filas vacías que hay encima de tu tabla.
¿Cómo lo haría yo?
Declararía una variable range e iría recorriendo con ella todo el rango de la tabla. En nuestro ejemplo se llama "tabla1", aunque no sé cómo se llama en tu archivo bueno. Tendrías que mirarlo. Haría algo así:
For Each celda In ActiveSheet.ListObjects("Tabla1").ListColumns("NODO").DataBodyRange
If LCase(celda.Value) Like "*" & LCase(Me.TextBox1.Value) & "*" Then
Me.ListBox1.AddItem celda
For j = 1 To 20
Me.ListBox1.List(Me.ListBox1.ListCount - 1, j) = celda.Offset(0, j)
Next
End If
Next
Un saludo