Notifications
Clear all

verificar se na aba existe o intervalo nomeado

19 Posts
5 Usuários
0 Reactions
3,717 Visualizações
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

tenho uma tabela de controle para os parâmetros da planilha, essa tabela fica em uma area fixa
eu estou querendo transformar essa tabela em uma area nomeada

mas como verificar se na aba existe o intervalo nomeado ??

bem, se pode usar uma célula fixa como um identificador , mas quero conhecer minhas opções

 
Postado : 24/07/2016 9:16 am
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Boa tarde. Se vc clicar na caixade nomes(onde aparece a célula ativa) lá vc encontrará os intervalos nomeados existentes.

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 24/07/2016 9:24 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

desculpa, é para vba
a tabela é para uso em macros mas tenho macros que se guia pela tabela na aba ou por ranges especifica criando sua propria tabela de controle
eu quero evitar verificação de erro
uma celula fixa pode limitar a dinamica da planilha

 
Postado : 24/07/2016 9:49 am
(@mprudencio)
Posts: 2749
Famed Member
 

Nao sei se entendi mas acho q se nomear o intervalo com um range dinamico, resolve seu problema.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 24/07/2016 10:09 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

essa tabela será intermitente então como a macro vai saber se existe a tabela na aba?

    arr = Sheets(Nome_Aba).Range(TabelaSetores).Value2

se a aba chamada não tiver o intervalo a macro vai dar erro

teria que ser algo mais ou menos assim

if    Sheets(Nome_Aba).Range(TabelaSetores) then
     arr = Sheets(Nome_Aba).Range(TabelaSetores).Value2
else
msgbox Nome_Aba & "não contem setores"
end if
 
Postado : 24/07/2016 10:17 am
(@mprudencio)
Posts: 2749
Famed Member
 

Nao entendi, essa tabela e criada pelo VBA?

Poste o arquivo assim fica mais facil entender.

Marcelo Prudencio
Microsoft Excel Brasil no Facebook

"Começar já é a metade do caminho."
Autor Desconhecido

Simplifica que simples fica.
Nicole Tomazella.

"O Simples é Sempre Melhor Que o Complicado"
Jorge Paulo Lemann.

 
Postado : 24/07/2016 10:32 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

a tabela não vai ter uma posição fixa na planilha e não vai estar presente em todas as abas sendo criada por macro ou não

eu só quero saber se pelo vba eu consigo verificar se o intervalo nomeado "XXX" existe na aba "YYY"

 
Postado : 24/07/2016 10:55 am
(@messiasmbm)
Posts: 223
Estimable Member
 
Sub sss()
On Error GoTo naotem

ActiveSheet.Range("TabelaSetores").Select
MsgBox ActiveSheet.Range("TabelaSetores").AddressLocal
Exit Sub

naotem:
'aqui você coloca o que quer fazer ...Se não quer que faça nada então coloque o "nãotem:" na
'ultima linha de seu códigoe nada mais abaixo.
MsgBox "Este intervalo não tem nesta aba !"
End Sub

 
Postado : 24/07/2016 11:55 am
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

messiasmbm

infelizmente ON ERRO não é uma opção nesse momento que estou reestruturado toda a planilha e macros
é uma macro de controle, ela preenche valores de arrays e variaveis que vão ser usadas por todas as outras macros

acho que eu já fiz listagem de areas selecionadas , mas não me lembro como foi e não achei
se dá para listar dá para verificar se os nomes e abas batem

 
Postado : 24/07/2016 12:07 pm
(@messiasmbm)
Posts: 223
Estimable Member
 

Faz uma estrutura de controle com if:

 
Postado : 24/07/2016 12:44 pm
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

messiasmbm

obrigado pela atenção
mas tbm não posso definir qualquer tipo de valor ou nomes fixo
a planilha não tem estrutura definida
essa tabela atualmente eu uso no inicio da planilha então é só pegar o identificador na própria tabela que está numa range fixa
mas isso limita a expansão da planilha pq me força a ter um limite de setores ou parâmetros possíveis

tem que ser uma verificação direta se a area nomeada existe na aba pré definida

 
Postado : 24/07/2016 1:24 pm
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

enquanto não se tem uma possibilidade vou deixar uma celula fixa como identificador de aba com setores

 
Postado : 24/07/2016 1:32 pm
gfranco
(@wzxnet7)
Posts: 653
Honorable Member
 

Talvez isso o ajude:

Sub descobrir_areas_nomeadas()
On Error Resume Next
Dim w As Worksheet
Set nomes = ThisWorkbook.Names
Set w = Plan1  ' aqui vc deve indicar em qual planilha deseja o relatório
For r = 1 To nomes.Count
    w.Cells(r, 15).Value = nomes(r).Name
    w.Cells(r, 16).Value = nomes(r).RefersToRange.Address
Next

End Sub

fonte:

https://msdn.microsoft.com/pt-br/librar ... 41280.aspx

Resposta útil? Clique na mãozinha ao lado do botão Citar.

 
Postado : 24/07/2016 2:09 pm
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 

eu tinha visto a pagina mas não me toquei
estou tentando fazer uma verificação direta mas está dificil, não estou conseguindo definir uma avaliação possitiva

Public Function Tem_Setor(ByVal Nome_aba As String) As Boolean
' If Sheets(Nome_aba).Cells(1, 1).Value2 = "Tem Setor ##" Then

    If Nome_aba = "" Or Nome_aba = "PLanAtiva" Then Nome_aba = ActiveSheet.Name
    nab = """ '""" & Nome_aba & """ '""" & "!TabelaControle"

    On Error Resume Next
    Set nms = ActiveWorkbook.Names
    For r = 5 To nms.Count
        MsgBox nms(r).Name
        If nms(r).Name = nab Then Tem_Setor = True: Exit Function
    Next
End Function
 
Postado : 24/07/2016 3:23 pm
(@edcronos2)
Posts: 346
Reputable Member
Topic starter
 
Public Function Tem_Setor(ByVal Nome_aba As String) As Boolean
    If Nome_aba = "" Or Nome_aba = "PLanAtiva" Then Nome_aba = ActiveSheet.Name
    nab = "'" & Nome_aba & "'" & "!TabelaControle"

    On Error Resume Next
    Set nms = ActiveWorkbook.Names
    For r = 5 To nms.Count
        If nms(r).Name = nab Then Tem_Setor = True: Exit Function
    Next

End Function

vou ver como vai se comportar o On Error Resume Next nas macros

 
Postado : 24/07/2016 3:35 pm
Página 1 / 2