Ir ao conteúdo
  • Cadastre-se

Como usar nome de aba como variável em fórmula


Posts recomendados

Tenho o seguinte problema: tenho que fazer um PROCV de um número em uma série de abas formatadas da mesma forma. Em cada coluna da minha aba principal há o mesmo PROCV, e o que diferencia o de uma coluna do da próxima é o nome da aba, que muda. Gostaria de colocar os nomes das abas em uma linha e usá-los como variável, já que o endereço de busca do PROCV é o mesmo para todas as abas. Assim posso repetir a fórmula copiando com Ctrl C/Ctrl V, sem ter que digitar o nome da aba em todos os lugares da fórmula em que se repete.

Na minha coluna 1 estão os números que serão buscados pelo PROCV. Na minha coluna 2, está o primeiro PROCV: PROCV($a1;'02012006'!$B$6:$AF$158;+$SY$9;FALSO). Na coluna 3, PROCV($a1;'03012006'!$B$6:$AF$158;+$SY$9;FALSO), e assim por diante, por mais de 800 colunas, variando apenas o nome da aba: 02012006, 03012006, ... . Na verdade o nome da aba aparece várias vezes na mesma fórmula. Para copiá-la com Ctrl-C/Ctrl-V o nome da aba teria que ser uma variável, em outra célula. Tentei concatenar o conteúdo de uma célula (02012006) com o intervalo de busca comum a todas as abas ($B$6:$AF$158), mas o Excel não entendeu o resultado como um endereço. Como fazer isso? A alternativa é copiar a fórmula e trocar o nome da aba em todos os lugares onde ela aparece digitando... Como são mais de 800 colunas, um método diferente ia ser uma grande ajuda.

Grato!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

se quiser tentar este caminho:

1. o código abaixo insere os nomes de todas as planilhas do arquivo na linha 1 da Plan1 (alterar o nome da planilha no código 2x se necessário), colocando um nome em cada coluna, a partir de B

Sub ListaPlans()
Dim ws As Worksheet, x As Integer
x = 2
For Each ws In Worksheets
If ws.Name <> "Plan1" Then
Sheets("Plan1").Cells(1, x) = ws.Name
x = x + 1
End If
Next ws
End Sub

2. a fórmula abaixo já está ajustada em relação a que foi postada, e deve ser inserida em qquer célula de B da Plan1 e poderá ser arrastada para a direita e para baixo para ser copiada/colada

=PROCV($A1;INDIRETO("'"&B$1&"'!$B$6:$AF$158");$SY$9;0)

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois...
  • 10 meses depois...

Utilizei o código indicado pelo osvaldomp e funcionou perfeitamente...

em seguida, usei PROCV/INDIRETO (PROCV(B13;INDIRETO(A13&"!A1:J1");2;0) ) - que funcionou em alguns casos : para abas que eu tenho o nome com hifen ( EX: 598-8 ), ele da erro ( #ref ).. há algum outro meio de buscar informações em abas assim ??

obrigado...

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

... mas não consegui...

a fórmula retornou erro ? retornou resultado incorreto ?

seria intressante você disponibilizar uma planilha com exemplos de dados, os resultados esperados e a explicação de como obteve os resultados

Link para o comentário
Compartilhar em outros sites

osvaldmp

tentei disponibilizar em excel, mas não consegui..mandei um print com a formula em evidencia, como um modelo...

como mencionei, preciso sempre da informação da primeira linha de cada tab ( na original, são + - 650 tabs )..e quando tem a tab com o "-" ele aponta o erro..

novamente, agradeço a ajuda...

post-987347-13884963250524_thumb.jpg

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • mês depois...

Bom dia, acompanhei até aqui o tópico, porém, não consegui utilizar as informações passadas para resolver um problema parecido que tenho em uma planilha. No meu caso, tenho várias colunas na mesma aba que procuram um determinado valor em um outro arquivo. Todas as semanas crio um arquivo igual ao que tenho, no mesmo diretório, a única coisa que muda é o final do arquivo onde utilizo numeros para diferenciar o arquivo de uma semana para o da semana anterior. Por exemplo, arquivo 0001, na semana seguinte arquivo 0002 e assim por diante. Como as fórmulas de PROCV que utilizo são sempre iguais, mudando apenas o nome do arquivo de uma semana para outra, gostaria de poder abrir o arquivo e colocar em uma célula apenas o numero final do nome do arquivo anterior. Conseguem me ajudar? Desde já muito obrigado!!

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Jairez

Sugiro que você abra um tópico com a sua questão.

Para agilizar possíveis ajudas disponibilize um exemplo do seu arquivo com o resultado desejado e as necessárias explicações no próprio arquivo.

Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...
Em 04/03/2011 às 15:01, osvaldomp disse:

se quiser tentar este caminho:

1. o código abaixo insere os nomes de todas as planilhas do arquivo na linha 1 da Plan1 (alterar o nome da planilha no código 2x se necessário), colocando um nome em cada coluna, a partir de B

 

 

Sub ListaPlans()
Dim ws As Worksheet, x As Integer
x = 2
For Each ws In Worksheets
    If ws.Name <> "Plan1" Then
        Sheets("Plan1").Cells(1, x) = ws.Name
        x = x + 1
    End If
Next ws
End Sub

 

2. a fórmula abaixo já está ajustada em relação a que foi postada, e deve ser inserida em qquer célula de B da Plan1 e poderá ser arrastada para a direita e para baixo para ser copiada/colada

 

 

=PROCV($A1;INDIRETO("'"&B$1&"'!$B$6:$AF$158");$SY$9;0)

 

Boa tarde Osvaldo.

Usando a macro acima, como posso altera-la para que não traga o nome das pastas "Plan1" e "Plan2"?

 

Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

Solução fantástica, muito obrigado, osvaldomp. 

 

Fiquei apenas com duas dúvidas:

 

1 - É possível fazer com que esta macro rode automaticamente sempre que uma nova planilha seja criada (i.e., um novo nome seja incluído na primeira linha da planilha principal)?

 

2 - Caso uma planilha seja excluída, esta macro acompanha a exclusão e elimina o nome anteriormente incluído?

 

Abs!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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...