Ir ao conteúdo
  • Cadastre-se

Excel AutoPreencher VBA Não funciona


Posts recomendados

Bom dia pessoal.

Precisava de um autopreencher pra uma planilha e achei um tutorial legal neste site porém mesmo ao criar tudo e fazer tudo certinho exatamente como o tutorial mostra, ao digitar na célula com lista alguma coisa(só pra testar após ter terminado) simplesmente não acontece nada. Conforme imagem anexa, eu deveria digitar as primeiras letras de alguma coisa incluída na lista e já dar sugestões para autopreencher mas fica assim como esta na imagem.

Alguém consegue me ajudar nessa questão?

1.png

Link para o comentário
Compartilhar em outros sites

Experimente substituir a fórmula utilizada para nomear o intervalo "Produtos".

 

fórmula atual

=DESLOC('Lista_Estoques (2)'!B5493;0;0;CONTAR.VAZIO('Lista_Estoques (2)'!B:B);1)

substitua por esta abaixo

=DESLOC('Lista_Estoques (2)'!$B$5;;;CONT.VALORES('Lista_Estoques (2)'!$B:$B);)

 

Veja se interessa. Segue anexado um arquivo com outro tipo de solução. Utiliza um Form. A diferença para esse que você tomou como base é que após inserir a letra inicial do nome procurado, a lista de nomes passará a exibir somente os nomes cuja inicial seja igual à inicial digitada, o que torna mais prática a busca do nome.

 

AutoCompletarMenuValidação.zip

Link para o comentário
Compartilhar em outros sites

@osvaldomp Muito obrigado pelos ajustes! Esse método que de busca que sugeriu já havia visto, porém achei este que estava usando melhor justamente pelo motivo da praticidade como disseste mas se a solução dele é complicada vou implementar este form e depois retorno.

 

Uma pergunta, no ambiente da planilha tem o If que chama o form e esse comando está vinculado a coluna em si.

Mas e se eu tiver 2 ranges diferentes na mesma coluna, como mudar o If pra chamar a partir deles?

Usando essa planilha que enviei, os ranges estão exatamente em B17:23 e B25:31. Também pretendo colocar apenas na célula B13 onde o usuário irá escolher o cliente mas estes tem os dados da lista localizado em outro local.

Onde no código da form eu altero a origem dos dados de pesquisa?

 

 

Desde já, obrigado.

Link para o comentário
Compartilhar em outros sites

Para restringir os intervalos de atuação do código experimente o código abaixo.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
 Cancel = True
 If Not Intersect(Target, [B17:B23,B25:B31]) Is Nothing Then
  'UserForm1.Show ~~~> carrega o Form1 se o duplo clique ocorrer em B17:B23 ou em B25:B31
 ElseIf Target.Address = "$B$13" Then
  'UserForm2.Show ~~~> carrega o Form2 se o duplo clique ocorrer em B13
 Else: Cancel = False
 End If
End Sub

 

Para alimentar o Form2 a partir de intervalo diferente do Form1 altere conforme abaixo.

While .Cells(i, 1).Value <> Empty ~~~> o Form1 é alimentado com dados da coluna A, representada pelo número 1, em vermelho.

 

Se você for utilizar, por exemplo, a coluna B para alimentar o Form2 então substitua o número 1 pelo número 2.

While .Cells(i, 2).Value <> Empty

 

Link para o comentário
Compartilhar em outros sites

@osvaldomp Ótimoo! Só mais uma coisa que esqueci de perguntar:

Como posso desabilitar o código para chamar o Form? Pois em certas situações o usuário terá que faze-lo para descrever manualmente o tipo de peça que deseja.

Penso em adicionar um botão na planilha, se for o caso qual seria o código para desabilitar a o Form e reativa-lo?

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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