0050-Validação de dados – Parte 2

Agora já vimos os fundamentos da validação de dados, vamos dar mais um passo no uso desta funcionalidade.

Imagine que você deseja que a lista de validação de um determinada célula se modifique com base na seleção de uma outra célula. Por exemplo, após o preenchimento de uma célula onde se digita o nome do estado, a célula na qual devem ser inseridos os nomes dos municípios, deve apresentar apenas os municípios presentes naquele estado.

Vamos, primeiramente, criar as listas em uma planilha qualquer da pasta de trabalho.

Agora vamos nomear os intervalos correspondentes a cada uma destas listas, da seguinte forma:

Estados: [A2:A4]

Paraná: [C2:C5]

Santa_Catarina: [D2:D5]

Rio_Grande_do_Sul: [E2:E5]

Observem que não é possível criar nomes com espaços entre as palavras, por isso “Santa_Catarina” ao invés de “Santa Catarina”.

Em outra planilha, vamos criar um visual similar a um formulário de entrada de dados, deixando-a com o seguinte aspecto:

Selecionando, a célula A2, vamos realizar a validação de dados com base no intervalo Estados:

Agora selecionando a célula C2, vamos inserir a fórmula =INDIRETO(SUBSTITUIR($A$2;” “;”_”)) como fonte de dados:

Algumas explicações antes de prosseguirmos:

  • Como já visto no tópico Explorando funções de texto – Parte 3 a função SUBSTITUIR realiza a troca de um caractere por outro num texto. Como os nomes dos estados possuem espaços separando-os, mas os nomes dos intervalos não podem possuir espaços, lembro que tivemos que utilizar o caractere “_”. Desta forma para que podemos passar o nome do intervalo corretamente substituímos ” ” por “_”.
  • A função INDIRETO, retorna o conteúdo da referência que lhe é passada como argumento. Desta forma, INDIRETO(“A1”) retorna o conteúdo da célula A1. Utilizamos INDIRETO nesta fórmula para informar que a lista a ser utilizada para a validação é aquela cujo nome foi informado. Desta maneira, ao selecionarmos o estado Santa Catarina, a fórmula estabelece que a fonte de dados é o intervalo Santa_Catarina.

Vejamos como a célula C2 se comporta ao selecionarmos diferentes valores em A2:

Selecionando Paraná:

Selecionando Santa Catarina:

Selecionando Rio Grande do Sul:

Uma última consideração: quando modificamos o valor em A2 não há alteração automática do valor em C2. Desta forma é possível gerar algumas incoerências tendo um município não listado para o estado que aparece em A2. Para contornar este problema, vamos inserir um evento de planilha para garantir que uma vez alterado o valor em A2 a célula C2 tenha o seu conteúdo eliminado.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
Application.EnableEvents = False
[C2].ClearContents
Application.EnableEvents = True
End If
End Sub

Acesse o arquivo: Validação Condicional

Anúncios

In Excel We Trust

Marcado com: , ,
Publicado em Nível: Intermediário
10 comentários em “0050-Validação de dados – Parte 2
  1. HUGO disse:

    NÃO EXISTE OUTRO MEIO DE COLOCAR NO AUTOMÁTICO SEM SER NO VBA?

  2. Wanessa disse:

    O código acima preciso que execute em uma coluna. Como ficará?

  3. Wanessa disse:

    Ah… preciso que ele execute em todas as planilhas do arquivo, também.
    Obrigada.

  4. Ivan Junior disse:

    Olá! Como eu faria se quisesse colocar 2 condiçoes. Por ex.: Uma lista com o nome dos bairros, baseado no Estado e na Cidade?

  5. Satyro disse:

    Por favor, explicar melhor aonde e como faz a nomeação dos instervalos.

  6. Satyro disse:

    Preciso tb tirar dúvida e p/ colocar 2 condições. Por ex.: Uma lista com o nome dos bairros, baseado no Estado e na Cidade?

  7. _sete disse:

    Entendi.. é possível utilizar esta lógica com este problema?

  8. Diego disse:

    Vc fez gerenciamento de nomes para conseguir isso, está na aba fórmulas.
    por favor atualize o tutorial

  9. […] Leia o restante do artigo em: https://usuariosdoexcel.wordpress.com/2011/05/09/validacao-de-intervalo-parte-2/ […]

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: