Código do Excel countif vba com critérios resultantes com valores

Não tenho certeza se o que eu quero alcançar é possível. Então aqui está:

Eu tenho pasta de trabalho com 2 folhas:

A primeira folha contém dados brutos com funcionários e treinamentos que eles realizaram ou não (eles não puderam comparecer ao treinamento). O Sheets contém algumas colunas como: nome, ID especial (diferente para cada empregado), 2 colunas em branco, presença (sim / não) e pouco mais ...

A segunda planilha criará um relatório com base nos critérios de intervalo e presença.

Tecnicamente é algo assim:

Folha de relatório tem lista de funcionários, eles serão filtrados usando autofilter. Esses funcionários filtrados serão verificados se estiverem em 14 categorias de treinamentos. As categorias diferem com o intervalo (os intervalos são conhecidos; os intervalos de tempo serão adicionados ou ajustados aos novos treinamentos adicionados).

Meu problema: É possível criar código vba que irá verificar se o empregado estava em certos treinamentos (contagem em determinado intervalo com condição: não presente = não conta) e cole o valor para certas células? Se você puder, dê alguns conselhos sobre como fazer isso? Eu não estou pedindo código pronto.

Tentando fazer isso funcionar, mas eu me prendi a isso. Erro na linha "if cells.find ...".

Sub Check()

MyRange = Range("A1", Selection.End(xlDown))

For Each MyCell In MyRange
With Range("pp2dni2007")
    If Cells.Find(MyCell.Value) Is Nothing Then

    Else
        If ActiveCell.Value = ActiveCell.Offset(0, 3).Value Then
        MyCell.Offset(0, 6).Value = 1

        Else
        MyCell.Offset(0, 6).Value = 0

        End If

    End If

End With
Next

End Sub


2ª edição, o código anterior fazia loop infinito. Agora, acho que as declarações if fazem referência a um intervalo errado, mas não sabem como lidar com isso.

Sub Check()

Dim MyRange As Range, MyCell As Variant

Range("A1").Select

Set MyRange = Range(Selection, Selection.End(xlDown)).Rows.SpecialCells(xlCellTypeVisible)

For Each MyCell In MyRange.Cells
    With Range("pp2dni2007")
        If .Cells.Find(MyCell.Value) Is Nothing Then

        Else
            If .Cells.Find(MyCell.Value).Value = .Cells.Find(MyCell.Value).Offset(0, 3).Value Then
            MyCell.Offset(0, 6).Value = 1

            Else
            MyCell.Offset(0, 6).Value = 0

            End If

        End If

    End With
Next

End Sub

Exemplo de pasta de trabalho:https://dl.dropboxusercontent.com/u/7421442/sample%20workbook%20(1).xls

questionAnswers(1)

yourAnswerToTheQuestion