Boa tarde,
Consegui copiar um código vba e consegui inserir na minha planilha do jeito que eu queria, que seria pesquisar pela palavra chave (uma letra/palavra aleatoria dentro de uma célula)
Eu mexo com planilhas de Dietas e gostaria de automatiza-las, estou mandando um anexo com ela e com sugestões da alteração do meu problema
Pra mostrar o formulário de pesquisa é só clicar em uma das célula de A8:A68 duas vezes, aba "Planejamento"
1. Aparece um espaço em branco que gostaria de tirar deixar apenas a coluna com a lista dos alimentos
2. Ao clicar no alimento desejado a adicionar ele não adiciona e fica com essa faixa azul em cima, gostaria de deixar essa faixa azul e que ao clica 2 vezes o alimento fosse adicionado, caso não dê pra deixar a faixa azul, só de clicar 2 vezes no aliemnto e adicioná-lo está de bom tamanho.
qualquer coisa está aqui o código do formulário
Private Sub UserForm_Initialize()
ListBox1.ColumnCount = 2
ListBox1.ColumnWidths = "20"
End Sub
Private Sub TextBox1_Change()
'Nome da planilha em que estão os registros:
Const csPlan As String = "Alimentos"
'Em qual coluna estão os registros?
Const csCol As String = "B"
Dim col As VBA.Collection
Dim lLast As Long
Dim lRow As Long
Dim vKey As Variant
Dim ws As Excel.Worksheet
Dim l As Long
Dim lCount As Long
Do While InStr(TextBox1, " ")
TextBox1 = Replace(TextBox1, " ", " ")
Loop
TextBox1 = Trim(TextBox1)
Set col = New VBA.Collection
ListBox1.Clear
Set ws = ThisWorkbook.Worksheets(csPlan)
With ws
lLast = .Cells(.Rows.Count, csCol).End(xlUp).Row
'Considerando uma linha de cabeçalho:
For lRow = 3 To lLast
For Each vKey In Split(TextBox1, " ")
If UCase(.Cells(lRow, csCol)) Like "*" & UCase(vKey) & "*" Then
On Error Resume Next
col.Add CStr(lRow), CStr(lRow)
On Error GoTo 0
End If
Next vKey
Next lRow
End With
With ListBox1
For l = 1 To col.Count
.AddItem
lCount = .ListCount - 1
.List(lCount, 1) = col(1)
.List(lCount, 1) = ws.Cells(col(l), csCol)
Next l
End With
End Sub
Obrigado desde já.
Postado : 07/01/2018 10:16 am