Saltar al contenido

Filtrar por fecha en ListView


Recommended Posts

Saludos a esta fabulosa comunidad.

Por favor a quien me pueda colaborar ...

Deseo hacer un filtro por fecha  en un ListView, de  una bddatos que se encuentra en una hoja de Excel . Las fechas son ingresadas en dos textbox  uno de desde  ( fecha inicial ) hasta ( fecha inicial ) y que el resultado me lo muestre en el ListView .

Gracias por cualquier información que me ayude a solucionar 

prueba_filtrarPorFecha_Listview.xlsm

Editado el por waquiro
Enlace a comentario
Compartir con otras webs

  • 2 months later...

Hola @waquiro

Espero no sea muy tarde para revivir esta consulta, y es posible que hasta lo hayas solucionado ya para estos días. En cualquier caso espero sea de utilidad para ti o algún lector reciente.

Para filtrar propongo este código:

Private Sub Btn_BUSCAR_Click()
Dim fechaDesde As Date
    Dim fechaHasta As Date
    Dim fila As Integer
    Dim li As Variant
    
    If Not IsDate(txtdesde.Value) Or Not IsDate(txthasta.Value) Then
        MsgBox "Por favor ingresa fechas válidas en ambos cuadros de texto.", vbExclamation
        Exit Sub
    End If
    

    fechaDesde = DateValue(txtdesde.Value)
    fechaHasta = DateValue(txthasta.Value)
    

    ListView1.ListItems.Clear
    

    fila = 5
    Do Until Hoja1.Cells(fila, 1) = 0
        
        If Hoja1.Cells(fila, 2).Value >= fechaDesde And Hoja1.Cells(fila, 2).Value <= fechaHasta Then
        
            Set li = ListView1.ListItems.Add(Text:=Hoja1.Cells(fila, 1).Value)
            li.ListSubItems.Add Text:=Format(Hoja1.Cells(fila, 2).Value, "dd/mm/yyyy")
            li.ListSubItems.Add Text:=Hoja1.Cells(fila, 3).Value
            li.ListSubItems.Add Text:=Hoja1.Cells(fila, 4).Value
            li.ListSubItems.Add Text:=Hoja1.Cells(fila, 5).Value
            li.ListSubItems.Add Text:=Format(Hoja1.Cells(fila, 6).Value, "#,##0")
            li.ListSubItems.Add Text:=Format(Hoja1.Cells(fila, 7).Value, "#,##0")
        End If
        
        fila = fila + 1
    Loop

End Sub

Para regresar a como estaba el ListView con el botón que creaste ACTUALIZAR

Private Sub CommandButton6_Click()


    Dim fila As Integer
    Dim li As Variant
    
    ListView1.ListItems.Clear
    

    fila = 5
    Do Until Hoja1.Cells(fila, 1) = 0
        
        Set li = ListView1.ListItems.Add(Text:=Hoja1.Cells(fila, 1).Value)
        li.ListSubItems.Add Text:=Format(Hoja1.Cells(fila, 2).Value, "dd/mm/yyyy")
        li.ListSubItems.Add Text:=Hoja1.Cells(fila, 3).Value
        li.ListSubItems.Add Text:=Hoja1.Cells(fila, 4).Value
        li.ListSubItems.Add Text:=Hoja1.Cells(fila, 5).Value
        li.ListSubItems.Add Text:=Format(Hoja1.Cells(fila, 6).Value, "#,##0")
        li.ListSubItems.Add Text:=Format(Hoja1.Cells(fila, 7).Value, "#,##0")
        
        fila = fila + 1
    Loop



End Sub

 

Enlace a comentario
Compartir con otras webs

Crear una cuenta o conéctate para comentar

Necesitas ser usuario para poder dejar un comentario

Crear una cuenta

Registrarse para una nueva cuenta en nuestra comunidad. ¡Es fácil!

Registrar una nueva cuenta

Conectarse

¿Ya tienes una cuenta? Conéctate aquí.

Conéctate ahora
  • 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

  • Ayúdanos a mejorar la comunidad

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

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Hola, Mejor que subas un archivo que contenga esas fórmulas, indicando qué resultados esperas conseguir. Así ayudas a quien quiera ayudarte; no le obligas a que reproduzca ese modelo, y de paso podrá ver cuál es el objetivo buscado con esa/s fórmula/s. Saludos,
    • Buenas noches quisiera hacer esta formula auto incremental    =SI(INDIRECTO("'Casos de Prueba'!I1")="Resultados Ciclo 1"; SI(CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")=0; 0; CONTAR.SI(INDIRECTO("'Casos de Prueba'!I:I"); "OK")); 0)      para que cada vez que copiase y pegase la celda con la formula  se incrementara la letra en este caso la I pasara a J ,como el numero perteneciente a Resultados Ciclo pasando en este caso del 1 al 2.   Tengo también esta formula =CONCATENAR("CP";TEXTO(MAX((SI((ESNUMERO(HALLAR("CP";A$1:A1)))*(A$1:A1<>"");VALOR(EXTRAE(A$1:A1;3;3));0))+1);"000")&" - "&B2) quisiera que no tuviera los 3 ceros si no que fuera por ejemplo CP1 y se fuera incrementando. Gracias un saludo.
    • Con el diseño así como lo tiene en su libro, una fórmula de BUSCARV con COINCIDIR debería ser de utilidad =C5*BUSCARV($C$1,Tabla1[#Todo],COINCIDIR($D5,Tabla1[#Encabezados],0)) Es con lo que participaría en su consulta. Lo que resta es definir que hacer si no encuentra la OT porque así como esta le devolvería error en ese caso, o si tiene condiciones que haya podido omitir también le afectarían el resultado.
    • He cambiado mi macro a este: Sub repetir() Set a = Sheets(ActiveSheet.Name) uf = a.Range("C" & Rows.Count).End(xlUp).Row 'ultima fila con datos ActiveCell.Select ActiveCell.Offset(1, 0).Select   'Application.OnTime Now + TimeValue("00:00:10"), "repetir", , True End If End Sub   Lo que no se es como detenerlo al llegar a la ultima fila con datos de la columna C. Muchas gracias
    • Buenas tardes a todos. Tengo un problema que preciso de vuestra ayuda.  Tengo que controlar los gastos de la oficina que trabajo y he de repartir unos gastos a % según una OT y unos tipos de gastos. Envío un archivo adjunto. Lo que necesito es que lo que aparece en la columna en amarillo lo haga automáticamente, teniendo en cuenta los datos de la tabla a la derecha. Por ejemplo, el primer gasto tiene una cuota de 1477 euros y teniendo en cuenta que es un gasto de tipo Común y que la OT es la 12810234, le corresponde un gasto de 605,57 euros ya que según la tabla de la derecha su % a imputar es de un 41%. ¿alguien me puede ayudar con la formula? He de añadir muchas más líneas y más hojas con el resto de OT y en el futuro cambiar más datos, así que necesito automatizarlo con una formula Excel. Gracias. Control de gastos.xlsx
  • 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.