RE:alguien sabe de listview
Yo consegui este codigo en este foro y funciona muy bien, lo unico es que yo lo utilizo lel view del listview como report y no como list, no se si eso dará algun problema aunque no deberia, el codigo es el siguiente(es un poco largo):
Public Function OrdenarLSV(ByVal objLSV As Object, ByVal Columna As Long)
With objLSV
Dim I As Long
Dim Formato As String
Dim strData() As String
Select Case UCase(.ColumnHeaders.Item(Columna + 1).Tag)
Case "DATE"
Formato = "YYYYMMDDHhNnSs"
With .ListItems
If (Columna > 0) Then
For I = 1 To .Count
With .Item(I).ListSubItems(Columna)
.Tag = .Text & Chr$(0) & .Tag
If IsDate(.Text) Then
.Text = Format(CDate(.Text), Formato)
Else
.Text = ""
End If
End With
Next I
Else
For I = 1 To .Count
With .Item(I)
.Tag = .Text & Chr$(0) & .Tag
If IsDate(.Text) Then
.Text = Format(CDate(.Text), Formato)
Else
.Text = ""
End If
End With
Next I
End If
End With
.SortOrder = (.SortOrder + 1) Mod 2
.SortKey = Columna
.Sorted = True
With .ListItems
If (Columna > 0) Then
For I = 1 To .Count
With .Item(I).ListSubItems(Columna)
strData = Split(.Tag, Chr$(0))
.Text = strData(0)
.Tag = strData(1)
End With
Next I
Else
For I = 1 To .Count
With .Item(I)
strData = Split(.Tag, Chr$(0))
.Text = strData(0)
.Tag = strData(1)
End With
Next I
End If
End With
Case "NUMBER"
Formato = String(30, "0") & "." & String(30, "0")
With .ListItems
If (Columna > 0) Then
For I = 1 To .Count
With .Item(I).ListSubItems(Columna)
.Tag = .Text & Chr$(0) & .Tag
If IsNumeric(.Text) Then
If CDbl(.Text) >= 0 Then
.Text = Format(CDbl(.Text), Formato)
Else
.Text = "&" & InvNumber(Format(0 - CDbl(.Text), Formato))
End If
Else
.Text = ""
End If
End With
Next I
Else
For I = 1 To .Count
With .Item(I)
.Tag = .Text & Chr$(0) & .Tag
If IsNumeric(.Text) Then
If CDbl(.Text) >= 0 Then
.Text = Format(CDbl(.Text), Formato)
Else
.Text = "&" & InvNumber(Format(0 - CDbl(.Text), Formato))
End If
Else
.Text = ""
End If
End With
Next I
End If
End With
.SortOrder = (.SortOrder + 1) Mod 2
.SortKey = Columna
.Sorted = True
With .ListItems
If (Columna > 0) Then
For I = 1 To .Count
With .Item(I).ListSubItems(Columna)
strData = Split(.Tag, Chr$(0))
.Text = strData(0)
.Tag = strData(1)
End With
Next I
Else
For I = 1 To .Count
With .Item(I)
strData = Split(.Tag, Chr$(0))
.Text = strData(0)
.Tag = strData(1)
End With
Next I
End If
End With
Case Else
.SortOrder = (.SortOrder + 1) Mod 2
.SortKey = Columna
.Sorted = True
End Select
End With
objLSV.Refresh
End Function