Ir para conteúdo
  • Cadastre-se

A partir do dia 19/11/2018, o foco do Fórum do BABOO é apenas Windows e Segurança Digital conforme informado no início de 2018.
As áreas que não têm relação com esses dois assuntos foram arquivadas e seus tópicos estão disponíveis para consulta na área Tópicos Antigos.

Conheça as novidades de 2019 para o BABOO e Fórum do BABOO

marcosbh35

Renomear a planilha e as fórmulas de referencia.

Mensagem Recomendada

Pessoal, 

 

Estou com uma dúvida no excel, que é o seguinte tenho 3 planilhas 

 

1º quinzena Mar 13

2º quinzena Mar 13

Resultado Mar 13

 

Na planilha 2º quinzena Mar 13, faço referente com a seguinte fórmula ='1º quinz MAR 13'!A5, até aqui tudo certo.

 

O problema é que preciso de copiar ambas planilhar e o seu nome modifica e as formulas também precisam se modificar

 

1º quinzena ABR 13

2º quinzena ABR 13

Resultado ABR 13

 

A fórmula que faz referencia deveria mudar para ='1º quinz ABR 13'!A5

 

Como eu faço para que todas as referencias modifiquem.

 

Att..

 

Marcos

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Solução por meio de UDF:

Instale a função abaixo em um módulo comum, assim:
1. copie a função daqui
2. no Excel digite 'Alt+F11' para abrir o editor de VBA
3. no menu do editor Inserir >> Módulo
4. cole a função na janela em branco que vai se abrir
5. done! Alt+Q para retornar para a planilha


Function PlanEsq() As String
    Application.Volatile True
    PlanEsq = Application.Caller.Parent.Parent. _
      Worksheets.Item((Application.Caller.Parent.Index)
- 1).Name
End Function



Em qualquer célula da planilha de interesse coloque a fórmula abaixo:
=INDIRETO("'"&PlanEsq()&"'!A5")

O resultado será igual ao conteúdo de 'A5' da planilha situada à esquerda da planilha na qual for colocada a fórmula.

O dígito em vermelho determina a posição relativa da planilha de origem do dado. Assim, substituindo por 0 (zéro) refere-se à própria planilha que aloja a fórmula, colocando -3 refere-se à terceira planilha à esquerda, colocando +5 refere-se à quinta planilha à direita.

Neste último exemplo a função ficaria assim:

Function Plan5Dir() As String
    Application.Volatile True
    PlanEsq = Application.Caller.Parent.Parent. _
      Worksheets.Item((Application.Caller.Parent.Index)
+5).Name
End Function


e a fórmula:
=INDIRETO("'"&Plan5Dir()&"'!A5")

obs.
1. Ao fazer cópias das planilhas com as fórmulas mantenha as guias dessas cópias na mesma sequência em que estavam as planilhas copiadas.
2. A função acima, a ser instalada em um módulo comum, será instalada uma única vez e funcionará em todas as planilhas do arquivo, existentes e futuras.
 


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi o problema de forma diferente...

Posso estar interpretando mal, mas acho que não precisa fazer macro pra isso.

 

Basta refazer as referências.

 

No seu exemplo, a planilha 2º quinzena ABR 13 vai estar buscando dados da 1º quinzena Mar 13, certo?

 

Vai em Arquivo e lá no canto direito tem a opção "editar links"

(não sei se vai aparecer exatamente isso, pq meu excel é em inglês e fica "edit links to file")

Daí vai abrir uma janela. você seleciona a 1º quinzena Mar 13, clica em mudar fonte ("change source") e redireciona para 1º quinzena ABR 13.

Todas as células que buscavam referência em 1º quinzena Mar 13 vão passar a buscar em 1º quinzena ABR 13

 

Mesmo que essa solução não faça update automático de futuras cópias, acho melhor fazer isso, se você não souber usar o VBA.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Posso estar interpretando mal, mas acho que não precisa fazer macro pra isso.

 

Tem razão. Não necessita de UDF.

Fiz outros testes aqui e notei que há uma diferença no comportamento das referências das fórmulas se as planilhas forem copiadas uma por vez e se forem copiadas em bloco.

Assim, copiando uma planilha por vez, as referências não se alteram nas fórmulas. Neste caso pode-se aplicar a solução que vc sugeriu (não testei).

No entanto,copiando as planilhas em bloco, ou seja, a planilha que contém a fórmula juntamente com a planilha referenciada pela fórmula, a referência se altera e passa para a cópia.

Neste caso as referências são automaticamente atualizadas ao mudar o nome da planilha referenciada pela fórmula, não necessitando portanto de qualquer ação complementar (e nem de UDF...).

 


 

Osvaldo

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×