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???

Añade tu respuesta

Haz clic para o