Blog Archive

About Me

A minha foto
JRod - PORTUGAL
Microsoft [MVP] - Excel (10º ano consecutivo)
Ver o meu perfil completo
Com tecnologia do Blogger.

Seguidores

Estatisticas

Free Blog Counter

eXTReMe Tracker
2005-04-07
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