Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
  • Avatar do usuário
#72830
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
#72832
Olá, Alex.

Com base na sua descrição podemos concluir que B5 sempre será igual a A2. É isso?
#72835
Então coloque em B5 ~~~> =A2.

Não é necessária a Validação e nem macro.
#72839
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
#72841
Entendi.

Você poderia disponibilizar aqui no fórum uma amostra do seu arquivo Excel com a Validação instalada ?
#72854
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] = ""
#72868
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
JCabral agradeceu por isso
#72870
Olá, Alex.

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

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

=SE(MÊS(A1)&lt;7;&quot;1º sem&a[…]

Bom Dia Senhores. Tenho uma macro que preciso dei[…]

Free relationships without drama and obligations. […]

Girar Imagem e Zoom

Boa noite Teria alguma forma de dar um &quot;[…]

Valeu. Muito Obrigado!!!!!!!!

Pessoal, Ao clicar no botão Copiar (Guia C[…]

Procv com serro em vba

Resolvido

Bom dia, pessoal! com a data de nascimento e data […]

Estamos migrando para uma comunidade no Discord