none
erro em tempo de execução '1004': Nenhuma célula foi encontrada. RRS feed

  • Pergunta

  • Bom dia,

    Tenho uma macro que exclui linha com base em critérios de uma planilha. Tudo funciona normalmente, só que depois de algum tempo o mesmo código não consegue localizar o critério e aparece uma mensagem de erro em tempo de execução "1004" dizendo que o critério não foi localizado com a seguinte mensagem "nenhuma celula foi encontrada".

    O interessante é que ele se encontra na planílha. 

    O código é esse:

    Sheets("PLAN1").Select
    
    
    
    Let col = "A"
    If Len(col) > 0 And Not col Like "*[!0-9]*" Then col
     = Val(col)
    Let wold = DTPicker1.Value
    With Columns(col)
    
    
    
    .Replace wold, "#N/A", xlWhole
    
    
    
    
    .SpecialCells(xlCellTypeConstants, xlErrors).EntireRow.Clear
    End With

    Eu tenho um userform que possui um controle DTPicker1 que serve como critério para apagar a linha. Uma observação que esqueci de relatar é que isso foi identificado por min ainda na plataforma do VBA. É muito estranho a macro estava funcionando corretamente, então fui utilizar outras planilhas, mas não fechei a plataforma do vba. Quando fui testar novamente a macro, a mensagem de erro apareceu.

    Apartir daí fiquei tentando resolver o problema, para ver o que é que fazia com que isso acontecesse. Foram duas semanas sem sucesso, mas consegui observar alguns fatores:

    1º O erro ocorre quase todas as vezes em que eu abro a planilha e deixo a plataforma vba aberta. Talvez ele possa ocorrer em outros eventos também. A partir daí eu consigo testar a macro por um tempo até que a mensagem de erro apareça.

    2º Esse erro fica permanente, só desaparece quando fecho e abro a planilha novamente.

    3º Com o erro em ação eu inseri um CommandButton na planilha para chamar o userform e para minha supresa a macro funcionou. Não sei se após também algum tempo ela poderá falhar do mesmo jeito.

    4º Quando o problema ativo tentei abrir uma outra planilha que também possui a mesma função. a função da outra também falhou.

    5º O mais curioso é que o critério para a pesquisa existe na planilha e mesmo assim aparece essa mensagem de erro.

    6º Tentei mudar o código, fiz o teste com mais dois códigos. O 1º tem a mesma função mais utiliza o filtro.

    Sheets("PLAN1").Select
    
    
    
    Dim LR As Long
        With ActiveSheet
            .UsedRange.AutoFilter Field:=1, Criteria1:=DTPicker1.Value
                LR = .Cells(.Rows.Count,
     2).End(xlWhole).Row 
                    If LR = 1
     Then GoTo vazaí
            
           
            '.Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).
     _
               'EntireRow.Clear
    
    
    
    
    .Range("A2:A" & LR).SpecialCells(xlCellTypeVisible).EntireRow.Clear
    
    
    vazaí:
            .AutoFilterMode = False
        End With


    2º CÓDIGO

    Sheets("plan1").Select
    
      Dim criterio As Date
      criterio = DTPicker1
      Dim lRow As Long
        Dim lLast As Long
    
        lLast = Plan1.UsedRange.Rows.Count
    
        For lRow = lLast To 2 Step -1
            If Plan1.Cells(lRow, "A") =
     criterio Then
                Rows(lRow).Clear
            
      
        
        End If
        Next lRow
    Exit Sub

    Com o problema ocorrendo no código citado inicialmente, testei esse dois e para minha supresa eles funcionaram. Porém decidi testar mais algumas vezes durante uns dois dias, mas eles também falharam. O interessante é que estes falham com menos frequencia. Durante os testes a falha somente ocorreu uma vez.

    Já declarei os dados para ver se era isso que causava o erro, mas sem sucesso.

    dim x as date
    
    x = DTPicker1
    A mensagem de erro é essa!

    erro em tempo de execução '1004': Nenhuma célula foi encontrada.

    Álguém me ajude por favor!!

    A versão do vba é do excel 2007

    sexta-feira, 4 de março de 2016 17:01