Ir ao conteúdo
  • Cadastre-se

LISTA SUSPENSA - SEM ESPAÇOS EM BRANCO - VALIDAÇÃO DE DADOS


Posts recomendados

Prezados, boa tarde!

 

Preciso de uma ajuda.

Tenho uma planilha com lista suspensa (validão de dados), porém entre os dados existem campos vazios (alguns para ainda serem preenchidos e outros para separação entre informações). 

 

Preciso de 2 funções distintas:

 

1º Que apareçam apenas os dados (sem espaços em branco).

2º Nesta mesma planilha tenho uma coluna de notas, uma de saídas de produto e outra de saldo, a nota referente a esse saldo é a que deve aparecer na lista suspensa, então gostaria que apenas as notas com saldo aparecessem na lista suspensa.

 

Fiz vários testes criando funções no gerenciador de nomes e associando a validação de dados e não consegui êxito.

 

Alguém saberia como fazer isso?!

 

Grata.

 

TESTE.xlsx

Link para o comentário
Compartilhar em outros sites

Bom dia Patropi, obrigada pelo retorno.

 

É possível que a fórmula seja criada em gerenciador de nomes? para que assim não seja necessário aplicar índices para todas as colunas.

No exemplo enviado os campos em branco estão aparecendo, no entanto, agora para as linhas finais da lista suspensa.

 

Abraço!

Link para o comentário
Compartilhar em outros sites

 

No exemplo enviado os campos em branco estão aparecendo, no entanto, agora para as linhas finais da lista suspensa.

 

 

Olá, Priscila. Veja se ajuda. Nas duas opções abaixo não são exibidas linhas vazias na lista da Validação.

 

opção 1 - aproveitando as fórmulas auxiliares em 'AD:AE' da proposta do 'Patropi'

Crie um Nome com a fórmula abaixo, depois utilize o Nome criado na Validação.

=DESLOC(TESTE!$AE$10;0;0;MÁXIMO(TESTE!$AD$10:$AD$22);1)

opção 2 - utilizando macro (não precisa de células auxiliares)

Instale o código abaixo no módulo da planilha 'TESTE', assim:

1. copie o código daqui

2. clique com o direito na guia daquela planilha e escolha 'Exibir código'

3. cole o código na janela em branco que vai se abrir

4. feito! 'Alt+Q' para retornar para a planilha e testar

Private Sub Worksheet_Change(ByVal Target As Range) Dim e, x As Object, LR As Long  If Target.Row < 10 Or (Target.Column <> 5 And Target.Column <> 13) Then Exit Sub  With CreateObject("System.Collections.ArrayList")   Set x = .Clone    For Each e In Range("M10", Range("M" & Rows.Count).End(xlUp)).Value     If e <> "" Then .Add e    Next e     .Sort: x.Sort: .addRange x: e = Join(.ToArray, ",")  End With  LR = Range("E" & Rows.Count).End(xlUp).Row   If LR = 9 Then LR = 10  With Range("E10:E" & LR + 5).Validation   .Delete   .Add xlValidateList, 1, 1, e  End WithEnd Sub

funcionamento - o código irá aplicar Validação de Dados na coluna 'E'.

A lista da Validação será formada pelos números da coluna 'M' em ordem crescente.

Considerando que a coluna 'E' de início está sem Validação, para aplicar a Validação pela primeira vez basta selecionar qualquer célula vazia daquela coluna e apertar a tecla 'Delete', a partir daí a Validação será atualizada sempre que houver alteração na coluna 'E' ou na coluna 'M'.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

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