Saltar al contenido

Filtrar 12 columnas a un listbox con 3 criterios


Recommended Posts

publicado

Muy Buenas Tardes,

Estuve indagando y hasta ahora no he podido solucionar mi problema, se trata de un filtro que necesito hacer a una data que esta en una hoja, y mostrarlo a un listbox , lo que sucede es que este libro tiene 12 columnas y deseo que se muestren en un listbox luego de hacer el filtro necesario con los siguientes criterios que son "Customer", "Fecha desde" "Fecha hasta" . y al realizar la consulta me filtre de manera automática los digitado en cada uno de los textboxes que tengo en mi Formulario.

Espero su pronta respuesta.

Saludos

Facturacion_de_Boletas_CAS_Updated.rar

publicado

Estimado, estoy trabajando en algo parecido, pero mis filtros son todos a través de combobox. Busqué información también y si bien logré solucionar mi problema, es muy lento el proceso, se demora en realizar la búsqueda. Sin embargo, no recuerdo si en este foro o en otro encontré algo que puede servirte. Lo adjunto para que lo revises.

Saludos!!

BASE DE DATOS.rar

publicado

Estimada Daniela,

Si claro, te comento que así como tu tengo un archivo similar que hace la búsqueda con un "Wildcard" eso es espectacular, sin embargo lo que yo busco es una búsqueda con un rango de fechas y con mas de 10 columnas en este caso son 12 y que se muestren en un listbox. sabes he estado con ese tema mas de dos semanas y sin solución. espero encontrar pronto una solución posible.

Gracias por tu ayuda tendré tu archivo en cuenta, que tengas buen dia.

publicado

Ufff Virushito, yo llevo meses en el mío y aún no logro lo que quiero, pero así es la programación, sobre todo cuando no se es experto, hay que ir probando y ver si resulta. Perdón la ignorancia, pero qué es una búsqueda con Wildcard?? a lo mejor me sirve para lo que intento hacer.

Suerte con lo tuyo!!!

Saludos

publicado

Si pues yo no soy experto, pero es que sabes ayudo a mi padre en su empresa y lo ayudo mas que todo en la simplificación de actividades mediante estas macros y programas para que sea mas productivo su actividad. por tu pregunta lo de "Wildcard" eso significa que puedes usar comodines con este signo * el cual solamente al escribir una letra el filtro busca todo lo que empieza con esa letra. bueno eso es loque investigue, gracias por tu aporte.

Suerte con lo tuyo también!!!

Nos vemos

publicado

Hola [uSER=218579]@virushito[/uSER]!!!

No estoy seguro que te sirva, pero te propongo otra forma de llegar a los datos.

En el formulario, solo ingresa una condición y/o una fecha y pulsa el botón. El trabajo no está terminado, pero si te parece bien lo que te envío, a la tarde o noche paso de nuevo y lo terminamos!

Puedes probar y comentar?

Que tengas una buena jornada!

Facturacion_de_Boletas_CAS_Updated_v2.rar

publicado

Estimado Tierra pampa,

Ya lo revise y me parece que eta muy bien encima tiene heads (Titulos) esta perfecto ahora desearía que me filtre las fechas igual estaré atento a tu ayuda.

Gracias

publicado

He ocultado la hoja LISTBOX, pero no la elimines.

  • Para consultar desde la fecha mas antigua deja la fecha desde en blanco
  • Si dejas ambas fechas en blanco, se seleccionaran todas las fechas.
  • Si dejas la fecha hasta en blanco, esta tomará el valor de fecha desde.

Revisa el adjunto.

Facturacion_de_Boletas_CAS_Updated.rar

publicado

Estimado Macro Antonio,

He revisado el archivo y esta estupendo, sin embargo cuando filtro por la fecha mas antigua dejando en blanco el textbox "txtFecha1"me filtra del mes anterior, lo comprobé con otro "Customer" en el "ComboBox2" como haría para que solo me filtre solo el mas antiguo de ese mes? como lo quiero usar para una facturación que estoy realizando este seria una parte de ello y la facturación la realizan por mes en este caso.

Estaré atento.

Saludos,

Jesús

publicado

Estimado Macro,

He realizado lo que me indicas pero me bota dato atrasados igual, tengo data del 2015 y me bota datos de ese año.

Saludos

publicado

saludos [uSER=46507]@Macro Antonio[/uSER], amigo [uSER=218579]@Virushito[/uSER] creo que el archivo está bien, de seguro estas filtrando el customer que dice COSORCIO que tiene solo datos desde febrero, y crees que es el que dice CONSORCIO que si tiene datos desde el 2015

suerte

publicado

Hola [uSER=218579]@virushito[/uSER] ! Me disculpo por no pasar antes, pero mi fin de semana se complicó bastante.

Como ya lo hice, igual te envío el archivo mejorado, pero si quieres un buen consejo: saca provecho del que te hizo el maestro [uSER=46507]@macro-antonio[/uSER]...

Si quieres probar y comentar, por aquí volveremos.

Que puedas solucionar el problema!

Abrazo!

Facturacion_de_Boletas_CAS_Updated_v3.rar

publicado

Estimado tierra_pampa,

Esta muy bueno tu filtro, la verdad no pensé que se podía hacer de otra forma, es una joya lo guardare para futuras ayudas a otros compañeros, y mil gracias sabes ambas son buenas no se cual usar jajaja consultare cual les gusta , puesto que yo no lo usare si no mi padre.

Saludos,

Jesus

publicado
Hola bigpetroman,

te adjunto un print de lo que aparece en mi filtro , a que se debe?

Fíjate en la fecha desde y fecha hasta de tu imagen y verás que el resultado de la búsqueda es correcto.

.

publicado

Que tal Macro Antonio,

Si he hecho lo que me dices y no sale como tu mencionas, en la imagen se ve que filtro en fecha hasta "31/03/2016" y si notas en la imagen que adjunto se ve que no.

Saludos

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
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • 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.