
Ola Felipe, obrigado por ter-me atendido .
Ate onde entrar no editor explorer para VBA, ja tinha assimilado, mas como se ve no anexo acima,os locais para escrever os codigos tem em Module, Sheet e This Wokbook, certo?, fora outros como Class ou User Form que nao questionei.Se por exemplo eu escrever
uns codigos simples no Sheet1 e quiser referir o Range("a1") do Sheet1 nao precisa adicionar nada alem do Range("a1").select,por exemplo, porem se quiser referir a mesma celula no Sheet2 teria que escrever Worksheets("Sheet1").Range("a1").Select,
correto? e se tivesse escrito os codigos no Sheet2 para referir a uma celula do Sheet1 teria que escrever Worksheets("Sheet1").Range("a1"), e caso escrevesse os codigos em This Workbook ou Module, para referir uma celula em qualquer que seja os Sheets teria
que identificar , obviamenete, de qual Workbooks("nomebook") e qual Worksheet("nomedasheet"), nao e verdade? se asim for, entao e melhor escrever os codigos numa sheet que mais tem acessos de dados para omitir nos comandos as referencias do Workbooks("nomearquivo").worksheets("nomedasheet"),
nao e? Eu ainda nao entendi para que serve esse This Wokbook e Module....
Outra pergunta que ficou sem resposta foi de :
Tenho dois arquivos abertos "dados" e "cartao ponto" e escrevi os codigos abaixo no This workbook do arquivo "cartao ponto". Com o arquivo cartao ponto ativado depurei o programa com F8 e vi que o Autofilter funcionou mas o passo seguinte do select nao funcionou
e queria saber o porque. O Natan que estava dando orientacao para mim disse para usar o ws.Activate, mas eu queria saber porque o autofilter funcionou sem ativar o ws?
Na verdade, no lugar desse select, vou usar o copy, e do jeito que ele estava sugerindo teria que ativar o arquivo dados e fazer o copy, depois voltar a ativar o arquivo cartao de ponto e colar, certo, sao passos a mais que gostaria de evitar pois tem muitos
dados.
Tadao
Dim ws As Object
Dim wst As Object
Set ws = Workbooks("dados").Worksheets("sheet1")
Set wst = Workbooks("cartao ponto").Worksheets("sheet1")
ws.Range("a1").AutoFilter 4, "<>" <----------ate aqui funcionou certo
'ws.Range("a1").CurrentRegion.Select <-----com esse codigo deu erro
ws.Activate <--------------------------------tive que usar Activate que eu queria evitar....
Range("a1").CurrentRegion.Select
ws.AutoFilterMode = False
Workbooks("cartao ponto").Worksheets("sheet1").Activate
P.S. A pergunta de Onde devo escrever os codigos....... surgiu porque vi num dos Forum (nao me lembro qual) de que um participante em apuros pedia ajuda, por nao saber o motivo do codigo que ele escreveu nao funcionar direito. Dai a pessao do Forum que estava
dando suporte para ele, disse que para mim o mesmo codigo rodou redondo....dai a pessoa que estava em apuros lembrou que a 3 anos atras um companheiro do trabalho dos EUA tinha alertado para escrever os programas em tal local e ele corrigiu o erro , e a pessao
do suporte disse que nao tinha notado desse pormenor pois ele sempre escreveu os codigos no..............Como eu estou entrando firme agora no VBA, gostaria de entrar com PE DIREITO para amanha nao me desanimar por nao funcionar uma simples rotina....
Desde ja agradeco mais uma vez pela sua atencao
Tadao