Ir ao conteúdo
  • Cadastre-se

Copiar nome na Caixa de Nome da célula


Ir à solução Resolvido por André Zani,

Posts recomendados

Boa tarde.

 

 

No Excel, um dos recursos que mais gosto e utilizo muito é o de trocar os nomes das células. Como trabalho com muitas abas dentro de um mesmo arquivo e a maioria delas interligada, então prefiro atribuir nomes diferentes às células, de modo que, ao iniciar uma fórmula, eu não precise buscar a aba onde está o dado e clicar na célula específica. Se aquela célula tem um nome criado por mim, basta eu iniciar a fórmula e digitar o nome que eu criei. Acho isso fantástico!

 

Pois bem, com o passar do tempo, minhas abas, por necessidade do cliente, foram ficando mais numerosas e, assim, resolvi criar uma à qual chamei de PREMISSAS. Nesta eu coloco todos os dados que todas as outras planilhas precisarão, de modo que eu posso reduzir o número de dados espalhados. Até aí tudo bem.

 

Porém, o número de dados intercambiáveis cresceu também. Então, para não me perder com os nomes específicos, resolvi criar uma estrutura de nomeação que fizesse sentido, para que, à medida que eu fosse criando fórmulas em outras planilhas específicas, eu pudesse usar a finalidade da planilha para me lembrar do nome que preciso e que está na aba premissas, lááááááá longe, no começo da das abas. Até aí, tudo bem também. Na planilha de PREMISSAS, criei uma coluna à parte com os nomes que desejo colocar nas células com os dados cambiáveis. Aí a briga começou.

 

Acontece que a última aba de PREMISSAS (ver anexo) já têm 332 linhas de dados intercambiáveis. E a única maneira que eu conheço para trocar o nome da célula é copiar o conteúdo da célula auxiliar (onde está o nome que criei) e colá-lo na Caixa de Nome. Mas isso está tomando um tempo demasiado grande e desnecessário, porque sei que deve haver uma maneira de um tipo de "Ctrl+C/Ctrl+V" em que eu possa copiar todos os nomes que criei e colá-los nas respectivas Caixas de Nome de cada célula de uma só vez.

 

 

Alguém sabe como fazer isso?

PREMISSAS.xlsx

Link para o comentário
Compartilhar em outros sites

  • Solução

Pessoas dos meus brasis,

 

Meu bróder passou por aqui há pouco. Mostrei pra ele meu problema e o fidamãe resolveu o negócio em 14 min e 12 seg (eu sabia que tinha um jeito mais fácil de fazer o que eu precisava).

 

Pois bem, ele escreveu a macro abaixo. Eu a copiei e inseri numa macro criada para essa planilha. Atribuí o atalho "Ctrl+Shift+H" e, após um pequeno ajuste* na planilha, foi só selecionar a primeira célula da coluna E onde contem o primeiro nome específico e pressionar e segurar simultaneamente Ctrl+Shift+H e deixar a macro percorrer toda a planilha até o fim (dá um erro que o bróder explicou que é em decorrência de a última célula estar vazia e, por isso, a macro não pode atribuir um valor vazio para a Caixa de Nome da célula). Enfim, embora eu tenha que segurar as teclas durante 8,17 segundos para a macro atribuir todos os 300 e tantos nomes às células, ficou bem melhor que o modo neandertal que eu estava utilizando. Pra mim, tudo certo! :-)

 

* Ajuste necessário nas células que não contêm os nomes que eu criei, então usei a fórmula 'LIN' para 'copiar' os nomes das células destinos que não receberão nome específico, por exemplo, a célula E11 recebeu a fórmula '="D"&LIN(D11)", resultando no valor "D11". Usando o recurso de filtro, foi fácil atribuir essa fórmula de uma só vez a todas as células da coluna E que não têm nome específico.

 

Eis a macro:

 

========================================

Sub Atribuir_nome_celula()
'
' Atribuir_nome_celula Macro
'
' Atalho do teclado: Ctrl+Shift+H
'
Dim valor As String
Selection.Copy
valor = ActiveCell.Value
ActiveCell.Offset(0, -1).Select
ActiveCell.Name = valor
ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(0, 1).Select
Selection.Copy
' Movimentar o cursor uma célula para baixo:
' ActiveCell .Offset(1,0).Select
' Movimentar acima:
' ActiveCell .Offset(-1,0).Select
' Movimentar para direita:
' ActiveCell.Offset(0,1).Select
' Movimentar para esquerda:
' ActiveCell.Offset(0,-1).SelectRange("B2").Select
End Sub
 
==============================================
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...