Se quisermos, em vez de criarmos uma ListBox na própria Worksheet, podemos criá-la num UserForm. Vejamos o exemplo:
Usamos o mesmo tipo de InputBox, já mostrado anteriormente:
O resultado será:
Para aparecer a ListBox, temos então que criar um UserForm no editor de VBA, como o que segue:
Depois, inserimos a ListBox no UserForm:
Por fim, nas propriedades da ListBox, inserimos em RowSource o seguinte:
O Código:
– Para o UserForm:
Private Sub UserForm_Initialize()
Dim rng As Range
Dim strProc As String
On Error Resume Next
Sheets("Sheet2").Columns(1).ClearContents
With Sheets("Sheet1")
strProc = InputBox("Digite a(s) letra(s) pretendidas e asterisco [ex. Jo*]ou asterisco para todos")
Range("A:A").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:=strProc, Operator:=xlAnd
Selection.Copy
ActiveSheet.Paste Destination:=Worksheets("Sheet2").Range("A:A")
Range("A1").Select
Selection.AutoFilter
End With
With Sheets("Sheet2")
Set rng = .Range(.Cells(2, 2), .Cells(Rows.Count, 1).End(xlUp))
End With
End Sub
– Para o Botão de Comando:
Private Sub CommandButton1_Click()
UserForm1.Show
End Sub