Que código debo usar para que un LISTBOX no muestre la misma fila duplicada cuando realizo búsqueda desde TEXTBOX

Tengo un FORMULARIO con un TEXTBOX de búsqueda y un LISTBOX que carga los valores
de 6 columnas de una hoja de excel. Las columnas son:
Código, documento, nombre, teléfono, dirección y barrio.
El problema es que el LISTBOX muestra la misma fila mas de una vez, si encuentra el mismo criterio de búsqueda en mas de una columna. Ejemplo: Si pongo el numero 1y la columnas: Código, Cedula, y Teléfono contienen este numero, entonces el listbox muestra tres veces la misma fila, una por cada vez que encuentra el dato en una columna.
Esto es lógico, pues estoy usando un solo TEXTBOX para buscar cualquier dato en cualquier columna.
Lo que quiero es evitar que esto suceda y pienso que se puede hacer
usando un código que evite que el LISTBOX repita el dato CODIGO.
He realizado muchas consultas pero siempre me han dado respuestas
para que el LISTBOX no cargue datos duplicados desde la hoja de excel,
pero este no es el caso, pues en la hoja de excel el la COLUMNA código no contiene datos duplicados.
Es el LISTBOX que los repite cada vez que encuentra el valor en cada una de las columnas.

Respuesta
1

Visita:

Cursos de Excel y Macros

Por Dante Amor

----- --

Revisa el siguiente vídeo, ahí encontrarás el código para cargar solamente un registro. No importa si el dato existe en varias columnas en la misma fila, en el listbox solamente se carga una vez.

Curso de macros. Cargar datos filtrados en un listbox. vba matrices. - YouTube

Curso de macros. Cargar datos en un ListBox con formato. - YouTube

----- --

Recomendaciones:

curso de macros. Consejos para empezar a programar. - YouTube

----- --

Lo nuevo:

Tabla dinámica diferencia entre columnas - YouTube

----- --

Sal u dos Dante Amor

1 respuesta más de otro experto

Respuesta
1

Si estás realizando una búsqueda y mostrando los resultados en un ListBox, debes agregar una instrucción, antes de cada búsqueda, para que limpie la lista de valores anteriores.

Y esa instrucción dependerá de cómo llenas la lista. Si es pasando fila x fila, debes anteponer esta línea, ajustando el nombre de tu control:

             ListBox1.Clear 

Si la lista se llena con la propiedad RowSource, debes anteponer la instrucción:

              ListBox1.RowSource = ""

* Te invito a mirar algunos videos de mi canal con ejemplos de cómo rellenar listas:

N° 35: Filtro Avanzado

N° 36: Filtro Dinámico

N° 39: Uso de RowSource

Sdos.

Elsa

https://www.youtube.com/@ElsaMatilde 

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas