Bom dia a todos,
Sou iniciante no VBA e estou com um grande problema. Trabalho com uma "pasta de trabalho" contendo vária planilhas que são replicadas e renomeadas constantemente e seus cálculos são um pouco custosos (e não dependem de nada de outras planilhas, toda a entrada de dados é feita apenas na planilha ativa), assim estou tentando fazer um código em VBA para habilitar o cálculo apenas na planilha ativa.
Inicialmente pensei em declarar uma variável global contendo o nome da planilha e, no evento de ativar a planilha, ela desativa o cálculo na planilha endereçada na variável, seta a variável para a planilha recém ativada e ativa o cálculo na mesma. O código que tentei usar para fazer tal função foi: Em um módulo (li que variáveis globais não poderiam ser declaradas em ambientes que não fossem módulos):
Public pln As Worksheet
No wokbook (coloco o valor inicial da variável):
Private Sub Workbook_Open() Set pln = Application.ActiveWorkbook.ActiveSheet End Sub
Em cada planilha:
Private Sub Worksheet_Activate() pln.EnableCalculation = False Set pln = Application.ActiveWorkbook.ActiveSheet pln.EnableCalculation = True
End Sub
O problema é que não funciona, o excel me apresenta o seguinte erro:
Outra dúvida é o seguinte, se eu estiver apenas com algum erro simples de sintaxe ou coisa do gênero, essa lógica que tentei seguir funcionaria mesmo renomeando a planilha ativa ? Existe alguma forma mais simples ou objetiva de fazer essa função ? (o cálculo manual está descartado nesse caso, preciso que o cálculo das planilhas seja automático) Desde já, grato pela atenção.