Indicar fila inicial y final, según un filtro por mes

Necesito su ayuda con una macro en donde pueda hacer lo siguiente:

1. Filtrar en la columna A un mes que debo ingresar en un Inputbox (ej: todo Mayo aunque no haya datos el día 1ero por ser feriado)

2. De ese filtro indicar cual es la primer fila con datos visibles por el filtro.

3. Indicar cual es la última fila del filtro.

1 respuesta

Respuesta
2

Y cómo quieres indicar que es el primer día y cómo indicar que es el último día.

La intención es que al igual que en los filtros seleccionar el mes (Enero, Febrero...) sino se puede seria ingresar el rango en un cuadro de texto.

Gracias

Disculpa pero sigo sin entender qué necesitas.

En un inputbox qué vas a poner algún número del 1 al 12 o alguna palabra de enero a diciembre.

Después de llenar el input con el mes, ¿qué necesitas?

Lo que necesito es lograr filtrar la información, para que otra macro ya diseñada se ejecute, pero debo filtrar el rango de fechas y que solo lo ejecute en las celdas visibles para que no dure mucho.

Ej: debo filtrar mayo, necesito que la primer fecha con datos de mayo sea la primer fila, que cuente las filas hasta la ultima fila y que ejecute n cantidad de veces fila por fila la macro (n=numero de filas de mayo con datos)

Espero haber sido mas claro. Gracias

Te anexo el código con el input, para que pongas el número del mes del 1 al 12.

La macro filtra la columna A por ese mes.

La macro obtiene el número de fila inicial y el número de fila final.

La macro inicia el ciclo para que pongas tu macro.

Cambia en esta parte de la macro la letra D por la letra de la última columna que quieras filtrar:

ActiveSheet.Range("A1:D" & u).

Sub Filtrar()
'Por.Dante Amor
    mes = InputBox("Números permitidos del 1 al 12, 1=Enero, 2=feb, etc", "INGRESA EL MES")
    If mes = "" Then Exit Sub
    If Not IsNumeric(mes) Then Exit Sub
    If mes >= 1 And mes <= 12 Then
        dia = Day(DateSerial(Year(Date), mes + 1, 1) - 1)
        If ActiveSheet.AutoFilterMode Then ActiveSheet.AutoFilterMode = False
        fec1 = ">=" & Format(mes, "00") & "/01" & "/2015"
        fec2 = "<=" & Format(mes, "00") & "/" & dia & "/2015"
        u = Range("A" & Rows.Count).End(xlUp).Row
        ActiveSheet.Range("A1:D" & u).AutoFilter Field:=1, _
            Criteria1:=fec1, Operator:=xlAnd, _
            Criteria2:=fec2
        '
        'Filas:
        fila_ini = Range("A2:A" & u).SpecialCells(xlCellTypeVisible).Cells(1, 1).Row
        fila_fin = Range("A" & Rows.Count).End(xlUp).Row
        '
        'Ciclo:
        For i = fila_ini To fila_fin
            '
            'Aquí debes poner tu macro
            '
        Next
    End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas