Página 1 de 1

SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 12:31
por alexlounofre
Olá, pessoal,
Preciso de uma ajuda imprescindível: Criei uma lista de validação de dados e gostaria de saber se existe algum código VBA para selecionar o primeiro item nessa lista. Quero dizer, um código que "clique" na setinha para expandir a lista e selecione especificamente o primeiro item, isso toda vez que eu lançar ou alterar um item da lista de origem da validação. Exemplo: tenho uma lista de setores da empresa (contábil, financeiro, administrativo...) começando em A2 até A11, e dessa lista criei uma validação de dados na célula B5. O código precisa selecionar em B5 o primeiro item da lista (contábil, por exemplo), toda vez que eu alterar ou acrescentar itens na lista em A2 a A11. Seria possível fazer isso?

Desde já agradeço a preciosa ajuda

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 15:05
por osvaldomp
Olá, Alex.

Com base na sua descrição podemos concluir que B5 sempre será igual a A2. É isso?

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 16:15
por alexlounofre
Olá, Osvaldo,
Sim, verdade. Nem tinha me atentado a isso. O fato é que preciso que o código automatize a seleção do primeiro item da lista, sem que eu precise clicar na setinha e selecionar ou mesmo digitar.
Agradeço desde já a ajuda.

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 16:19
por osvaldomp
Então coloque em B5 ~~~> =A2.

Não é necessária a Validação e nem macro.

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 16:46
por alexlounofre
Então, mas é porque a célula B5 vai ter necessariamente uma lista, pois será variável mesmo. Eu só queria que o primeiro valor fosse selecionado automaticamente, pois na maior parte dos casos a primeira opção da lista será a selecionada, mas não vai acontecer sempre, ou seja, eu quero ter a opção de selecionar, se necessário, algum outro item da lista

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 17:03
por osvaldomp
Entendi.

Você poderia disponibilizar aqui no fórum uma amostra do seu arquivo Excel com a Validação instalada ?

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 18:37
por alexlounofre
Com certeza. Segue arquivo.

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 03 Fev 2023 às 19:04
por alexlounofre
Ops, desculpe, agora que fui perceber. Na verdade, a célula é D5 e não B5, como tinha falado inicialmente

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 06 Fev 2023 às 10:43
por osvaldomp
Olá, Alex.

Veja se a solução abaixo lhe atende.
Cole uma cópia do código abaixo no módulo da planilha Cadastro. Para acessar o módulo clique com o direito sobre a guia daquela planilha e escolha Exibir Código.
Código: Selecionar todos
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address <> "$D$5" Then Exit Sub
 Target.Value = Range(Mid(Target.Validation.Formula1, 2)).Cells(1, 1)
 Application.SendKeys ("%{Down}")
 DoEvents
 SendKeys "{NUMLOCK}{NUMLOCK}"
End Sub
##
funcionamento
Ao selecionar a célula D5 (que deverá conter Validação de Dados) o código executará duas ações:
1. irá inserir em D5 o primeiro item da Lista Suspensa utilizada na Validação de Dados daquela célula, e
2. irá exibir a própria Lista Suspensa.

Para manter na célula o item inserido pelo código, aperte Esc ou selecione outra célula qualquer.

Para alterar o item inserido pelo código, selecione o item desejado na Lista Suspensa.

obs. o primeiro item da Lista Suspensa não está vinculado a A2, como comentamos antes, então o intervalo de células que contém os itens da Validação pode ser qualquer.
________________________________________________________________________________________________________

Como bônus, segue um código alternativo para o seu código Incluir()
Código: Selecionar todos
Sub IncluirV2()
 Sheets("Lista").Cells(Rows.Count, 1).End(3)(2).Resize(, 4).Value = [C5:F5].Value
 [C5:F5] = ""
End Sub
obs. se você não quiser apagar D5 ao rodar o código acima, então substitua esta linha ~~~> [C5:F5] = ""
por esta ~~~> [C5,E5:F5] = ""

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 07 Fev 2023 às 18:24
por alexlounofre
Muitíssimo obrigado, Osvaldo.

Sem querer abusar da sua boa vontade, teria como incrementar esse código para incluir q você postou para que também faça uma classificação na planilha lista, ordenando por data de admissão?

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 07 Fev 2023 às 21:00
por osvaldomp
No código IncluirV2() acrescente a linha em vermelho, conforme abaixo.

Sheets("Lista").Range("A2:D" & Sheets("Lista").Cells(Rows.Count, 1).End(3).Row).Sort Key1:=Sheets("Lista").[C1]
End Sub

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 07 Fev 2023 às 21:43
por alexlounofre
Maravilha! Mais uma vez tenho muito a lhe agradecer, Osvaldo :D
Espero um dia ter esse vasto conhecimento em VBA, pois ajuda muito a otimizar e elevar o nível das nossas planilhas.
Sucesso pra você, prezado!

Re: SELECIONAR ITEM EM UMA LISTA DE VALIDAÇÃO DE DADOS

Enviado: 07 Fev 2023 às 22:48
por osvaldomp
Olá, Alex.

Que bom que você encontrou soluções. :D

Saúde e sucesso pra você também.