Olá amigos, preciso de uma ajuda de vocês!
Eu tenho um banco de dados (tabela básica que inputa entrada de uma outra tabela de cadastro) criado em uma planilha do excel. Em uma outra aba, através de uma lista de validador de dados, a pessoa escolhe um valor e o vba consulta no banco de dados aquele cadastro e informa ao usuário.
Problema:
Na parte da consulta parece estar funcional porém, tem uma linha que ora funciona ora não (sem fazer nenhum tipo de alteração, parece coisa de gnomos loucos.)
Alguém tem uma luz do porque dá erro? E porque dá erro só as vezes?
Public Sub Consulta()
Dim n, sNulos As Integer, rng2 As Range
Application.ScreenUpdating = False
n = KeyCells.Value
Worksheets("BD_ToDo").Select
ActiveSheet.ListObjects("bd_todo_tabela").Range.AutoFilter Field:=1, _
Criteria1:=n
'Verificar se está vazio
Set rng2 = ActiveSheet.AutoFilter.Range (########### ESTA LINHA QUE DÁ ERRO AS VEZES ##########)
sNulos = rng2.Columns(1).SpecialCells(xlCellTypeVisible).Count - 1
If sNulos = 0 Then
MsgBox "Nenhuma atividade encontrada"
'KeyCells.Value = ""
Worksheets("BD_ToDo").ListObjects("bd_todo_tabela").Range.AutoFilter Field:=1
Else
'MsgBox "Teste"
ActiveSheet.AutoFilter.Range.Offset(1, 1).Copy
'Range("bd_todo_tabela").Select
'Selection.SpecialCells(xlCellTypeVisible).Select
'Selection.Copy
Worksheets("ToDo").Select
Range("TODO_ENTRADA3").Offset(0, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End If
Worksheets("BD_ToDo").ListObjects("bd_todo_tabela").Range.AutoFilter Field:=1
Worksheets("ToDo").Select
Range("K5").Select
Application.ScreenUpdating = True
End Sub