Boa noite, @evilmaax
Não há nada na macro que seja exclusiva da versão 365, portanto deve-se investigar outros pontos.
Sempre que possível, evite desabilitar a armadilha de erro em seu código. E se o fizer, lembre-se sempre de rearmá-la imediatamente após a instrução que o código precisou fazer "vistas grossas" para o erro. E no seu projeto, na Sub realceSelecao, vc desabilita duas vezes em seguida (?) e não reabilita mais.
Não dá pra afirmar que o problema está nisso, pois teria que analisar seu arquivo pra saber mais. Mas o trecho:
...
On Error Resume Next
ActiveSheet.Shapes("RectangleV").Delete
On Error Resume Next
ActiveSheet.Shapes("RectangleH").Delete
'Ajuste dos shapes retangulos
...
Poderia ser substituído por:
...
On Error Resume Next
ActiveSheet.Shapes("RectangleV").Delete
ActiveSheet.Shapes("RectangleH").Delete
On Error GoTo 0
'Ajuste dos shapes retangulos
...
Tem outros pontos que poderiam ser revistos, mas fariam apenas diferença na performance do que no funcionamento em si.
Também nessa rotina, qual a utilidade de Target como parâmetro se ele não é consumido?
Pq a necessidade de desproteger e voltar a proteger não só a planilha, mas também o Workbook a cada vez? (veja também no help do método Protect o uso do argumento UserInterfaceOnly)
Pq deletar a RectangleV e recriar em seguida?
Range(Target.Address) é o mesmo que simplesmente Target
Postado : 15/08/2020 11:36 pm