Certamente você pode usar rotina (s) VBA para automatizar a maioria das atividades isso pode ser feito manualmente (e pode ser descrito objetivamente). Algumas abordagens amplas vêm à mente:
- Construa sua abordagem atual de ter um arquivo de modelo com as fórmulas predefinidas. Adicione o VBA a esse arquivo para automatizar o que você está fazendo agora: Copie as fórmulas do modelo para o arquivo gerado. Esta pode ser a melhor abordagem (mais fácil), especialmente se você espera mudar as fórmulas de análise / avaliação - e especialmente se você precisar permitir que seus colegas de trabalho modifiquem o modelo.
- Crie um novo arquivo do Excel que contenha apenas VBA. Incorpore as fórmulas de planilha do Excel desejadas no VBA como dados. Isso automatizaria a ação de digitar as fórmulas na nova planilha. Essa abordagem pode facilitar a adaptação das fórmulas aos dados existentes.
Claro, não é um ou outro; você pode criar uma solução híbrida que combine aspectos do acima.
Você deve ver Como adiciono o VBA no MS Office? para obter informações gerais. Isso descreve como ativar a guia "Desenvolvedor" na sua faixa de opções. Se você não conhece o VBA, uma boa maneira de começar é clicar em "Gravar Macro" na guia "Desenvolvedor", escolha um nome e clique em "OK", percorrer as ações que você deseja gravar / automatizar, e depois clique em “Stop Recording” (que é o mesmo botão que “Record Macro”). Eu me lembro que, dez ou vinte anos atrás, macros foram gravadas e armazenadas como seqüências / scripts de pressionamentos de tecla; agora eles são traduzidos para o VBA equivalente.
Você provavelmente desejará editar o código para torná-lo à prova de balas. Ensinar você VBA está além do escopo deste site, mas me ocorreu que você gostaria de "encontrar" dinamicamente a planilha onde você quer colocar as fórmulas em lata. Aqui está uma abordagem para fazer isso:
Set curw = ActiveWindow
Set curs = ActiveSheet
For Each w In Windows
w.Activate
For Each s In Sheets
s.Activate
If Range("A1") = "Month" And Range("B1") = "Employee" _
And Range("C1") = "WorkHours" Then
' This is the sheet where I want to put the analysis/evaluation formulas.
If Range("D1") = "" And Range("E1") = "" And Range("F1") = "" _
And Range("G1") = "" Then
' Put the formulas here.
Else
MsgBox "There’s already something here!"
End If
End If
Next s
Next w
curw.Activate
curs.Activate
Se você pesquisar este site e outros recursos, você encontrará muitos exemplos de como determinar quantos dados já está na planilha de destino (para que você possa estender suas novas colunas para corresponder).
Você pode dizer aos seus colegas de trabalho para abrir o arquivo de modelo e execute uma macro para executar a macro para instalar as fórmulas. Você pode criar um botão para poupar o incômodo de precisar navegar pelos menus. Consulte também Como armazenar macros VBA para o Office 2007 tê-los sempre disponíveis e compartilhá-los com os outros? para obter informações sobre como disponibilizar a macro para seus colegas de trabalho sem precisar abrir o arquivo de modelo.