Filtrar en Listbox por varios Criterios desde un Combobox.
Expertos,
Aclaro, antes que nada, No tengo la experiencia de un experto en vba, fui armando macros según la necesidad de mi trabajo día a día y cada vez gusta mas!.
Bien, les comento mi situación:
En un formulario al iniciarlo llenamos un Listbox1 con datos de Hoja1 ya con filtro establecido "Pendiente", posteriormente en un Combobox elegimos nombre de un cliente y este nos filtra según condición de este cliente y sus "Vencidos".
Intento hacer que al filtrar en el ultimo paso, pueda poner mas de una condición ya que necesito filtrar "Vencido" & "Faltan 7 días" & "Faltan 1 días".
Le comparto el código que estoy usando.
Private Sub llamabclientependiente1_Click()
Dim fin As Long, i As Long, n As Long
Dim sCadena_1 As String, sCadena_2 As String, sCadena_3 As String
'Una vez filtrados los datos por Clientes, filtramos por Situacion
Dim HOJJA As Worksheet
Set HOJJA = Sheets("Hoja1")
With HOJJA
fin = Application.CountA(HOJJA.Range("A:A"))
Bclientespendiente = Clear
Me.ListBox1.ColumnCount = 15
ListBox1.List = HOJJA.Range("A2:O" & fin).Value
ListBox1.Clear
For i = 2 To fin
sCadena_1 = .Cells(i, 10).Value
sCadena_2 = .Cells(i, 3).Value
sCadena_3 = .Cells(i, 13).Value
If UCase(sCadena_1) Like "*" & UCase("Pendiente") & "*" And _
UCase(sCadena_2) Like "*" & UCase(Bclientependiente.Value) & "*" And _
UCase(sCadena_3) Like "*" & UCase("Vencido") & "*" Then
Me.ListBox1.AddItem
Me.ListBox1.List(n, 0) = .Cells(i, 1).Value
Me.ListBox1.List(n, 1) = .Cells(i, 2).Value
Me.ListBox1.List(n, 2) = .Cells(i, 3).Value
Me.ListBox1.List(n, 3) = .Cells(i, 4).Value
Me.ListBox1.List(n, 4) = .Cells(i, 5).Value
Me.ListBox1.List(n, 5) = .Cells(i, 6).Value
Me.ListBox1.List(n, 6) = .Cells(i, 7).Value
Me.ListBox1.List(n, 7) = .Cells(i, 8).Value
Me.ListBox1.List(n, 8) = .Cells(i, 9).Value
Me.ListBox1.List(n, 9) = .Cells(i, 10).Value
Me.ListBox1.List(n, 10) = .Cells(i, 11).Value
Me.ListBox1.List(n, 11) = .Cells(i, 12).Value
Me.ListBox1.List(n, 12) = .Cells(i, 13).Value
Me.ListBox1.List(n, 13) = .Cells(i, 14).Value
Me.ListBox1.List(n, 14) = .Cells(i, 15).Value
n = n + 1
End If
Next
For i = 0 To ListBox1.ListCount - 1
Me.ListBox1.List(i, 7) = Format(ListBox1.List(i, 7), "$#,##0.00")
Next i
Me.ListBox1.ColumnWidths = "180;75;00;0;70;00;60;73;00;60;00;00;60;00;00;00;00;00;00;00"
End With
Set HOJJA = Nothing
Image5.Visible = True
Set HOJJA = Nothing
End Sub
1 Respuesta
Respuesta de Dante Amor
1