Jump to content
Visor

Formulario Multi Buscador

Recommended Posts

Estimados amigos del foro, Saludos

Tengo un archivo en el que he colocado un combobox para que busque en la hoja, todos los que son iguales según lo que haya en la hoja BD, deberá mostrarse en el listbox.  Para mi entender todo esta bien. Pero no se cual es la razón por la que no funciona el Select case según lo que se selecciones en el combobox

Les solicito que le puedan echar un vistazo al archivo y me colaboren.

Agradezco anticipadamente su apoyo.

Subo el archivo

 

Buscar con Combobox y mostrar en LIstbox.xls

Share this post


Link to post
Share on other sites

Hola Visor,  CbxBuscador no existe en tu formulario y deberías cerrar todos los ciclos for, y como dice el maestro Gerson Revisa la ayuda de como usar Select Case.

Edited by JSDJSD

Share this post


Link to post
Share on other sites

Hola @Visor

 

Modificaste los nombres de los controles (seguramente por el archivo provisorio). Tienes error en las órdenes "FOR NEXT".

Revisa y comenta.

Suerte!
 

Private Sub ComboBox2_Click()
'Select Case CbxBuscador.Value
Select Case ComboBox2.Value
    Case Is = "AÑO"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("B" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "PERIODO"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("C" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "MES"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("D" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "DIA"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("E" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "CARRERA"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("G" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "LABORAT."
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("H" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "SEMESTRE"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("I" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "ASIGNATURA"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("J" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "DOCENTE"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("K" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
            End If
        Next
    Case Is = "OBSERVACION"
        For X = Hoja3.Range("A" & Rows.Count).End(xlUp).Row To 2 Step -1
            If Not Hoja3.Range("S" & X) Like "*" & CbxBuscador & "*" Then
                Hoja3.Rows(X).Delete
        End If
        Next
    Case Else
End Select
End Sub

 

Share this post


Link to post
Share on other sites

Gracias a todos ustedes,, me han hecho caer en cuenta el error, lo he corregido, incluso me ha faltado incluir el listbox en el archivo ejemplo.

Estimado  Tierra_Pampa, como me lo indica Gerson y JSD

Aquí,

Select Case ComboBox2.Value

no va Combobox2 sino, Combobox1 pues allí tendría el criterio a buscar,..luego en el Combobox2 ( en realidad es el CbxBuscador) tendría los diferentes items a buscar que son otra cosa diferente a los casos de Select case

Me fallaba además, en Case Is = "MES" y eso ha sido por lo de la instrucción For Next

Ahora ya me funciona bien. 

Les quedo muy agradecido:rolleyes:

Edited by Visor

Share this post


Link to post
Share on other sites

@Visor

En realidad no necesitarías usar Case, para realizar ese procedimiento [es mas, en el combobox1 tenias la clave], y bueno no se, ni como decírtelo, algunas lineas de códigos asustan 😅 [pero ese es otro tema], limpié un poco; con los elementos únicos hay varias formas, pero el que tienes es un clásico y yo los adoro 😇

Mira el adjunto [hay mas que mejorar pero....] y nos comentas

 

Saludos a todos!

Buscar con combobox_GP.zip

Share this post


Link to post
Share on other sites

Saludos,

Gracias por continuar en este tema,.

Debido a que el tema dice que luego de seleccionar el item, se muestren en el listbox,...En realidad no encontré otro modo que usar select case...le he visto el código con el que haces funcionar sin select case, y me sorprendo pues en algo muy simplificado y que no le encuentro como empatan las igualdades para generar el resultado, con código simplificado y funcional. Mas aun para hacer que aquello se muestre en el listbox (podría lograrse??). Por eso hice uso de la hoja3....Ajá claro que, de las variables que has puesto enviándolas a la hoja3 debería funcionar!!, es decir me daría lo mismo seleccionar las filas, o eliminarlas o copiarlas y pasarlas a la Hoja3 con tu código. Pero ni en la misma hoja o tratando de pasarlas a la Hoja3 resulta. Que mejor que no se tenga que usar la Hoja3.

Con el select case y la hoja3 me resulta, pero como lo mencionas!! aun cuando asusten algunas lineas... como funcionar sin la hoja3 y sin select case (tal como lo has hecho) para mostrar en el listbox??

Subo nuevamente el archivo con el listbox,

Buscar con combobox y llenar en listbox_GP.xlsm

Share this post


Link to post
Share on other sites

Bueno, en primer lugar me siento muy agradecido por el archivo en el que, el codigo que has colocado (muy simplificado y técnicamente sofisticado) hace lo que buscaba. En el que en todo caso me da la razon de usar la Hoja3,.. de apoyo. Es necesario en este caso pues la otra forma es cuando se filtra (filtro avanzado) en la misma hoja. Pero cuando se filtra no se puede usar rowsource, al menos a mi no me ha funcionado...Uso .....SpecialCells(xlCellTypeVisible) y tambien AddItem..para que funcione pero siendo asi sobre todo las horas no salen bien aun cuando le especifique format.

En este sentido la solucion fue enviar a otra Hoja,. . la 3...Ahora bien como no tengo la experiencia de ustedes por eso de seguro son atascos mios.

Este tema es un buen ejemplo generico util para muchos que tengan estos casos.

Gracias una vez mas por tu apoyo.

Share this post


Link to post
Share on other sites

lo unico que no pude resolver es el filtro por fechas y por horas, por lo demas puedes filtrar por cualquier columna, para lo que quieres hacer no ocupas un select case con autofiltros y una hoja auxiliar se resuelve, solo hay otro inconveniente al cargar el listbox se hace a traves de una matriz porque la macro hace la conversion serial a fecha para que asi la veas en el resultado final y cuando este es el caso no se pueden poner los encabezados al listbox, si uso el rowsource que si permite titular el listbox las horas y fechas quedan en numeros decimales 

Buscar con combobox y llenar en listbox_GP.xlsm

Share this post


Link to post
Share on other sites
Hace 17 horas, Visor dijo:

Bueno, en primer lugar me siento muy agradecido por el archivo en el que, el codigo que has colocado (muy simplificado y técnicamente sofisticado) hace lo que buscaba. En el que en todo caso me da la razon de usar la Hoja3,.. de apoyo. Es necesario en este caso pues la otra forma es cuando se filtra (filtro avanzado) en la misma hoja. Pero cuando se filtra no se puede usar rowsource, al menos a mi no me ha funcionado...Uso .....SpecialCells(xlCellTypeVisible) y tambien AddItem..para que funcione pero siendo asi sobre todo las horas no salen bien aun cuando le especifique format.

En este sentido la solucion fue enviar a otra Hoja,. . la 3...Ahora bien como no tengo la experiencia de ustedes por eso de seguro son atascos mios.

Este tema es un buen ejemplo generico util para muchos que tengan estos casos.

Gracias una vez mas por tu apoyo.

Visor

Como ya debes saber, el tratamiento con las horas es diferente,  como también para la búsqueda

Te adjunto de nuevo el archivo, ahora mas completo y funcionando con cada criterio de búsqueda [incluyendo horas]

 

Saludos 

Formulario Multi Buscador Vba_GP.zip

Share this post


Link to post
Share on other sites

Claro , Si,  lo de Rowsource funciona perfecto!! pasando los datos requeridos a la hoja3 (en este caso ocultada),.. y luego pasa al listbox

Con esto estoy aplicando ya elimine lo de Select case

Gracias una vez más

Share this post


Link to post
Share on other sites
Hace 14 horas, Visor dijo:

Claro , Si,  lo de Rowsource funciona perfecto!! pasando los datos requeridos a la hoja3 (en este caso ocultada),.. y luego pasa al listbox

Con esto estoy aplicando ya elimine lo de Select case

Gracias una vez más

Pues si, después de todo, nos ha quedado "bonito" el formulario, que se convirtió en un buen aporte para búsquedas

 

Saludos!

Share this post


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

×
×
  • Create New...

Important Information

Privacy Policy