Auto completar Usef...
 
Notifications
Clear all

Auto completar Useform

21 Posts
3 Usuários
0 Reactions
3,854 Visualizações
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Ola, nao sei se o que quero é possivel,

Tenho uma Useform bem simples ela funciona assim:

TextBox 1 é onde vou digitar o nome do produto, apos clicar ENTER ele grava este nome na celula F6 da Plan 1
Na plan 1, agora com o nome do produto, atraves de uma PROCV ele busca e coloca CODIGO e QNT nas Celulas I6 e J6 respectivamente
Se muda-se o nome do produto, entao muda-se o COD e QNT.

TextBox 2 e TextBox 3 da Useform - Em posse das celulas da Plan 1 ( I6 e J6 ) estarem preenchidas, aparece, apos entrar com o produto e teclar ENTER ( na Usefor ) , seu COD e QNT

Ate aqui tudo bem e esta funcionando redondo. O que eu quero é fazer com que dentro da Useform eu nao precise completar todo o nome do produto, quero que auto se complete me dando as sugestoes proximas.

Eu dentro da Plan 1 Abaixo de F6 coloquei todos os nomes de todos os produtos que tenho, por isso dentro da Plan este recurso de autocompletar funciona, queria que funcionasse dentro da Useform, sem ter que escrever todod o nome do produto e apertar o ENTER.

PS: Eu coloquei os nomes de todos os produtos debaixo de F6 pois nao sei tb como autocompletar usando outra PLAn, entao
F7=Estoque!E3 ,
F8=Estoque!E4 ......

 
Postado : 08/09/2016 12:20 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

viewtopic.php?f=10&t=21560

 
Postado : 08/09/2016 1:12 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=21560

Obrigado de novo amigao, funcionou certinho aqui, porem funcionou da forma que eu queria o primeiro modelo o ultimo nao.

Aproveitando , como faria isso sem usar a Useform, ou seja em outras partes de minha planilha, ate porque da forma que adotei aqui tive que por todos os nomes de baixo da celula, como como eu disse os produtos ficam na aba Estoque , Esta e a aba de consulta. Entao por isso que debaixo da celula que uso na planilha para pesquisar eu pus uma referencia =Estoque!E7 ......

qual formula ponho na planilha em si, pois vou usar em outro lugar que nao puxa formulario tambem.

Qaundo der da uma olhadinha na falha do meu gerenciador item 4, que trava o botao de rolagem do mouse, nao sei mesmo porque isso acontece ao fechar o formulario e entrar na planilha.

Grato

 
Postado : 08/09/2016 3:26 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Já pensou em usar uma ListBox ou ListView !? Cria um botão de pesquisa "chama o Form com a ListBox ou View" e com um TextBox ou ComboBox você digita e preenche a list com o produto/item que precisa, ai quando der um duplo click jogar os dados que você precisa na UserForm.

 
Postado : 08/09/2016 4:12 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Pra mim e complicado ainda entender certas palavras, listview, textbox, combobox srsrsrs, tem como explicar melhor,

 
Postado : 08/09/2016 5:41 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Dá uma olhada nesse vídeo, bem simples tem textbox e listbox, o conceito é o mesmo para combobox e listview.

https://www.youtube.com/watch?v=rOl3l0PIYVc

 
Postado : 08/09/2016 7:27 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Dá uma olhada nesse vídeo, bem simples tem textbox e listbox, o conceito é o mesmo para combobox e listview.

https://www.youtube.com/watch?v=rOl3l0PIYVc

Bom dia
Estou enviando em anexo, teria como me passar ?

Veja que coloquei na Pesquisa dentro da Useform COD - PRODUTO - SABOR e QNT, mas e necessario somente que apareca o NOME, pois dentro da caixa de listagem ja vai aparecer todos os codigos, nomes, sabores etc de todos os produtos usando as mesmas iniciais.

Explico dentro da Plan

Andre

 
Postado : 09/09/2016 6:42 am
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Boa-tarde,

Dá uma olhada no arquivo com algumas alterações na ListBox.

Att,

Francisco

 
Postado : 09/09/2016 11:59 am
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Boa-tarde,

Dá uma olhada no arquivo com algumas alterações na ListBox.

Att,

Francisco

Cara vc é fera mesmo nisso, ficou bommmmmmm pacas !!!!

Sabe o que falta agora ?

É descobrir porque meu gerenciador que mandei no outro topico congela o botao de rolagem do mouse. Resolvendo isso estou super feliz. Se vc baixar a planilha e seguir o texto vera que somente a planilha se movimenta pela barra de rolagem e nao pelo mouse, exceto na tela de venda1

Andre

 
Postado : 09/09/2016 12:59 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Precionando BOTAO ATUALIZAR ele teria que fazer algo aqui ?

 
Postado : 09/09/2016 1:03 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

O Botão Atualizar é só para preencher o ListBox novamente...!
Aqui o Botão de Rolagem do Mouse tá normal.

 
Postado : 09/09/2016 1:10 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

nao digo nesta planilha aqui que vc ajeitou, mas essa aqui

viewtopic.php?f=10&t=21741

4 Note que em VENDA1 ao chamar MENU e clicar MINHA EMPRESA, a tela fica congelada rolagem do mouse nao funciona porem na tela venda!, Venda2 e venda3 isso nao ocorre !

Isso ta me pertubando

Andre

 
Postado : 09/09/2016 1:40 pm
(@fazerbem)
Posts: 697
Honorable Member
Topic starter
 

Outra coisa

Tudo abiaxo esta ok, ou tem algo ali que posso excluir porque é de antes de vc ajeitar ?

Private Sub btnAtualizar_Click()
txtCodigo = Empty
ListBox1.Clear
txtProduto.SetFocus

Dim Ultimalinha As Long
    Dim linha As Integer
    Dim conta_registros As Integer
    Set guia = ThisWorkbook.Worksheets(2) 'referente a guia da planilha

linha = 3
coluna = 4
linhalistbox = 0
conta_registros = 0

Ultimalinha = Plan9.Range("A1000").End(xlUp).Row

For linha = 2 To Ultimalinha

Consulta_QNT.ListBox1.AddItem Plan9.Range("A" & linha)

Consulta_QNT.ListBox1.List(Consulta_QNT.ListBox1.ListCount - 1, 1) = Plan9.Range("B" & linha)
Consulta_QNT.ListBox1.List(Consulta_QNT.ListBox1.ListCount - 1, 2) = Plan9.Range("D" & linha)
Consulta_QNT.ListBox1.List(Consulta_QNT.ListBox1.ListCount - 1, 3) = Plan9.Range("C" & linha)

txtProduto.Text = ""

conta_registros = conta_registros + 1
lbl_registros = conta_registros

Next

End Sub

Private Sub txtCodigo_Change()

Dim linha As Integer
Dim codigo As String

codigo = txtCodigo.Text
txtProduto.SetFocus

'Localiza um registro sem o looping pelo método find
linha = Sheets("Consulta QNT").Range("A:A").Find(codigo).Row
      
  txtCodigo = Sheets("Consulta QNT").Cells(linha, 1)
  txtProduto = Sheets("Consulta QNT").Cells(linha, 2)
  txtSabor = Sheets("Consulta QNT").Cells(linha, 4)
  txtQte = Sheets("Consulta QNT").Cells(linha, 3)
      
Exit Sub

End Sub

Private Sub txtProduto_Change()

valor_pesquisa = txtProduto.Text

    Dim guia As Worksheet
    Dim linha As Integer
    Dim coluna As Integer
    Dim linhalistbox As Integer
    Dim valor_celula As String
    Dim soma As Double
    
    Set guia = ThisWorkbook.Worksheets("Consulta QNT")
    
    linhalistbox = 0
    linha = 2 'linha de inicio dos dados
    coluna = 2 'coluna referente busca de produtos
    
    ListBox1.Clear
    
    guia.Select
          
    With guia
        While .Cells(linha, coluna).Value <> Empty 'enquanto for diferente de vazio faça
            
            valor_celula = .Cells(linha, coluna).Value 'recebe o valor da célula para fazer o teste
            
            'Condição para satisfazer a busca tem que ser igual ao valor da texbox3
            If UCase(Left(valor_celula, Len(valor_pesquisa))) = UCase(valor_pesquisa) Then
                                  
            'adiciona itens a listbox
            With ListBox1
            .AddItem
            .List(linhalistbox, 0) = guia.Cells(linha, 1)
            .List(linhalistbox, 1) = guia.Cells(linha, 2)
            .List(linhalistbox, 2) = guia.Cells(linha, 4)
            .List(linhalistbox, 3) = guia.Cells(linha, 3)
            
            'Acumulador declarado como double para acumular a soma dos valores totais
             conta_registros = conta_registros + 1
             lbl_registros = conta_registros
              
            End With
            linhalistbox = linhalistbox + 1
            
            End If
            
            linha = linha + 1
    
        Wend
    
    End With

Sheets("Consulta QNT").Select

End Sub


Private Sub ListBox1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)

If Me.ListBox1.ListCount = 0 Then Exit Sub
If Me.ListBox1.ListIndex >= 0 Then

With Consulta_QNT

.txtCodigo.Text = Me.ListBox1.List(Me.ListBox1.ListIndex, 0)
'.txtProduto.Text = Me.ListBox1.List(Me.ListBox1.ListIndex, 1)
'.txtSabor.Text = Me.ListBox1.List(Me.ListBox1.ListIndex, 2)
'.txtQte.Text = Me.ListBox1.List(Me.ListBox1.ListIndex, 3)


Me.Hide
.Show

End With

End If

End Sub

Private Sub txtProduto_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
' gestion des touches d'effacement
'apagamento manipulação de chave
    If (KeyCode = vbKeyBack) Or (KeyCode = vbKeyDelete) Then
        blnStop = True
    Else
        blnStop = False
    End If
 
End Sub
 
Private Sub PreencherListBox()

    Dim Ultimalinha As Long
    Dim linha As Integer
    'Dim conta_registros As Integer
    Set guia = ThisWorkbook.Worksheets(2) 'guia da planilha

linha = 2
coluna = 4
linhalistbox = 0
conta_registros = 0

Ultimalinha = Plan9.Range("A1000").End(xlUp).Row

For linha = 2 To Ultimalinha

Consulta_QNT.ListBox1.AddItem Plan9.Range("A" & linha)

Consulta_QNT.ListBox1.List(Consulta_QNT.ListBox1.ListCount - 1, 1) = Plan9.Range("B" & linha)
Consulta_QNT.ListBox1.List(Consulta_QNT.ListBox1.ListCount - 1, 2) = Plan9.Range("D" & linha)
Consulta_QNT.ListBox1.List(Consulta_QNT.ListBox1.ListCount - 1, 3) = Plan9.Range("C" & linha)

conta_registros = conta_registros + 1
lbl_registros = conta_registros

Next

End Sub

Private Sub UserForm_Initialize()

'Selecionar a Planilha
Sheets("Consulta QNT").Select

ListBox1.Clear
txtProduto.SetFocus
Call PreencherListBox

End Sub


Private Sub Sair_Click()

Sheets("Consulta QNT").Activate ' altere o nome da sua aba, se necessario
Range("F6").Value = ""
Application.Visible = False
Unload Consulta_QNT

lbl_registros = Application.WorksheetFunction.CountA(Plan9.Columns(1)) - 1

Application.Visible = True
'Worksheets("FUNDO").Activate

'Barra.Show

End Sub
 
Postado : 09/09/2016 2:03 pm
fcarlosc
(@fcarlosc)
Posts: 453
Honorable Member
 

Verifique se a tecla Scroll Lock do seu teclado está ligada quando você está usando a planilha do Excel. Faça testes com ela ligada e desligada.

 
Postado : 09/09/2016 3:33 pm
DJunqueira
(@djunqueira)
Posts: 772
Prominent Member
 

fazerbem, por acaso a rotina do seu botão termina com o cursor dentro da cx de fórmula?

Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.

 
Postado : 10/09/2016 3:37 am
Página 1 / 2