Notifications
Clear all

Travando com a mesma linha de comando

4 Posts
1 Usuários
0 Reactions
965 Visualizações
(@hfava)
Posts: 43
Eminent Member
Topic starter
 

Galera,

Não sou o expert em Macros, e sei que meu Frankestein tá pesado (o arquivo está com 4mb) e ta travando a cada 2-3 saves (to com um i3 tbm, aqui no serviço, isso não ajuda)
O meu questionamento é:
Estou fazendo um autofilter para selecionar um grupo de dados. Para a aba 1, o código roda. Para a aba 2, os inputs são os mesmos em células diferentes, mas a busca é a mesma. Ta dando erro de Range ?!?!?
Eu não entendi nada, pois eu copiei a mesma linha na Sub de baixo, a aba ta com select e eu desabilitei qualquer filtro antigo. Os fields são os mesmos, e as referencias dos fields estão funcionando.
O mais estranho não é isso!
Se eu rodar qualquer macro antiga, funciona ok! (Na velocidade 1 mas funciona)
Se eu rodar essa macro, da esse erro e se eu cancelar, e voltar pro excel, não consigo selecionar nenhuma célula, ou mesmo mudar de aba. Trava geral!!! Somente com essa macro.
Ai, se eu fechar (Alt+F4) ele não fecha, fica pensando infinito.

De novo, sei que não sou o guru das macros, mas a linha de comando é repetida de uma sub acima.

Alguém faz alguma noção?

Eu coloquei outro tópico relacionado o tamanho bizarro do arquivo, e consegui corrigir com a ajuda da turma aqui (excesso de linhas na busca e uso da macro).

Obrigado de antemão

 
Postado : 23/03/2017 12:04 pm
(@hfava)
Posts: 43
Eminent Member
Topic starter
 

As Worksheets eu deixei explict

Sub PuxarNF()

Rprt2.Select
iCNPJ = Range("A2")
iU1Rprt2 = Range("A1048576").End(xlUp).Row
iR = 2

While iR <= iU1Rprt2
Dim CRdz As Variant
Set CRdz = Cells(iR, 3)
iTotalNF = Application.CountIfs(XMLdb.Columns(26), iCNPJ, XMLdb.Columns(31), CRdz)

XMLdb.Select
ActiveSheet.AutoFilterMode = False
Rows(1).AutoFilter field:=26, Criteria1:=iCNPJ, field:=31, Criteria2:=CRdz, Operator:=xlFilterValues

iNota = 1
While iNota <= iTotalNF
iNFNo = Application.Match(iCNPJ & CRdz, XMLdb.Columns(34), 0)
XMLdb.Cells(iNFNo, 4).Copy
Rprt2.Cells(iR, 10).PasteSpecial xlPasteValues
Application.CutCopyMode = False

iNota = iNota + 1
Wend

iR = iR + 1

Wend

End Sub

 
Postado : 23/03/2017 12:27 pm
(@hfava)
Posts: 43
Eminent Member
Topic starter
 

Tentei com Activesheet.AutoFilterMode = False e depois True, na sequencia, e deu o erro

"Erro em tempo de execução '1004':
Não é possível definir a propriedade AutoFilterMode da Classe Worksheet"

Mas eu faço filtros normalmente na aba XMLdb

Obrigado!

 
Postado : 23/03/2017 1:05 pm
(@hfava)
Posts: 43
Eminent Member
Topic starter
 

Tirei esse comando e foi
Operator:=xlFilterValues

 
Postado : 23/03/2017 1:51 pm