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
Por kleinowski
Posts
#25325
Boa Tarde!
Estou fazendo uma planilha para otimizar a busca de materiais aqui na empresa. Montei todos os userforms e os textbox como eu queria, está tudo funcionando menos a busca no ListBox. Segue o código.

'Define TextoBox1
Private Sub TextBox1_Change()
TextoDigitado = TextBox1.Text
Call Busca_TextBox1
End Sub


'Busca TextBox1
Private Sub Busca_TextBox1()
Dim ws As Worksheet
Dim i As Integer
Dim TextoCelula As String
Set ws = ThisWorkbook.Worksheets("AÇO P20")
i = 2 'linha

ListBox1.Clear
With ws
While .Cells(i, 1).Value <> Empty
TextoCelula = .Cells(i, 3).Value
If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
ListBox1.AddItem .Cells(i, 3) ' Coluna
End If
TextBox1.SetFocus
i = i + 1
Wend
End With
End Sub

'Função Scrool
Private Sub ListBox1_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
If Not Me.ActiveControl Is Me.ListBox1 Then
Me.ListBox1.SetFocus
End If
HookListBoxScroll
End Sub

'Carrega UserForm e Dados do ListBox
Private Sub UserForm_Initialize()
Busca_TextBox1
End Sub

Com o código do jeito que está ele carrega todos os comprimentos dos materiais e mostra no userform, quando eu digito um valor ele vai filtrando o que digitei no TextBox1 e vai mostrando no UserForm.
Até ai tudo certo, só que eu tenho mais 3 colunas que eu gostaria que aparece-se que são (Largura) (Altura) (Código) só que quando carrega o userform só mostra os valores do comprimento.
Teria como fazer isso, minha ideia é que eu digite por exemplo 300 de largura e ele mostre todos os materiais com aquela largura, depois junto com os 300 eu quero 50 de altura e assim ele vai filtrando tudo... Já bati cabeça aqui e não consegui achar uma maneira de fazer isso.

Em Anexo tem a planilha.
Você não está autorizado a ver ou baixar esse anexo.
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#25473
Kleinowski
Boa tarde,

Espero ter conseguido lhe ajudar.
Fiz toda a programação no Form "Busca_Manual_Aço_P20".

Faça seus testes e verifique o código.
Você não está autorizado a ver ou baixar esse anexo.
Por kleinowski
Posts
#25475
wesleyribeiro123
Boa Tarde

Era isso mesmo, só tem uma coisa, se eu digitar algo no textbox1 e depois apagar ele carrega novamente os valores no listbox, se eu digitar algo no textbox2 ou 3 e depois apagar o listbox fica em branco.
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#25477
Ele não retorna a Pesquisa do TextBox1...
Apenas chame a Sub BuscaTextbox1 e BuscaTextbox2

Veja no anexo...
Você não está autorizado a ver ou baixar esse anexo.
Por kleinowski
Posts
#25619
Funcionou!

Só mais uma coisa, tem alguma maneira de quando eu der um duplo clique na linha do listbox ele copiar o valor da coluna 3 para a área de Transferencia do Windows?
Avatar do usuário
Por wesleyribeiro123
Posts Avatar
#25676
Brother

Veja se era isso...
Você não está autorizado a ver ou baixar esse anexo.
Por kleinowski
Posts
#25699
Wesleyribeiro123

Estou tendo um problema com esse código.

'Define TextoBox1
Private Sub TextBox1_Change()
TextoDigitado = TextBox1.Text
Call Busca_TextBox1
End Sub

'Busca TextBox1
Private Sub Busca_TextBox1()
Dim ws As Worksheet
Dim i As Integer, Y As Integer
Dim TextoCelula As String
Set ws = ThisWorkbook.Worksheets("ZAMAK PS - PM")
i = 2 'linha
Y = 0 'indice ListBox
ListBox1.Clear
With ws
While .Cells(i, 1).Value <> Empty
TextoCelula = .Cells(i, 3).Value
If UCase(Left(TextoCelula, Len(TextoDigitado))) = UCase(TextoDigitado) Then
ListBox1.AddItem .Cells(i, 3) 'Coluna1 (Comprimento)
ListBox1.List(Y, 1) = .Cells(i, 4) 'Coluna2 (Largura)
ListBox1.List(Y, 2) = .Cells(i, 5) 'Coluna3 (Espessura)
ListBox1.List(Y, 3) = .Cells(i, 6) 'Coluna4 (Código)
ListBox1.List(Y, 4) = .Cells(i, 2) 'Coluna5 (Descrição)
Y = Y + 1
TextBox1.SetFocus
End If
i = i + 1
Wend
End With
End Sub


'Define TextoBox2
Private Sub TextBox2_Change()
TextoDigitado2 = TextBox2.Text
Call Busca_TextBox2
End Sub

'Busca TextBox2
Private Sub Busca_TextBox2()
On Error Resume Next
Dim vCB As Integer, Y As Integer
vCB = ListBox1.ListCount - 1 'qtdade de itens na ListBox
Y = 0 'indice ListBox

With ListBox1
While Y <= vCB
If Left(.List(Y, 1), Len(TextoDigitado2)) <> TextoDigitado2 * 1 Then
.RemoveItem (Y)
vCB = ListBox1.ListCount - 1
Y = 0
GoTo CONTINUAR
End If
Y = Y + 1

CONTINUAR:
Wend
End With
If TextoDigitado2 = Empty Then
Call Busca_TextBox1
End If
TextBox2.SetFocus
On Error GoTo 0
End Sub


'Define TextoBox3
Private Sub TextBox3_Change()
TextoDigitado3 = TextBox3.Text
Call Busca_TextBox3
End Sub

'Busca TextBox3
Private Sub Busca_TextBox3()
On Error Resume Next
Dim vCB As Integer, Y As Integer
vCB = ListBox1.ListCount - 1 'qtdade de itens na ListBox
Y = 0 'indice ListBox

With ListBox1
While Y <= vCB
If Left(.List(Y, 2), Len(TextoDigitado3)) <> TextoDigitado3 * 1 Then
.RemoveItem (Y)
vCB = ListBox1.ListCount - 1
Y = 0
GoTo CONTINUAR
End If
Y = Y + 1
CONTINUAR:
Wend
End With
If TextoDigitado3 = Empty Then
Call Busca_TextBox1
Call Busca_TextBox2
End If
TextBox3.SetFocus
On Error GoTo 0
End Sub

Ele faz a busca no listbox da planilha.
Eu tenho 3 textbox para colocar os valores e filtrar na listbox.
O problema é que quando eu digito no textbox 2 e 3, o filtro funciona. Se eu fizer a busca na ordem TextBox1, 2, 3 ele também funciona, só que se eu digitar no TextBox2, 3 e depois digitar no textbox1 ele ignora o que ja foi digitado e começa outra busca.

Tem como arrumar isso?
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord