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
Se quisermos, em vez de criarmos uma ListBox na própria Worksheet, podemos criá-la num UserForm. Vejamos o exemplo:
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ud8S-dwIVDGMTsGmiPNP0C8lv6S_FJjRheMwnhNzOQDCquVgBvPnORy1NkoFCKqOysJPaMAXYCc8oYfm03uEUfkBCTRVX28QkFMmXwER600BOklA=s0-d)
Usamos o mesmo tipo de InputBox, já mostrado anteriormente:
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_v2zOmHSsXcyFz-6NRHmgHUdEVIbpqTKClkPRik2ao929Hdr5l8ceQauBLO-pYk2E3FwGDrOMW4FuERvZoSTObgNpXRNRr1d4teCPdIQg9SJqSd=s0-d)
O resultado será:
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uy0MEHXy2-oIa99QY5G0vC01veytzQg_Mggt5x5gcwEr-XbgQjCo5M7OTEYF8e3sn7U2cUIapSqvepbOAx_Yz_N1t4sd-IQwidDbgIVGQxCS8oqw=s0-d)
Para aparecer a ListBox, temos então que criar um UserForm no editor de VBA, como o que segue:
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_uWXGyV7OzS22wOm-7Bf4yskvPnN5VdXJ9Kgqk93rU3VJCd3S9ZjHlxvz2ZhU73E8SjLBdmnR64ZBLVaJwIhGOJnA6ZmyPh4cMs-o2h_hxHAlIU2A=s0-d)
Depois, inserimos a ListBox no UserForm:
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tb-YESo2Sm84YzmqQ573R2Dy3V-MFUSzEjVy0dAf_q7M924Rw7PrkRdrH9f_VdcUfyydnSlUu2QOoy7Im_CCjy9b4BVqw09SuYNhn8kGHiJxXhZw=s0-d)
Por fim, nas propriedades da ListBox, inserimos em RowSource o seguinte:
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_u27Yek0qdl4u732S9gdgqbHJ-yNwlu2qmjxCvtOTs4H7dkDZO0ltuvr87C77crn1SGHtsBN6FSI5F0BfRSoedrtD1Dd_sROv0HA04Kct2CX72ngj-f=s0-d)
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