Jump to content
Sign in to follow this  
MisterHP

[SOLUCIONADO]Filtro automatico en listbox con busqueda de palabras

Recommended Posts

Re: Filtro automatico en listbox con busqueda de palabras

Buenas MisterHp chequeaste el archivo del post 21 en el solamente existe un userform y debes de escribir en cualquier combobox y luego presionar en el boton que este al lado comenta para ver si funciona como necesitas, si deseas eliminar los botones para quesea de forma automatica al escribir toma los codigos de cada boton y colocalos en los combox en el evento change

un saludo

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas MisterHp chequeaste el archivo del post 21 en el solamente existe un userform y debes de escribir en cualquier combobox y luego presionar en el boton que este al lado comenta para ver si funciona como necesitas, si deseas eliminar los botones para quesea de forma automatica al escribir toma los codigos de cada boton y colocalos en los combox en el evento change

un saludo

Ok ya esa parte la analice, el unico incoveniente con esta parte es que no podre escribir la palabra en el combobox ya que estos trabajaran de la manera normal como se llenan los combobox y solo permitira colocar la palabra que se filtran en el, o sea que el combobox solo permitira tener los datos que correspondan a la columna.

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

bien pues donde deseas escribir para realizar la busqueda?

un saludo

Gracias por responder, nuevamente reformulare la idea.

Suponiendo que cuando este en el combobox y no sepa cual es el codigo que voy a introducir, entonces con la opcion de que pueda ver colocando la palabra que se relaciona con el codigo pues escribiria esa palabra y ya podria ver cual es la que me conside, de ahi parti para la idea de que se habra un nuevo userform donde pueda escribir y ver cual es la que coincide y luego seleccionarla y se vaya el valor correspondiente al campo del combobox. No podria escribir la palabra en el texbox porque le texbox es dependiente del combobox y este esta bloqueado y no permite introducir palabras;

La idea es que si tal como uno de los ejemplos que me hiciste si me ubico en el combobox y luego pido mostrar el userform que tiene el listbox y busque y seleccione la palabra y de por si se sepa a cual combobox va a agregarse el codigo porque previamente ya lo habia seleccionado antes de llamar el listbox. El listbox solo seria una forma de acceso a busquedas de palabra y que su seleccion sea para acelerar cuando no se sepa cual codigo corresponde a lo que buscamos.

De todos los ejemplos me gusto el que pedi que lanzara un mensaje antes de seleccionar de la lista; pienso que si existiera una forma de que previamente sepa cual fue el combox elegido quizas introduciendo una programacion que cuando haga dos clic en el combobox llame el listbox y asi de por medio ya se sabe que ese fue el combobox q lo llamo y al que debera agregarse el codigo que corresponda en la busqueda.

Saludos,

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas revisa archivo, para realizar la llamada al listbox y textbox de busqueda se debe de dar doble click en el interior combobox

un saludo

[ATTACH]15615[/ATTACH]

Ok va bien, solo una cosa mas, veo que al seleccionar los numeros quedan alreves segun se muestran en el listobox, o sea el numero que se toma es el que aparece al derechoa lado de la palabra por lo tanto no coincidiria con el real.

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas deberias de revisar los codigos y estudiarlos para poder aprender pues si revisas en la zona donde se da la oden de carga te daras cuenta que en el listbox aparecen los siguientes datos

Orden de localización, Dato columna B , Dato columna A esto es en las siguientes lineas

With ListBox1

.ColumnCount = 3

.ColumnWidths = "20;175;60"

.AddItem ListBox1.ListCount + 1

.Column(1, ListBox1.ListCount - 1) = C.Value

.Column(2, ListBox1.ListCount - 1) = C.Offset(0, -1).Value

.Height = ListBox1.ListCount * 20

End With

AddItem ListBox1.ListCount + 1 da el orden de localización

Column(1, ListBox1.ListCount - 1) = C.Value toma el valor de la columna B

Column(2, ListBox1.ListCount - 1) = C.Offset(0, -1).Value toma el valor de la Columna C

y en la siguiente parte se determina que dato se debe de colocar en el combobox

Select Case UserForm2.Tag

Case 1: UserForm2.ComboBox1 = ListBox1.Column(2, ListBox1.ListIndex)

Case 2: UserForm2.ComboBox2 = ListBox1.Column(2, ListBox1.ListIndex)

Case 3: UserForm2.ComboBox3 = ListBox1.Column(2, ListBox1.ListIndex)

Case 4: UserForm2.ComboBox4 = ListBox1.Column(2, ListBox1.ListIndex)

End Select

que es el que se toma de la columna C

esto lo puedes colocar como desees

lo mejor es no esperar a que me metan el pez en la boca sino que aprender a pescar

un saludo

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas deberias de revisar los codigos y estudiarlos para poder aprender pues si revisas en la zona donde se da la oden de carga te daras cuenta que en el listbox aparecen los siguientes datos

Orden de localización, Dato columna B , Dato columna A esto es en las siguientes lineas

With ListBox1

.ColumnCount = 3

.ColumnWidths = "20;175;60"

.AddItem ListBox1.ListCount + 1

.Column(1, ListBox1.ListCount - 1) = C.Value

.Column(2, ListBox1.ListCount - 1) = C.Offset(0, -1).Value

.Height = ListBox1.ListCount * 20

End With

AddItem ListBox1.ListCount + 1 da el orden de localización

Column(1, ListBox1.ListCount - 1) = C.Value toma el valor de la columna B

Column(2, ListBox1.ListCount - 1) = C.Offset(0, -1).Value toma el valor de la Columna C

y en la siguiente parte se determina que dato se debe de colocar en el combobox

Select Case UserForm2.Tag

Case 1: UserForm2.ComboBox1 = ListBox1.Column(2, ListBox1.ListIndex)

Case 2: UserForm2.ComboBox2 = ListBox1.Column(2, ListBox1.ListIndex)

Case 3: UserForm2.ComboBox3 = ListBox1.Column(2, ListBox1.ListIndex)

Case 4: UserForm2.ComboBox4 = ListBox1.Column(2, ListBox1.ListIndex)

End Select

que es el que se toma de la columna C

esto lo puedes colocar como desees

lo mejor es no esperar a que me metan el pez en la boca sino que aprender a pescar

un saludo

Ok de acuerdo amigo, lo que mencione lo hice con la observacion de lo que pasaba, de todas maneras con los codigos ofrecidos tendre que programarlos a mi caso ya que tendre el problema de que ya el userform esta hecho y cuando se elige mostrar el listbox entonces eso representa un nuevo userform es decir por el tamaño y el contenido que tengo en el que veo que aparece al realizar la busqueda por lo que me afectaria esta parte; pero sin embargo creo posible adaptar toda la informacion y ejemplos vistos aqui a mi caso; lo importante es que puedo ver que se puede contar con personas con el conocimiento que tienes y dar las gracias por la ayuda que puedo recibir.

De ahi la idea de que tenia que tener dos userforms, uno para ver el listbox y otro para lo que ya tenia hecho.

Gracias,

Saludos,

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas revisa despues de colocar el dato a buscar y antes seleccionar el dato deseado se debe de colocar el cursor en userform2 en el combobox que se desee colocar el dato y luego seleccionarlo

un saludo

Hola nuevamente por aca, esta vez porque he tenido algunos problemitas para poner practica el codigo que me ayudaste, ya que en el archivo que poseo tiene una pequena diferencia en cuanto al nombre del userform, en el cual tuve que crear un userform8 para el listbox y el userform1 donde van los combox, etc..

El codigo queda de esta manera:

Private Sub ListBox1_Click()

Dim x As String

x = UserForm1.ActiveControl.Name

UserForm1.Controls(x).AddItem UserForm8.ListBox1.Column(2, UserForm8.ListBox1.ListIndex)

UserForm1.Controls(x).Value = UserForm8.ListBox1.Column(2, UserForm8.ListBox1.ListIndex)

UserForm8.Hide

End Sub

Private Sub TextBox1_Change()

Dim hj As Worksheet

Dim C As Range, FirstCell As String

Dim busque

Application.ScreenUpdating = False

busque = TextBox1.Value

If TextBox1.Value = Empty Then

ListBox1.Clear

Exit Sub

Else

ListBox1.Clear

Set C = Sheets("Hoja1").Range("B2:B" & Sheets("Hoja1").Range("B" & Rows.Count).End(xlUp).Row).Find(What:=busque, LookIn:=xlValues, LookAt:=xlPart)

If C Is Nothing Then GoTo ProximaHoja

FirstCell = C.Address

Do

With ListBox1

.ColumnCount = 3

.ColumnWidths = "20;200;200"

.AddItem ListBox1.ListCount + 1

.Column(1, ListBox1.ListCount - 1) = C.Value

.Column(2, ListBox1.ListCount - 1) = C.Offset(0, -1).Value

End With

Set C = Sheets("Hoja1").Range("B2:B" & Sheets("Hoja1").Range("B" & Rows.Count).End(xlUp).Row).FindNext©

Loop Until FirstCell = C.Address

ProximaHoja:

Set hj = Nothing

Set C = Nothing

End If

Application.ScreenUpdating = True

End Sub

Pero al realizar la seleccion desde el listbox me aparece lo siguiente:

Se ha producido el error "438" en tiempo de ejecucion: El objeto no admite esta propiedad o metodo. Todo funcionaba bien con el ejemplo, pero al aplicarlo ocurre a pesar de que los cambios realizados solo fueron en el nombre del y en cuanto al codigo varie cada cosa. Si puedes por favor darme una idea de que sucede... agradezco tu ayuda.

Gracias,

Saludos,

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

¿ Que te parece si ayudas un poco ?. Por ejemplo, indicando en que línea te da el error.

Gracias por la observacion, olvide colocar donde era el error, en esta linea es que lo marca:

UserForm1.Controls(x).AddItem UserForm8.ListBox1.Column(2, UserForm8.ListBox1.ListIndex)

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas MisterHp que dato posee la variante x cuando marca el error, me imagino que por la clase de error que indicas sera un CommandButton lo que este activo en el userform1 por lo que logicamente no puede colocar el dato, pero por si estoy equivocado por favor confirmalo cuando genere el error revisa que te coloca en la variable x

un saludo

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas MisterHp que dato posee la variante x cuando marca el error, me imagino que por la clase de error que indicas sera un CommandButton lo que este activo en el userform1 por lo que logicamente no puede colocar el dato, pero por si estoy equivocado por favor confirmalo cuando genere el error revisa que te coloca en la variable x

un saludo

El error que ocurre cuando voy seleccionar el valor del listbox, aparece el error que mencione

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas si pero te comentaba que es conveniente saber que valor posee la variable x cunado genra el error

Buenas MisterHp que dato posee la variante x cuando marca el error,

puesto que la linea que marcas cuando genera el error esta en la llamada a un control del userform1 que lo representa la variable x

UserForm1.Controls(x).AddItem UserForm8.ListBox1.Column(2, UserForm8.ListBox1.ListIndex)

por eso es conveniente saber que es lo que esta marcando cuando genera el error

un saludo

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas si pero te comentaba que es conveniente saber que valor posee la variable x cunado genra el error

puesto que la linea que marcas cuando genera el error esta en la llamada a un control del userform1 que lo representa la variable x

por eso es conveniente saber que es lo que esta marcando cuando genera el error

un saludo

Bueno adjuntare el archivo para mejor entendimiento de lo que sucede.[ATTACH]15794.vB[/ATTACH]

prueba1.zip

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas chequea archivo y como te comentaba el tema es que no tenias defenido donde debia de colocar los datos en el userform1 por eso el valor de la variable x en el momento del error era CommandButton1 pues es el que esta activo como puedes apreciar en la imagen, para soluccionar los errores primero hay que averiguar de donde provienen por eso la insistencia en que mirases de donde provenia y que dato tenia la variable. para ello si estas en un punto de error y existe una variable como es el caso solo debes de colocar el raton en cima de la variable y te arrojara el dato que posea en ese momento que era lo que te solicitaba para poder encaminarte a la soluccion,

bueno revisa archivo haber si te es de utilidad

un saludo

[ATTACH]15796.vB[/ATTACH]

prueba1.zip

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas chequea archivo y como te comentaba el tema es que no tenias defenido donde debia de colocar los datos en el userform1 por eso el valor de la variable x en el momento del error era CommandButton1 pues es el que esta activo como puedes apreciar en la imagen, para soluccionar los errores primero hay que averiguar de donde provienen por eso la insistencia en que mirases de donde provenia y que dato tenia la variable. para ello si estas en un punto de error y existe una variable como es el caso solo debes de colocar el raton en cima de la variable y te arrojara el dato que posea en ese momento que era lo que te solicitaba para poder encaminarte a la soluccion,

bueno revisa archivo haber si te es de utilidad

un saludo

Mis excusas es que no entendia lo que pedias de ahi que no sabia que responder, voy a chekar el archivo y luego comento. Mil gracias.

edito el mensaje: voy a subir el archivo nuevamente con los nombres reales de los combox porque veo que me esta lanzando otro tipo de error y no entiendo las razones el porque.

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas revisa archivo esta con los nombres de datos1 etc

un saludo

Gracias amigo todo va excelente, vere a ver q podre hacer con el error acceso denegado...

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas chequea el siguiente archivo

un saludo

Hola logroastur acaba de ver el archivo y probarlo pero sigue mostrandome permiso denegado y me envia al mensaje aqui:

UserForm1.Controls("codigo" & x).AddItem UserForm8.ListBox1.Column(2, UserForm8.ListBox1.ListIndex)

aqui al pasar el mouses userform8.listbox1.column(2,Userform8.LIstbox1.Listindex)="11"

Por lo visto ya es algo q no se porque la diferencia si todo esta bien y esto solo me sucede en mi archivo ya q en el otro todo esta bien.

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas podrias subir tu archivo para ver que es lo que le ocurre, esto en el error te coloca que va a colocar el dato 11 pero podrias mirar que valor posee la variable x para ver a que combobox lo coloca

un saludo

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas podrias subir tu archivo para ver que es lo que le ocurre, esto en el error te coloca que va a colocar el dato 11 pero podrias mirar que valor posee la variable x para ver a que combobox lo coloca

un saludo

Hola logroastur gracias por motivarte con mi consulta; ayer hice algunas pruebas quite todos los codigos que poseo en mi userform y el codigo propuesto me funciona de manera que creo que es alguna parte de mi codigo que esta generando el problema el cual me marcaba la parte que he mencionado, no se si seria prudente cambiar esa parte del codigo por otra que funcione para los listbox.

Gracias,

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas MisterHp si deseas que avancemos lo mejor es ir paso a paso y eso implica en que primero debemos saber que error se produce, paro luego mirar que solucción se le puede dar por lo que te recomiendo que dejes los codigos como estaban cuando se genera el error y revises que error te marca y si en la linea que se interrumpe el codigo existen variables ver que aisgnación poseen para ver de donde parte

un saludo

Share this post


Link to post
Share on other sites

Re: Filtro automatico en listbox con busqueda de palabras

Buenas MisterHp si deseas que avancemos lo mejor es ir paso a paso y eso implica en que primero debemos saber que error se produce, paro luego mirar que solucción se le puede dar por lo que te recomiendo que dejes los codigos como estaban cuando se genera el error y revises que error te marca y si en la linea que se interrumpe el codigo existen variables ver que aisgnación poseen para ver de donde parte

un saludo

Aparte de la la anterior:

userform8.listbox1.column(2,Userform8.LIstbox1.Lis tindex)="11"

Tambien observado esta:

UserForm8.ListBox1.ListIndex=0

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  



×
×
  • Create New...

Important Information

Privacy Policy