Filtrar por código y fecha y mostrarlo en listbox

Estube pobando esta macro pero solo me deja filtrar por fechas, y lo que quisiera es que FECHA1 sea reemplasado para filtrar por codigo y sea mostrado en el listbox en su respectiva columna y no uno debajo de otro.

Alguien me puede decir que código le falta a mi macro, gracias .

Application.ScreenUpdating = False

Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = "180 pt;150 pt;100pt"
dni = CDate(txtdni)
fecha2 = CDate(txtfecha)
dni =
fecha2 = Format(fecha2, "mm/dd/yyyy")
Range("a3").AutoFilter Field:=5, Criteria1:=">=" & dni, Operator:=xlAnd, Criteria2:="<=" & fecha2
For Each celda In Range("B3:D50" & Range("a65000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
ListBox1.AddItem celda
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = celda.Offset(0, 1)
ListBox1.List(i, 3) = celda.Offset(0, 3)
ListBox1.List(i, 4) = celda.Offset(0, 4)
Next

1 respuesta

Respuesta
1

Tu macro tiene muchos errores. Te los explico en cada línea.

Sub macroJavier()
'ajustada x Elsamatilde

Application.ScreenUpdating = False

Me.ListBox1.ColumnCount = 3
Me.ListBox1.ColumnWidths = "180 pt;150 pt;100pt"
'txtdni no debes convertirlo a fecha ya que se trata de un nro
           'dni = CDate(txtdni)
fecha2 = CDate(txtfecha)
dni = txtdni
fecha2 = Format(fecha2, "mm/dd/yyyy")

'a continuación se filtra por col E >= dni y <= fecha2... NO tiene sentido.. ver comentarios al pie
   'Range("a3").AutoFilter Field:=5, Criteria1:=">=" & dni, Operator:=xlAnd, Criteria2:="<=" & fecha2

'está mal definido el fin de rango
         'For Each celda In Range("B3:D50" &            Range("a65000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
For Each celda In Range("B3:D" & Range("a65000").End(xlUp).Row).SpecialCells(xlCellTypeVisible)
ListBox1.AddItem celda
i = ListBox1.ListCount - 1
ListBox1.List(i, 1) = celda.Offset(0, 1)
ListBox1.List(i, 3) = celda.Offset(0, 3)
ListBox1.List(i, 4) = celda.Offset(0, 4)
Next
End Sub

Este es un ejemplo de filtros por 2 columnas:

ActiveSheet.Range("$A$1:$H$12").AutoFilter Field:=5, Criteria1:=">=" & dni, _
Operator:=xlAnd
ActiveSheet.Range("$A$1:$H$12").AutoFilter Field:=6, Criteria1:="<=" & fecha2, _
Operator:=xlAnd

Armala con estos cambios, definí bien cuál es tu col para Dni y cuál la que contiene la fecha y luego probala nuevamente. Si te sigue dando algún error escribila aquí con todas las explicaciones de lo que necesitas filtrar. Una imagen de la ubicación de tus datos también ayudará a resolverlo.

¡Gracias! elsa te pasaste me ayudaste bastante, ya corregí los errores y ahora anda perfecto gracias por tu ayuda, eres lo máximo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas