Fórmula contar.si VBa, como aplicarla de manera correcta

Nuevamente necesito de su ayuda

Tengo la siguiente fórmula

Private Sub CommandButton1_Click()
Dim n As Integer
ActiveSheet.Range("$A$1:$O$377").AutoFilter Field:=3, Criteria1:= _
ComboBox2.Value
ActiveSheet.Range("$A$1:$O$377").AutoFilter Field:=7, Criteria1:= _
ComboBox1.Value
Range("M2").Select
Range(Selection, Selection.End(xlDown)).Select
n = Application.WorksheetFunction.CountA(Selection)
Range("P5").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(n:13,""pendiente"")"

End Sub

Mi problema esta en el contar. Si

No logro encontrar la forma de que me considere n como el numero de filas que deseo contar

Ese es el ultimo código que intente e intentado de variadas maneras pero no lo logro

1 Respuesta

Respuesta
2

Cuando las filas están filtradas, debes utilizar la fórmula Subtotal( )

Además del filtro quieres contar únicamente las que digan "Pendiente".

¿El resultado lo quieres en la celda P5? Es que si filtras y la fila 5 se oculta, no podrás ver el resultado.

Me explicas qué necesitas filtrar y qué quieres contar. Si es posible con ejemplos o con una imagen, para que sea más claro. También puedes aclarar en dónde quieres el resultado.

Prueba el siguiente código para ver si es lo que necesitas

Private Sub CommandButton1_Click()
    Dim n As Integer
    u = Range("C" & Rows.Count).End(xlUp).Row
    ActiveSheet.Range("$A$1:$O$" & u).AutoFilter Field:=3, Criteria1:= _
        ComboBox2.Value
    ActiveSheet.Range("$A$1:$O$" & u).AutoFilter Field:=7, Criteria1:= _
        ComboBox1.Value
    u = Range("C" & Rows.Count).End(xlUp).Row
    If u < 2 Then
        MsgBox "No hay registros que cumplan el filtro"
    Else
        cuenta = 0
        For i = 2 To u
            If Cells(i, "M").EntireRow.Hidden = False Then
                If Cells(i, "M") = "Pendiente" Then
                    cuenta = cuenta + 1
                End If
            End If
        Next
        MsgBox "Pendientes = " & cuenta
    End If
End Sub

Sal u dos. Dante Amor, si es lo que necesitas, no olvides valorar la respuesta.

Funciona a la perfección, ahora me faltaría hacer que cuente todas las celdas 

en las cuales hay "pendientes" y "finalizadas"

Gracias nuevamente !!!

Cambia esta línea:

If Cells(i, "M") = "Pendiente" Then

Por esta:

If Cells(i, "M") = "Pendiente" or Cells(i, "M") = "Finalizada" Then

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas