Como hago un filtro en vba para seleccionar rangos de fecha
Publicado por seba64 (1 intervención) el 13/04/2017 03:06:40
Saludos:
Encontré un código para realizar un filtro, que adapte a mi proyecto. El filtro selecciona completamente las filas que coinciden con el criterio. El criterio es dado por dos combobox fechainicio y fechafin. El filtro es muy rápido, encuentra las coincidencias con el criterio y selecciona la fila con Entirerow.select. Todo funciona bien, pero necesito que en lugar de agregar a la seleccion toda la fila, agregue la celda que esté en la columna F.
La estructura de la hoja es:
codigo area sub area descripcion mes
El proyecto tiene dos combobox: cmbInicio, cmbFin y un boton: Button
El código
Encontré un código para realizar un filtro, que adapte a mi proyecto. El filtro selecciona completamente las filas que coinciden con el criterio. El criterio es dado por dos combobox fechainicio y fechafin. El filtro es muy rápido, encuentra las coincidencias con el criterio y selecciona la fila con Entirerow.select. Todo funciona bien, pero necesito que en lugar de agregar a la seleccion toda la fila, agregue la celda que esté en la columna F.
La estructura de la hoja es:
codigo area sub area descripcion mes
El proyecto tiene dos combobox: cmbInicio, cmbFin y un boton: Button
El código
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Private Sub Button_Click()
Mes = "Enero, Febrero, Marzo, Abril, Mayo, Junio, Julio, Agosto, Septiembre, Octubre, Noviembre, Diciembre"
If cmbInicio.ListIndex > cmbFin.ListIndex Then aux = cmbInicio.ListIndex: cmbInicio.ListIndex = cmbFin.ListIndex: cmbFin.ListIndex = aux
Sheets("Datos").Select
a = cmbInicio.ListIndex + 1: b = cmbFin.ListIndex + 1
For i = a To b
criterio = criterio & Split(mes, ",")(i - 1) & ","
Next i
criterio = Mid(criterio, 1, Len(criterio) - 1)
criterio = Split(criterio, ",")
Range("E:E").AutoFilter field:=1, Criteria1:=criterio, Operator:=xlFilterValues
Range("E2").Select
ActiveCell.Offset(1, 0).Select
If Cells(Columns("E").Rows.Count, "E").End(xlUp).Row > 1 Then
Range(Selection, Cells(Columns("E").Rows.Count, "E").End(xlUp)).SpecialCells(xlCellTypeVisible).EntireRow.Select
End If
Selection.AutoFilter
Application.ScreenUpdating = True
End Sub
- filtro.rar(15,6 KB)
Valora esta pregunta


0