Saltar al contenido

Filtrar varios criterios desde Listbox y pasar resultado en otra hoja


Recommended Posts

Buenas tardes amigos, un gusto saludarlos de nuevo!

Fíjense que ahorita estoy trabajando con una hoja de excel donde necesito copiar uno o varios criterios y pasarlos en otra hoja, para no utilizar el autofiltro de excel y no copiar por partes, se me ocurrio realizar esos filtros desde un Listbox, a continuación explico.

1. Para empezar necesito que en la columna G de la hoja 1, cargue en listbox los datos pero que no se repitan (Folios únicos) y despues (Cabe mencionar que los datos de esa hoja son variables, pueden ser 1 o hasta 10,000 registros).

2. que me de la opción de seleccionar cual quiero copiar y pasar en la hoja de resultados (Tipo multiselect).

 

Adjunto archivo de ejemplo.

 

Agradezco la atención prestada.

saludos cordiales.

 

Libro1.xlsm

Enlace a comentario
Compartir con otras webs

Buena tarde a todos, sigo con este pendiente, ahorita agregue estos códigos:

Para cargar los datos:

Private Sub CommandButton1_Click(): On Error GoTo Único
ListBox1.MultiSelect = fmMultiSelectMulti
Dim celda As Range

For Each celda In Hoja1.Range("G2", Hoja1.Range("G" & Rows.Count).End(xlUp))
ListBox1.Text = celda.Value
Next celda
Exit Sub

Único:
ListBox1.AddItem celda.Value
Resume Next

End Sub

Para filtrar:

Private Sub CommandButton2_Click()
Dim lItem As Long
Dim I As Integer

I = 0
For lItem = 0 To ListBox1.ListCount
If ListBox1.Selected(lItem) = True Then

Hoja1.Range("A2:BJ10000").AutoFilter Field:=7, Criteria1:=ListBox1.List(lItem)
I = I + 1
ListBox1.Selected(lItem) = False
End If
Next
End Sub

Sin embargo, al filtrar, solo me esta filtrando un valor, ya que si selecciono 1 o mas de 2 criterios no me esta filtrando...

Espero alguien pueda ayudarme, adjunto el archivo de avance.

 

Saludos,

Copia de Libro1.xlsm

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Current Donation Goals

    • Raised 0.00 EUR of 130.00 EUR target
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Saludos amigos espero estén bien Necesito generar un código numérico de cinco (05) dígitos no aleatorio en la Celda "Q4"que valla precedido de dos letras ejemplo : AA - 00000,  cuya numeración valla del  0000 al 9999  y cuando llegue al 9999 se reinicie automáticamente en 0000 debiendo actualizar la numeración cuando se haga click en el botón Limpiar Mucho les sabre agradecer la ayuda que me puedan brindar  PRUEBA.xlsm
    • Muchas gracias me a servido de mucho su colaboaracion y ayuda.   Excelente aporte amigo.
    • Gracias @Victor7. La solución que me das no es valida para mi proyecto ya que la idea es que en la pestaña DATAGlobal se vayan añadiendo registros, por lo que la formulas deben ser dinámicas en el sentido que según vaya añadiendo registros, se vayan completando el cuadro con los valores únicos.    Por otro lado, no puedo prescindir de la pestaña de valores únicos por que con esa información realizo otro tipo de informes con unidades totales, graficas con las fechas etc.. Muchas gracias por la ayuda
    • Abre el adjunto y pulsa el botón  GENERAR HOJAS y luego pulsa sobre cualquier fecha del calendario para ir a la hoja deseada. Observa que he añadido 2 botones en la hoja CALENDARIO, uno para generar las hojas y otro para eliminarlas. También he añadido una flechita azul en las hojas generadas para volver a la hoja CALENDARIO. Estas son las macros: En la hoja CALENDARIO: Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim d As Integer, m As Integer, a As Integer On Error Resume Next If IsNumeric(Target) Then If Not Target = "" Then x = Int((Target.Row - 6) / 9) y = Int((Target.Column - 5) / 8) + 1 m = x * 6 + y d = Target a = Right([E3], 4) Sheets(Format(d, "00") & "-" & Format(m, "00") & "-" & a).Activate End If End If End Sub En el Módulo1: Sub GenerarHojas() Application.ScreenUpdating = False Application.CopyObjectsWithCells = True Dim a As Integer a = Right([E3], 4) With Sheets("ORIGI") For fecha = CDate("01/01/" & a) To CDate("31/12/" & a) '<-- Periodo a generar .Copy After:=Sheets(Sheets.Count) ActiveSheet.Name = Format(fecha, "dd-mm-yyyy") [B4] = [B4] & " " & fecha Next End With Volver End Sub '-- Sub EliminarHojas(): On Error Resume Next Application.ScreenUpdating = False Application.DisplayAlerts = False Dim a As Integer a = Right([E3], 4) For fecha = CDate("01/01/" & a) To CDate("31/12/" & a) '<-- Periodo a eliminar Sheets(Format(fecha, "dd-mm-yyyy")).Delete Next End Sub '-- Sub Volver() Sheets("CALENDARIO").Activate End Sub   Libro1 (15).xlsm
    • Hola un cordial saludo a todos.  Tengo una hoja con un formato de calendario y tengo 365 hojas cada una con nombre de un dia mes y año  en especifico agradecería me ayuden a como puedo realizar la vinculacion de cada dia del calendario con cada hoja respectivamente sin hacerlo de forma manual , ya que es muy laborioso dado que lo tengo que hacer de una por una.   adjunto coloco un ejemplo de lo que tengo gracias. Libro1.xlsm
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.