Notifications
Clear all

Fórmula ignorando mudança no nome de Aba de outro arquivo

5 Posts
2 Usuários
0 Reactions
778 Visualizações
(@carlosrgs)
Posts: 0
New Member
Topic starter
 

Boa tarde a todos.

Tenho um arquivo que lista as requisições de peças no Almoxarifado e de um mês para outro surgem novos produtos que preciso inserir a descrição no relatório.
Mas eu não fico atualizando de um em um, eu gero um arquivo (Em excel) com todo o cadastro de produtos do sistema e na minha planilha faço um Procv amarrando este outro arquivo aberto.
Claro que depois transformo em valores para não ficar dependendo deste arquivo de todos os cadastros.

A Fórmula é
=SE(A1="";"";SEERRO(PROCV(A1;'[SB1.xlsx]01-40 - SC062130.XML'!D$4:E$100003;2;FALSO);"S/ Cadastro S.B.1."))
Em termos de VBA fica:

    ActiveCell.FormulaR1C1 = _
        "=IF(RC[-1]="""","""",IFERROR(VLOOKUP(RC[-1],'[SB1.xlsx]01-40 - SC062130.XML'!R4C[-1]:R100003C,2,FALSE),""S/ Cadastro S.B.1.""))"

O problema é que o sistema nunca gera o nome da ABA igual ao anterior e quando eu executar a Macro para atualizar, vai da erro na fórmula por causa do nome da ABA "01-40 - SC062130.XML".
O Nome do arquivo sempre será SB1.

Existe uma maneira de fazer a fórmula sem vincular o nome da Aba (Sheets, planilha, etc) ?

Só ressaltando q tenho meu arquivo.
Gero o arquivo de cadastros do sistema com nome SB1
Com uma Macro eu abro o SB1 e insiro a fórmula, termino de atualizar e fecho o SB1 com a macro, portanto não da para utilizar outras ferramentas como gerenciador de nomes.

Obrigado!

 
Postado : 09/06/2017 9:56 am
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

carlosrgs,

Boa tarde!

Movi sua mensagem para o local adequado: VBA & Macros.

Quanto a sua necessidade, melhor anexa um arquivo compactado com .ZIP aqui para que todos possam ver, rodar e depurar. Assim fica mais fácil de ajudar.

 
Postado : 09/06/2017 11:56 am
(@carlosrgs)
Posts: 0
New Member
Topic starter
 

Boa tarde Wagner

O problema não está em execução de Macro.

Está na fórmula.

Tenho um arquivo gerado com nome SB1 somente com uma Aba, cujo nome da Aba nunca é o mesmo.

Eu gostaria de saber se tem como fazer a fórmula sem que essas alterações no nome da Aba interfira.

A Macro só entra porque digitei a fórmula no VBA.

 
Postado : 09/06/2017 12:08 pm
(@wagner-morel-vidal-nobre)
Posts: 4063
Famed Member
 

carlosrgs,

Não testei mas... veja se assim funciona.

ActiveCell.FormulaR1C1 = _
        "=IF(RC[-1]="""","""",IFERROR(VLOOKUP(RC[-1],'[SB1.xlsx]" & ActiveSheet & "'!R4C[-1]:R100003C,2,FALSE),""S/ Cadastro S.B.1.""))"
 
Postado : 09/06/2017 12:49 pm
(@carlosrgs)
Posts: 0
New Member
Topic starter
 

Deu certo não.

Vou tentar outra coisa.

Function Nome_Planilha() As Variant
Application.Volatile
Nome_Planilha = ActiveCell.Parent.Name
End Function

Mas tenho que colocar compartilhado essa função pro arquivo SB1 já rodar ela.
Assim consigo identifica o nome da Aba!

 
Postado : 09/06/2017 1:27 pm