Te anexo el código completo para los 3 filtros.
Al parecer las personas las tienes en un listbox con la propiedad multiselect, para poder seleccionar varias personas.
Actualiza en el código los nombres de los controles (Listbox1, TextBox y OptionButton), por los nombres de tus controles. Puse comentarios en el código para que identifiques cuáles controles actualizar.
Private Sub CommandButton1_Click()
Dim lmf As MSForms.ListBox
Dim i As Long, j As Long
Dim fec As Boolean, per As Boolean
Dim ini As Date, fin As Date
Dim drl As Variant
Dim dic As Object
'
Set dic = CreateObject("Scripting.Dictionary")
Set lmf = ListMuestraFiltrados
lmf.Clear
'Validaciones
If OptionButton1 Then 'por fecha
With TextBox1
If .Value = "" Or Not IsDate(.Value) Then
MsgBox "Falta por Fecha"
Exit Sub
End If
fec = True
ini = CDate(.Value)
fin = CDate(.Value)
End With
End If
'
If OptionButton2 Then 'entre fechas
With TextBox2 'fecha inicial
If .Value = "" Or Not IsDate(.Value) Then
MsgBox "Falta Fecha Inicial"
Exit Sub
End If
ini = CDate(.Value)
End With
With TextBox3 'fecha final
If .Value = "" Or Not IsDate(.Value) Or ini > CDate(.Value) Then
MsgBox "Error Fecha Final"
Exit Sub
End If
fec = True
fin = CDate(.Value)
End With
End If
'
With ListBox1 'Personas
For i = 0 To .ListCount - 1
If .Selected(i) Then
per = True
Exit For
End If
Next
For i = 0 To .ListCount - 1
If per Then
If .Selected(i) Then dic(.List(i)) = Empty
Else
dic(.List(i)) = Empty
End If
Next
End With
'
With ListTablaAccionesDirigidas
For i = 0 To .ListCount - 1
If fec = False Then
ini = CDate(.List(i, 3))
fin = CDate(.List(i, 3))
End If
'DeadLineReal (dlr)
If OptionButton3 Then 'Finalizadas
If .List(i, 5) <> "" Then drl = .List(i, 5)
ElseIf OptionButton4 Then 'Pendientes
drl = ""
Else
drl = .List(i, 5)
End If
'Filtro y Mostrar en ListMuestraFiltrados
If CDate(.List(i, 3)) >= ini And CDate(.List(i, 3)) <= fin And _
.List(i, 5) = drl And dic.exists(.List(i, 2)) Then
lmf.AddItem .List(i, 0)
lmf.List(lmf.ListCount - 1, 1) = .List(i, 1)
lmf.List(lmf.ListCount - 1, 2) = .List(i, 2)
lmf.List(lmf.ListCount - 1, 3) = Format(CDate(.List(i, 3)), "dd/mm/yyyy")
lmf.List(lmf.ListCount - 1, 4) = Format(CDate(.List(i, 4)), "dd/mm/yyyy")
lmf.List(lmf.ListCount - 1, 5) = Format(CDate(.List(i, 5)), "dd/mm/yyyy")
End If
Next
End With
End Sub