Excel VBA. Filtrar obligatoriamente por fecha y opcionalmente por 5 textbox
Tengo un formulario en el que a través de varios textbox, un checkbox y un par de dataPicker (fecha), quiero filtrar los datos de una hoja de excel.
El filtro por fecha ya lo he programado, y funciona correctamente, él solo.
Pero ahora quiero que cuando le doy al botón filtrar, me filtre por la fecha, pero también por los textbox o el checkbox, siempre y cuando el usuario haya ingresado datos en cualquiera de ellos.
También he de decir que el contenido de estos textbox no es aleatorio, pues el usuario tiene que elegirlo de unos listbox ocultos a tal efecto.
Primeramente pongo un pantallazo del formulario para que se hagan una idea de por donde van los tiros...
Y lo que viene a continuación es el código para el botón "Buscar", desarrollado unicamente para que filtre por fechas.
Private Sub btnBuscar_Click() On Error Resume Next Me.btnBuscar.Locked = True 'Obtener la ultima fila con datos ultimafila = Application.WorksheetFunction.CountA(Range("A:A")) fechainicio = dtpInicioFecha fechafin = dtpFinFecha If fechafin < fechainicio Then MsgBox ("La fecha de inicio no puede ser mayor a la fecha final"), vbCritical, "AVISO" Exit Sub End If Hoja1.AutoFilterMode = False For i = 2 To ultimafila fechacelda = CDate(Hoja1.Cells(i, 2).Value) If fechacelda >= fechainicio And fechacelda <= fechafin Then Me.lstPresupuestosFiltrados.AddItem Hoja1.Cells(i, 2) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 1) = Hoja1.Cells(i, 3) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 2) = Hoja1.Cells(i, 4) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 3) = Hoja1.Cells(i, 5) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 4) = Hoja1.Cells(i, 6) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 5) = Hoja1.Cells(i, 7) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 6) = Hoja1.Cells(i, 8) Me.lstPresupuestosFiltrados.List(Me.lstPresupuestosFiltrados.ListCount - 1, 7) = Hoja1.Cells(i, 10) End If Next i End Sub
Podrían ayudarme a añadir un código al filtro por fechas, pero que filtre también si alguno de los textbox, o el checklist, o todos a la vez, o ninguno.... Tienen contenido???