Notifications
Clear all

verificar se na aba existe o intervalo nomeado

19 Posts
5 Usuários
0 Reactions
3,753 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
(@osvaldomp)
Posts: 858
Prominent Member
 

Veja se ajuda.

Sub VerificaIntervaloNomeado()
 Dim IntNom As Range
  On Error Resume Next
  Set IntNom = Range("jacaré")
  On Error GoTo 0
  If IntNom Is Nothing Then
      MsgBox "o intervalo jacaré não existe"
  Else
      MsgBox "o intervalo jacaré está em  " & IntNom.Address(0, 0) _
      & vbLf & "da planilha  " & Range("jacaré").Parent.Name
  End If
End Sub

Osvaldo

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

Osvaldomp
no caso On Error GoTo 0 zera a verificação de erro
eu não sei oq é melhor varrer a lista de nomes e fazer comparação ou usar o metodo direto e depender do on erro

com

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

só vai varrer a lista de nomes existentes então nem precisa do on erro para caso não exista o nome

depois eu testo qual o mais rapido, se bem que nesse caso como é feita a verificação apenas no inicio acho que não afeta o desempenho

 
Postado : 24/07/2016 4:20 pm
(@osvaldomp)
Posts: 858
Prominent Member
 

eu não sei oq é melhor varrer a lista de nomes e fazer comparação ou usar o metodo direto e depender do on erro
O comando 'On Error Resume Next' evita o travamento do código caso o intervalo procurado não exista.
Portanto, esse comando é no mínimo desejável, eu diria que é necessário.

só vai varrer a lista de nomes existentes então nem precisa do on erro para caso não exista o nome
Nem precisa se houver a certeza de que existe ao menos um intervalo nomeado.

Com base no título que você colocou neste tópico "verificar se na aba existe o intervalo nomeado", me parece que
você quer saber se determinado intervalo nomeado existe, e claro, você sabe o nome do intervalo, então o código que passei faz isso.
Não vejo sentido utilizar um código que faça Loop buscando nomes se você está interessado em saber da existência de um somente.

Agora, se você quer obter uma lista dos intervalos nomeados então utilize um código com Loop .

Osvaldo

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

é que tenho um certo trauma com tratamento de erro

como eu tenho muitas macros funcionando em cascata tinha uma que eu tinha colocado
e dava alguns problemas intermitentes , as vezes não funcionava e no outro dia ou horas depois ia tudo bem

era diferença de formatação de data de onde uma das macros pegava os dados
que ao que parece era corrigido em seguida ou quando identificado por eles ou outra coisa
depois de muito tempo fui descobri o problema e simplesmente mudei a forma como a macro pega e compara as datas

gerar relatório dos setores e dados do projeto irei usar lista sim, mas claro que isso não vem ao caso no momento

sobre usar loop eu não vejo problemas deste que seja rápido e eficiente , mais de 90% de minha macros são com loops
mas bem vou colocar sua resposta como a certa j´que deve ser a preferencia da maioria

 
Postado : 24/07/2016 8:45 pm
Página 2 / 2