Creio que falar simplesmente que pode acontecer erro nos levaria a conclusões equivocadas
Amigo, primeiramente, desculpe, não quis criticar o teu código, ou qqr outra coisa do tipo.
'Faz pouco tempo que eu comecei a mexer com VBA. No começo era um sacrifício, pq tive que me virar pra resolver problemas, e só depois de um tempo fiz um curso (básico). Mas, no meu serviço atual, sempre que se fala em planilha, sou eu que faz e resolve. Isso não é minha função, mas sou o mais indicado. Não me importo em fazer, mas, como tenho prazos pra cumprir, eu não posso perder muito tempo fazendo esses "extras" (as planilhas).
Assim, quando eu encontro algum erro ou dificuldade em alguma parte, embora eu queira saber porque gerou aquele erro, eu prefiro procurar outra forma de fazer o código e resolver logo o problema. Além disso, eu já tive casos de fazer certo código, testar, tudo funcionar corretamente, e depois de 2 o 3 dias sem abrir a planilha, o código parar de funcionar ou gerar erro, sem nenhuma alteração ter sido feita. (E até hoje não sei porque isso aconteceu).
O que posso te dar de exemplos de erros que tive:
1.
Tentar usar intersect, pra mim funciona mito bem quando uso o evento Selection_Change, mas nunca consigo usar no evento Change. O problema é que todo mundo usa intersect com o evento Change. Eu já copiei alguns códigos e tentei usar, mas não dá. Minha solução foi trocar o [b/]intersect por target.row e target.column.
2.
Já vi muitos problemas com o uso do comando:
Range("A1") = "teste"
Por isso, para evitar esse erro, uso sempre:
Range("A1").Value = "teste"
Não apenas para atribuir o valor, mas também para pegar o valor. E não apenas com células.
3.
Já tive vários problemas com o uso de comandos como:
Range("A" & alguma_variável)
Por isso prefiro sempre utilizar:
Cells(alguma_variável, 1)
4.
Também já tive problemas de erro no código por "estouro de pilha". O código em si, não causava tinha nenhum erro, porém, em algum momento o computador não conseguia mais prosseguir e travava.
5.
Recentemente tive um problema utilizando validação de dados + controle de eventos. Eu criei uma validação seletiva para uma coluna L e um evento "Change" para a coluna E. Simplesmente, o uso da validação gerava erro no código. Resultado: deixei uma validação simples, e coloquei uma facilidade via código para a coluna L.
6.
Recentemente tive um problema com o uso de onkey e os eventos de EstaPasta_de_Trabalho. Cada vez que a minha chefe alternava entre 2 "pastas de trabalho", ela recebia uma mensagem de erro. Os 2 grandes problemas são:"isso só acontecia com ela, e não comigo; o código trazia uma mensagem de erro, mas funcionava corretamente. Ou seja, não houve "erro", mas havia a mensagem de erro.
7.
Já tive uma mensagem de erro semelhante a esse:
Sub teste()
On error goto FIM
[código]
FIM:
End sub
O erro se deu na linha On error goto FIM O que fazer????
8.
Já tive muitos problemas tentendo definir ranges de uma forma parecida como a que vc indicou, usanto set, por isso eu evito utilizar.
Em todos esses casos (e outros que me ocorreram), eu sempre mando depurar, sigo o código linha a linha. Quando o erro é na construção do código, eu refaço. Mas, quando é um erro onde "tal comando deveria funcionar", eu fico sem resposta. Sei que não é o melhor caminho, mas uma coisa que aprendi em Excel é que, como diz o Fernando Fernandes "existem mil maneiras..." de fazer alguma coisa. Mesmo não sabendo explicar porque algumas delas nem sempre funcionam, eu vou seguindo com as que não me dão transtornos e escolho elas como mais confiáveis.
O que comecei a fazer recentemente, é "programar no meu Excel". Criei vários módulos na minha Pasta de trabalho pessoal de macros onde eu vou mantendo códigos que sempre utilizo, ou linhas de comando que considero "chatas" de ficar escrevendo.
Abraço
Lembre-se de AGRADECER aos que te ajudaram, e de marcar o tópico como [Resolvido]
Gente que cuida de gente.
Gilmar