Uma maneira um pouco mais limpa de construir a "folha de impressão"
que mostrará o conteúdo de uma das outras 50 folhas
é definir a célula A1
para
=INDIRECT($M$1 & "!A1")
que cria uma string de texto
que parece o nome qualificado da célula que você deseja ver
e, em seguida, usa a função INDIRECT()
para desassociar essa cadeia
(isto é, tratá-lo como um endereço de célula
e recuperar o conteúdo da célula identificada).
Com isso, você não precisará alterar sua (s) fórmula (s)
quando você adiciona Form51
. Advertências:
- Isso pode fazer com que o Excel faça muito trabalho
(isto é, gastar muito tempo) "recalculando" essas células indiretas
sempre que qualquer coisa for alterado (não apenas
M1
).
Não tenho certeza se seria pior do que você tem agora.
- Evite a tentação de alterar dados ou inserir novos dados
na "folha de impressão" quando quiser atualizar
Form42
.
(Claro, você tem esse problema agora.)
Você pode ser capaz de se proteger de tais acidentes
protegendo a folha de impressão.
Existem outras maneiras de construir a folha de impressão; por exemplo, usando VBA para
- crie uma função definida pelo usuário que pode substituir a chamada
INDIRECT()
,
mas operar mais suavemente, ou
- copia todos os dados de
Formnn
para a folha de impressão
sempre que você alterar M1
.
Você pode contar as alterações escrevendo uma rotina Worksheet_Change
VBA.
Não conheço nenhuma maneira de a lógica da folha poder contar / detectar
quando você imprimi-lo. No entanto, você pode conseguir o efeito desejado
escrevendo uma rotina de impressão no VBA.
Um
PrintOut , , , True
declaração irá imprimir a folha para você;
adicione quaisquer outras ações desejadas (por exemplo, incrementar um contador).
(Você só precisa se lembrar de imprimir usando essa macro .)
O quarto parâmetro para PrintOut
é Visualizar , definido como True
fazer com que o Microsoft Excel invoque a pré-visualização da impressão antes de imprimir a folha
(dando-lhe assim a opção de cancelar)
ou False
(ou omitido) para imprimir a folha imediatamente, incondicionalmente.
Veja Como adiciono o VBA no MS Office?
para informações sobre, bem, você sabe.