Buscar La Fecha Inicial Hasta La Fecha Final Introducidas En Los Textbox

Estoy buscando una macro que por medio de un form con 2 textBox me busque un rango de fechas; Fecha inicial Fecha final. He encontrado miles de macros en varias páginas pero unas no me funcionan aunque adaptadas (tal vez mi ignorancia en la mateia) y otras ni las entiendo.

Si coloco en textBox fecha inicial 01-08-2015 y en TextBox Fecha final 31-08-2015 quisiera que dentro del ListBox me muestre todos los datos desde la fecha inicial hasta la final

La data donde busca las fechas, contiene líneas entremedio vacías.

Te enviare el libro el cual tiene 2 formularios; 1 para la búsqueda, y otras cosas y otro que es de la barra de progreso. El código para la barra de progreso esta en un modulo

1 respuesta

Respuesta
1

H o l a:

Envíame el archivo para revisar las fechas. Intenta cambiar los textbox por DTPicker o MonthView, si no tienes los controles entonces lo hago con los textbox.

Sal u dos

Ya te lo envíe pero haré el cambio

H o l a:

Te anexo la macro para filtrar en otra hoja y cargar en el listbox

Private Sub cmbBusque_Click()
'Por.Dante Amor
    'Filtrar por fecha
    Dim u As Double, i As Double
    Dim h1 As Object, h2 As Object
    '
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
    Set h1 = Sheets("Ventas")
    Set h2 = Sheets("Temp")
    h2.Cells.Clear
    '
    If DTPicker1 > DTPicker2 Then
        MsgBox "La fecha incial es mayor a la final", vbExclamation, "REVISAR FECHAS"
        Application.ScreenUpdating = True
        Exit Sub
    End If
    '
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    u = h1.Range("E" & Rows.Count).End(xlUp).Row
    h1.Range("A1:E" & u).AutoFilter
    h1.Range("A1:E" & u).AutoFilter Field:=5, Criteria1:=">=" & Format(DTPicker1, "mm/dd/yyyy"), _
                             Operator:=xlAnd, Criteria2:="<=" & Format(DTPicker2, "mm/dd/yyyy")
    If h1.Range("E" & Rows.Count).End(xlUp).Row = 1 Then
        MsgBox "No existen registros", vbExclamation, "REVISAR FECHAS"
        If h1.AutoFilterMode Then h1.AutoFilterMode = False
        Application.ScreenUpdating = True
        Exit Sub
    End If
    '
    h1.Range("A1:E" & u).Copy h2.[A1]
    ListBox1.RowSource = h2.Name & "!A2:E" & h2.Range("E" & Rows.Count).End(xlUp).Row
    If h1.AutoFilterMode Then h1.AutoFilterMode = False
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

sal u dos

OK, muy bien

Te digo:

2. Si cargo el listbox con Rowsource, tengo que poner la información en una hoja.

3. Si creo la hoja para cargar el listbox y después borro la hoja, el listbox envía error, porque los datos están en el listbox pero hacen referencia a la hoja.

4. Por lo tanto, tiene que existir una hoja, ya creé la hoja y su nombre es "temp".

5. La hoja "temp" estará oculta

6. La macro filtra la información de la hoja "ventas" con Autofilter y la copia en "temp"

7. La macro carga de la hoja "temp" en el listbox.

8. Como todos los procesos están encadenado, es decir, no hay una lectura registro por registro, no tiene caso poner tu formulario de Progressform.

2. De la hoja Temp, no hay prob ¿se puede hacer que la hoja Temp, se elimine al cerrar el libro? Seria bueno.

Creo que lo que pasará después, es la creación nuevamente cuando abrir el libro y la hoja no está para cuando necesite filtrar fechas, si no, así queda, te dejo la decisión, no te enrolles.

¿Esta misma podría usarse para que el contenido del List para la Creación de los XLSX Y PDF y luego imprimir el contenido, o ¿piensas hacer que lo haga directo del List?.

3. Ok

5. Si la veo oculta

7. Ahora entiendo. 1º filtra a la hoja y solo después el buscador busca los datos en la hoja Temp y los manda al List

8. Acepto

Perfecto, sol oqueda tu consejo y opinión sobre el 2. 1ª parte.

¿Sigo con la 2ª pregunta?

Dime si te llego la calificación porque por segundos leí que había habido un error al calificar

Es como tu digas, la hoja se puede crear al abrir el libro y borrar al cerrar el libro. Pero esto implicaría que cuando se ejecute la consulta, debe revisar si la hoja se creó, si no está creada entonces se debe crear. Es decir, hay que meter vas validaciones en el código.

Avanza con las peticiones.

Ya llegó la calificación. G racias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas