Saltar al contenido

Listbox con muchas columnas


Recommended Posts

publicado

Saludos amigos del foro tengo un gran dilema que no puedo resolver, se trata de un listbox que carga datos de una hoja de más de 40 columnas y una infinidad de filas, para ello conseguí un listbox que me carga los datos, el problema es que no me carga la cabecera sobre los datos, lo cual no quiero que sea con textbox, sino que los cargue de la tabla de Excel y sea fija, el otro problema es q habilite el listbox para q filtre datos, lo cual hace pero me limita la cantidad de columnas mostradas al aplicar el filtro, y yo quiero mostrar al aplicar el filtro de “mes”, desde la columna “A hasta la AI” 35 columnas con todas sus filas.

Por favor acudo a Uds. porque sé que me ayudaran en ello.

Muy agradecido.

Adjunto archivo.

LIST.rar

publicado

Hola

Por darte una afirmación un tanto vaga por no contar con el archivo de Macro Antonio, te digo que el listbox solo tiene para mostrar hasta diez columnas. Por tanto una cantidad mayor seria difícil, por no decir imposible.

no obstante, déjame ver si encuentro el archivo del Maestro Macro Antonio y confirmo lo dicho.

publicado

_______________________________________________________________

Te he adaptado un archivo que tenía por ahí.

  • Vale para cualquier hoja con cualquier nº de filas y columnas.
  • Las columnas en el listbox se dimensionan de forma automática en función del tamaño que tengan en la hoja.
  • Debes seleccionar la hoja antes de ejecutar el formulario.
  • La cabecera es la línea 9
  • El número de columnas se determina por la línea de cabecera
  • Los datos deben empezar en A10.
  • Una vez efectuado el filtro pueden eliminarse filas.
  • Se pueden buscar varios valores a la vez, solamente tienes que separarlos con el signo | (AltGr+1).
  • Puedes filtrar por cualquier columna.
  • Los filtros se pueden guardar en una hoja aparte.
  • Los filtros guardados, se pueden volver a filtrar y volverse a guardar.
  • El adjunto tiene 40 columnas, pero no hay límite.

PD: Alguien que tenga ganas que lo adapte a AdvancedFilter para mejorar el rendimiento, yo no tengo ganas.

__________________________________________________________________

Filtro para cualquier número de columnas.xls

publicado

muchas gracias por sus aportes pero no es exactamente lo que necesitaba, voy a revisar un poco mas este último archivo a ver si lo puedo adaptar y les comento...

publicado

Macro Antonio

una consulta por que al guardar el filtro seleccionado sale la imagen es demasiado larga se cortara.....?

publicado

Ok gracias Macro Antonio voy a ver si lo puedo adaptar al mio.

Otro favor puse en el foro un nuevo tema sobre textbox con formato que arrojan mal el resultado si me puedes dar una manito con tu experiencia para resolver ello te lo agradecería muchísimo...

  • 2 weeks later...
publicado

hola amigo una ocnsulta tengo una base de datos de 7mil registros, en la hoja 1 tengo una macro de busqueda en la cual coloco el numero de cedula del empleado "X" pero cuando este tiene mas de una repeticion solo m,e trae su primer ingreso como hago para cuando se repite este numero siga al proximo si el primero no me interesa

Archivado

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

  • 109 ¿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

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      187
    • Comentarios
      97
    • Revisiones
      29

    Más información sobre "Un juego del Rabino en Excel"
    Última descarga
    Por pegones1

    2    1

  • Crear macros Excel

  • Mensajes

    • Buenos días,  espero se encuentren bien de salud compañeros, Favor me podrían ayuda con lo siguientes como se podría hacer cuando tengo una tabla dinámica que  amedida que se aumente las columnas fechas con data un formula que se coloco al final busque o analice siempre la ultima fila y columna de la fecha. Coloco un ejemplo
    • @JSDJSD Excelentes, GRACIAS POR TU SOPORTE , me ayudo demasiado es exactamente lo que quería. 5 ESTRELLAS
    • 'Opción 1 Sub FiltrarSKUPorFecha(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim diccionarioSKU As Object Dim listaEliminar As Object Dim fechaActual As String, fechaSiguiente As String Dim f As Variant With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Crear diccionarios para comparar SKU y almacenar filas a eliminar Set diccionarioSKU = CreateObject("Scripting.Dictionary") Set listaEliminar = CreateObject("Scripting.Dictionary") ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then diccionarioSKU.RemoveAll ' Limpiar el diccionario antes de llenarlo ' Guardar los SKU de la fecha siguiente (solo de la siguiente) For f = fila + 1 To ultimaFila If .Cells(f, 1).Value <> fechaSiguiente Then Exit For diccionarioSKU(.Cells(f, 2).Value) = 1 Next f ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Solo eliminar si el SKU no está en la fecha siguiente If Not diccionarioSKU.exists(.Cells(f, 2).Value) Then listaEliminar(f) = 1 ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar.keys .Rows(f).Delete Next End With MsgBox "Completado correctamente.", vbInformation End Sub 'Opción 2 Sub FiltrarSKUPorFecha1(): Application.ScreenUpdating = False Dim ultimaFila As Long, fila As Long Dim listaEliminar As Collection Dim fechaActual As String, fechaSiguiente As String Dim f As Variant, i As Long Dim SKUExiste As Boolean With Sheets("Consolidado") ultimaFila = .Cells(.Rows.Count, 1).End(xlUp).Row ' Inicializar la colección para marcar las filas a eliminar Set listaEliminar = New Collection ' Recorrer desde la primera fila hasta la penúltima For fila = 2 To ultimaFila - 1 fechaActual = .Cells(fila, 1).Value fechaSiguiente = .Cells(fila + 1, 1).Value ' Solo comparar la fecha actual con la siguiente (inmediatamente superior) If fechaActual <> fechaSiguiente Then ' Revisar los SKU de la fecha actual y marcar los que deben eliminarse For f = fila To 2 Step -1 If .Cells(f, 1).Value <> fechaActual Then Exit For ' Comprobar si el SKU está en la fecha siguiente SKUExiste = False For i = fila + 1 To ultimaFila If .Cells(i, 1).Value <> fechaSiguiente Then Exit For If .Cells(i, 2).Value = .Cells(f, 2).Value Then SKUExiste = True Exit For End If Next i ' Si el SKU no se encuentra en la fecha siguiente, marcar para eliminar If Not SKUExiste Then listaEliminar.Add f ' Marcar fila para eliminar después End If Next f ' Ya no es necesario seguir buscando después de comparar la primera y la siguiente fecha Exit For End If Next fila ' Eliminar las filas marcadas sin afectar el bucle principal For Each f In listaEliminar .Rows(f).Delete Next f End With MsgBox "Completado correctamente.", vbInformation End Sub   TABLA ELIMINAR.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.