Te anexo la macro para filtrar por cualquier encabezado y por fechas
Private Sub CommandButton5_Click()
'Act.Por.Dante Amor
Me.ListBox1.Clear
If Me.cmbEncabezado.ListIndex = -1 Then
MsgBox "Selecciona un encabezado"
Me.cmbEncabezado.SetFocus
Exit Sub
End If
If txtFiltro1.Value = "" Then
MsgBox "Captura un dato"
Me.txtFiltro1.SetFocus
Exit Sub
End If
'
col = Me.cmbEncabezado.ListIndex + 1
filas = Range("a1").CurrentRegion.Rows.Count
porfecha = False
If InStr(1, LCase(cmbEncabezado), "fecha") > 0 Then
porfecha = True
If IsDate(txtFiltro1) Then
fini = CDate(txtFiltro1)
Else
MsgBox "La fecha inicial no es correcta"
txtFiltro1.SetFocus
Exit Sub
End If
If TextBox1 = "" Then
ffin = CDate(txtFiltro1)
Else
If IsDate(TextBox1) Then
ffin = CDate(TextBox1)
Else
MsgBox "La fecha final no es correcta"
TextBox1.SetFocus
Exit Sub
End If
End If
End If
For i = 2 To filas
agregar = False
If porfecha Then
If Cells(i, col) >= fini And Cells(i, col) <= ffin Then
agregar = True
End If
Else
If LCase(Cells(i, col).Value) Like "*" & LCase(Me.txtFiltro1.Value) & "*" Then
agregar = True
End If
End If
If agregar Then
Me.ListBox1.AddItem Cells(i, "A")
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = Cells(i, "B")
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 2) = Cells(i, "C")
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 3) = Cells(i, "D")
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 4) = Cells(i, "E")
End If
Next
End Sub
.
'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias
.
Avísame cualquier duda
.