Blog Archive
-
▼
2005
(103)
-
▼
abril
(16)
- VBA: Ainda a UDF
- VBA: UDFs
- Excel: Hyperlink personalizado
- Excel: Uma solução diferente de SUMPRODUCT: a util...
- Excel: Ainda a Função SUMPRODUCT()
- VBA: Blink Label
- VBA: Label1.Caption
- VBA: O Método ActiveWorkbook.SaveAs Filename
- VBA Msg
- VBA: Centrar texto numa MsgBox
- VBA: Abrir procedimento com valor numa determinada...
- VBA: Colocar a Data numa célula
- VBA: Filtro numa ListBox II
- VBA: Filtro numa ListBox
- VBA: Filtrar por critério
- VBA: Limpar conteúdos
-
▼
abril
(16)
About Me
Com tecnologia do Blogger.
Seguidores
Estatisticas
2005-04-07
VBA: Filtro numa ListBox II
3:54 da tarde |
Publicada por
JRod - PORTUGAL |
Editar mensagem
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
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