Seguramente ya existen post de este tipo, pero quiero sacarme la duda de una funsion, aver q consejos me pueden dar para mejorarla.
Los que hace es simplemente acomodar por fecha dentro de un rango de fechas, ¿qué es esto de rango de fechas? bueno simplemente si yo especifico a Text1 20/07/2010 y al Text2 28/07/2010 y le doy click al commandobutton [Filtrar] me filtra toda la informacion q aparece en mi listview. Dejándome solamente desde la fecha 20/07/2010 hasta la fecha 28/07/2010 todos los datos, y ordenados por fecha de menor a mayor. La información q aparece en el ListView es MUCHA!

es por eso tal ves aveces me mescle algúna q otra fecha.
Modulo:
Public Sub ordenarLV(LV As ListView, col As Integer)
Dim Formato As String, i As Long, strData() As String
1 'ORDENAR LISTVIEW POR FECHA DE PASADO A PRESENTE
2 Formato = "YYYYMMDD"
3 With LV
4 With .ListItems
5 For i = 1 To .Count
6 With .Item(i).ListSubItems(col)
7 .Tag = .Text & Chr$(0) & .Tag
8 If IsDate(.Text) Then
9 .Text = Format(CDate(.Text), Formato)
10 Else
11 .Text = ""
12 End If
13 End With
14 Next i
15 End With
16 .SortOrder = 0 '.SortOrder = (.SortOrder + 1) Mod 2 ' Mayor a menor
17 .SortKey = col
18 .Sorted = True
19 With .ListItems
20 For i = 1 To .Count
21 With .Item(i).ListSubItems(col)
22 strData = Split(.Tag, Chr$(0))
23 .Text = strData(0)
24 .Tag = strData(1)
25 End With
26 Next i
27 End With
28 End With
End Sub
Public Sub filtrarango(LV As ListView, F1 As String, F2 As String, col As Integer)
Dim i As Long
Dim Tmp As Integer
Dim Day1 As String
Dim Day2 As String
Dim dat As String
1 'FILTRAR RANGO
2 Day1 = Mid(F1, 1, 2)
3 Day2 = Mid(F2, 1, 2)
4 'dat = Mid(F1, 3, 10)
6 With LV
7 Tmp = .ListItems.Count
8 For i = 1 To Tmp
9 If i > Tmp Then Exit For
10 dat = .ListItems(i).ListSubItems(col)
11 dat = Mid(dat, 1, 2)
12 If dat >= Day1 And dat <= Day2 Then
13 Else
14 'MsgBox dat
15 .ListItems.Remove i
16 i = i - 1
17 Tmp = Tmp - 1
18 If i = Tmp Then Exit For
19 End If
20 Next i
21 End With
End Sub
Form:
Private Sub Form_Load()
Text1.Text = "20/07/2010"
Text2.Text = "28/07/2010"
End Sub
Private Sub cmdrango_Click()
Call filtrarango(LV, Text1.Text, Text2.Text, "3")
Call ordenarLV(LV, "3") 'En la columna 3 del listview tengo las fechas.
End Sub
Espero que puedan evitar mi problema, ya q muy pocas veces me mescla las fechas. Pregunto el problema puede ser porque llamo a las 2 funsiones a la ves, y si no es ese el problema cual es?
Salu2 y gracias a todos
