1. AyudaExcel utiliza cookies. Si continuas utilizando AyudaExcel, estás aceptando la utilización de nuestras cookies. Más información.
  2. ¡Bienvenid@ a AyudaExcel! El foro más visitado sobre Excel en habla hispana.

    Si esta es tu primera visita, asegúrate de revisar los temas de la sección Utilización y Funcionamiento para familiarizarte con las funciones del foro. Si deseas publicar mensajes, será necesario que te Registres para que puedas dejar respuestas y crear tus propios mensajes, recuerda que es gratuito.

[SOLUCIONADO] Filtrar datos listbox en userform

Tema publicado en 'Macros y programación VBA' iniciado por joshua, 6 Dic 2009.

Estado del tema:
Cerrado para nuevas respuestas
  1. joshua

    joshua Usuario Activo

    Registrado:
    5 Jun 2009
    Mensajes:
    916
    Me Gusta recibidos:
    82
    Saludos a Todos.
    Tengo un userform que contiene un listbox donde pretendo filtrar una base de datos, al dar click en el boton filtrar realiza el filtro correctamente en la hoja basededatos, pero me muestra en el listbox todas las filas, lo que quiero es que me muestre solo lo filtrado, de antemano agradesco la ayuda que puedan brindarme, adjunto archivo.
    Atte.
    joshua
    Email Intervenido

    Adjuntos:

    Editado por moderación: 17 Sep 2010
  2. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    ya tenia tiempo e haber realizado un ejempo para este caso pero la solucion que le di ,no me gusto !!!!
    pero a falta de...
    1.-te propongo una solucion de Luis por acá: http://www.ayudaexcel.com/foro/showthread.php?t=6470
    2.-otra de efmc: http://www.ayudaexcel.com/foro/showthread.php?t=2701
    3.-finalmente la mas 'malilla' ,es decir la mia(que sigue sin gustarme pero de momento el *cpu* no me funciona para poder ofertarte otra mejor)
    CÓDIGO:
    Private Sub CommandButton2_Click()
    Application.ScreenUpdating = False '<---  adaptacion
    nombre = TextBox1
    Sheets("BaseDeDatos").Unprotect
    Sheets("BaseDeDatos").Activate
    Cells.EntireRow.Hidden = False
    uf = Range("A" & Cells.Rows.Count).End(xlUp).Row
    If nombre = "" Then Exit Sub
    '==========================adaptacion===============================
    ListBox1.RowSource = "": ListBox1.ColumnCount = 4
    Dim Datos(23, 3) 'dimensiones de la matriz
    For fil = 0 To uf
        For j = 0 To 3
            If Range("A" & fil + 2) <> nombre Then
                'oculta las filas
                Rows(fil + 2 & ":" & fil + 2).EntireRow.Hidden = True
            Else 'si es igual,entonces
                'agrega los datos a la matriz
                Datos(fil, j) = Cells(fil + 2, j + 1)
            End If
        Next j
    Next fil
    
    ListBox1.List = Datos 'carga el listbox con la matriz(24 filas y 4 col)
    'depura el listbox con datos vacios :D
    For i = ListBox1.ListCount - 1 To 0 Step -1
        On Error Resume Next
        If ListBox1.List(i) <> TextBox1 Then ListBox1.RemoveItem (i)
    Next
    '========================fin de adaptacion===========================
    Sheets("BaseDeDatos").Protect
    Sheets("Hoja1").Activate
    End Sub
    checa el adjunto funcionando,pero deberas tener cuidad de escribir el nombre de las personas a filtrar exactamente igual como estan en la base de datos

    Adjuntos:

  3. joshua

    joshua Usuario Activo

    Registrado:
    5 Jun 2009
    Mensajes:
    916
    Me Gusta recibidos:
    82
    Respuesta: Filtrar datos listbox en userform

    Saludos ST.
    Disculpa la tardanza en contestar, me quede un tiempo sin maquina, pero ya estoy de vuelta, gracias por la magnifica ayuda que me has brindado me a servido bastante, doy por terminado el tema hasta la proxima.
    Atte.joshua

    Editado por moderación: 17 Sep 2010
  4. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    solo para saber cual de las 3 opciones fue ???
  5. joshua

    joshua Usuario Activo

    Registrado:
    5 Jun 2009
    Mensajes:
    916
    Me Gusta recibidos:
    82
    Re: Respuesta: Filtrar datos listbox en userform

    Saludos ST.
    Perdon por el despiste de no indicarte cual solucion me habia funcionado, las tres soluciones que me propusiste son muy buenas, pero en mi caso concreto la tuya es la mas completa, no se porque piensas que la tuya es la mas mala en lo personal no lo creo ya que sobrepaso por mucho las pruebas que le realice, algo que he aprendido en el poco tiempo de pertenecer a este bendecido foro es que con vb se puede hacer de todo y de diferentes formas, por lo cual no pienses que la tuya es la mas malilla.
    Aprovecho para desearte y desearles una FELIZ NAVIDAD, alrededor de sus seres queridos a todos los miembros del foro esperando que dios todopoderoso derrame bendiciones, salud y prosperidad sobre todos.
    FELIZ NAVIDAD
    ROLANO
    LUISFECAB
    KIRA
    ST
    MJROFRA
    AVALENCIA
    Perdon por si omito a alguien.

    Atte.
    joshua

    Editado por moderación: 17 Sep 2010
  6. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    gracias Elias:
    igualmente te deseo lo mejor en este mes de fiestas,y ante todo salud que es lo principal.

    en cuanto a mi aporte,lo de 'malillo' es por que cuando redactaba y practicaba la propuesta me di cuenta que el bucle llenaba la matriz con elementos vacios y entonces tuve que incluir un nuevo bucle para quitar las filas vacias que se originaban al llenar el listbox...y eso es lo que se me hizo un tanto 'ridiculo' de mi aporte,es decir primero lleno y luego vacio...como que no hay mucha logica en estas 2 actividades que parecen hechas por un loco(je,je,solo a mi se me ocurren semejantes cosas)
    es como si hubiera servido un plato de sopa lleno y luego lo vacio y dejo a la mitad

    creo que el resultado final si es lo que se deseaba,por ello entiendo tus comentarios,si bien programaticamente no deberia de haberse hecho de esta forma,pero cada vez soon mas frecuentes/recurrentes mis problema de salud que me impiden dar mejores propuestas.....parece que el baul de las ideas,de la propiedades,metodos,etc,etc de excel se alejan de mi mente aunque no lo desee.
  7. josemaria

    josemaria Usuario

    Registrado:
    24 Sep 2008
    Mensajes:
    738
    Me Gusta recibidos:
    5
    Respuesta: Filtrar datos listbox en userform

    Hola;

    ST no te imaginas todo lo que se me ha pasado por la cabeza al ver tu ejemplo, y lo mucho que me puede ayudar con un tema que tengo entre manos.
    Lo mas facil sería adaptar tu ejemplo y utilizarlo pero lo mas etico es darte las gracias y decirte que me has ayudado bastante, muchas gracias ST


    Un Saludo.
    Jose Maria.
  8. josemaria

    josemaria Usuario

    Registrado:
    24 Sep 2008
    Mensajes:
    738
    Me Gusta recibidos:
    5
    Respuesta: Filtrar datos listbox en userform

    Hola;

    Ya estoy aquí dando el coñacico, demasiado facil para ser cierto, el que puediera adaptarlo yo solo.

    He puesto 8 columnas en vez de 4, y perfecto, el problema es que yo quiero filtrar por la columna C, cambio la columna A por la C y no me hace caso, no muestra resultados
    pienso que puede ser que el tipo de dato no sea el mismo, uno numerico y otro caracter, pues pruebo con la columna D , pero tampoco me hace caso, entonces digo, tendrá que ser siempre con la columna A, pues pruebo con letras y filtra genial pero con numeros no me filtra.

    CÓDIGO:
    If Range("A" & fil + 2) <> nombre Then    '---------> es la linea que cambio A, por D, etc. (a una linea que esta un poco mas arriba tambien)
    

    y a las malas que tenga que ser la linea anterior, ¿podría filtrar por número? porque normalmente por donde busco yo es por la columna de "id_empleado" o "usuario"

    si por las dos no puede ser, pues la haria por el id_empleado pero resulta que es numero y no me filtra por un numero.

    Un Saludo.
    Jose Maria.

    Adjuntos:

  9. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    hola jose maria:
    no pude ver el archivo parece que esta dañado :(

    la columna no importa ya que lo que busca es el valor en el rango elegido

    creyendo que intentaas buscar un valor numerico en la hoja y en el texbox de busqueda se tiene como texto deberas convertilo asi Val(textbox1)

    lo unico que debes de asegurarte es que sea el mismo tipo de datros a buscar en el textbox y en las celdas.
    espero lo puedas asdaptar ,de lo contrario sube de nueva cuenta el archivo para ver si le puedo dar un 'vistazo' :D
  10. josemaria

    josemaria Usuario

    Registrado:
    24 Sep 2008
    Mensajes:
    738
    Me Gusta recibidos:
    5
  11. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    hola josemaria de momento tengo restricciones para ver este tipo de paginas pero intentaré bajarlo en la noche desde casa,espero no se me olvide con eso de que tengo memoria de 'teflon'..je,je,que le voy a hacer.

    la otra posibilidad es que depures el archivo para que quede lo suficientemente ligero para poder bajarlo desde le mismo foro,recuerda solo los datos minimos indispensables para que 'simule' la realidad
  12. josemaria

    josemaria Usuario

    Registrado:
    24 Sep 2008
    Mensajes:
    738
    Me Gusta recibidos:
    5
    Respuesta: Filtrar datos listbox en userform

    Hola ST;

    te aseguro que los datos que hay son datos minimos y que no ocupa casi nada, lo subi ahí porque me comentaste que no podias ver el archivo anterior.

    Un Saludo.
    Jose Maria.
  13. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    efectivamente pues el mismo al parecer esta dañado !!!!!

    lo cual signifca que se puede bajar pero no ver y si es el mismo archivo dañado ,pues no garantiza que al bajarlo de otro sitio el mismo archivo(dañado) se pueda visualizar. :confused:

    de momento decirte que me fue imposible ayer bajarlo ya que estuve ausente de casa por motivos personales y hoy de nueva cuenta lo estaré,con lo cual la revision del archivo se prolongará mas a menos que subas a este foro uno que no este dañado.

    otra posibilidad es que esperes a que otro forero te conteste/recomiende algoa al respecto
  14. josemaria

    josemaria Usuario

    Registrado:
    24 Sep 2008
    Mensajes:
    738
    Me Gusta recibidos:
    5
  15. supervoro

    supervoro Usuario Activo

    Registrado:
    18 Oct 2009
    Mensajes:
    518
    Me Gusta recibidos:
    26
    Género:
    Masculino
    Respuesta: Filtrar datos listbox en userform

    He seguido con interes este post y quisiera prestar mi colaboracion aportando una solucion al problema de Josemaria

    El maestro ST. dijo :
    ......pero cada vez soon mas frecuentes/recurrentes mis problema de salud que me impiden dar mejores propuestas.....parece que el baul de las ideas,de la propiedades,metodos,etc,etc de excel se alejan de mi mente aunque no lo desee.
    Mas quisieramos muchos del foro estar ( en plenitud de facultades ) a la altura de sus propuestas ,para mi personalmente es uno de los grandes de este y de otros foros en los que lo he seguido.

    Desde aqui mi admiracion y como dice el amigo Joshua desearle unas Felices Fiestas y Prospero Año 2010 a usted y a todos los participantes en el foro .

    Saludos.

    Adjuntos:

  16. josemaria

    josemaria Usuario

    Registrado:
    24 Sep 2008
    Mensajes:
    738
    Me Gusta recibidos:
    5
    Respuesta: Filtrar datos listbox en userform

    Hola supervoro;

    ante todo muchisimas gracias, es exactamente lo que necesitaba, he estado viendo el codigo y a ti si te ha funcionado lo del val, no se porque a mi no me funcionaba
    mañana cuando llegue al trabajo lo revisare mas a fondo, lo dicho, muchas gracias.
    ST gracias por tu gran imaginación y de todos tus aportes.



    Un Saludo.
    Jose Maria
  17. ST_

    ST_ Usuario Activo

    Registrado:
    9 Sep 2008
    Mensajes:
    1.167
    Me Gusta recibidos:
    19
    Respuesta: Filtrar datos listbox en userform

    pues gracias a supervoro por dejar su aporte :D
    y por cierto no sabia que me conocias de otrs 'foros' (aun que que puedo esperar de mi, si todo se me olvida a la primera)

    una disculpa a todos por ser tan 'quejumbroso',lo que pasa es que no he podido superar mis problemas de salud y creo que hago catarsis con ustedes :)

    1000 disculpas nuevamente.
Estado del tema:
Cerrado para nuevas respuestas

Compartir esta página