JORDAN
XLDnaute Impliqué
Bonjour tout le monde,
Je charge une ListView avec des données stockées dans un fichier .Csv avec
le code ci-dessous, maintenant je cherche à trier cette listview par ordre alphabétique
de la 2ème colonne, dès son alimentation, vu que les données de la listview sont modifiées
dès la saisie d'un autre caractère dans la Cbx,
Mais je ne sais pas trop comment faire ça depuis un fichier csv
Auriez-vous une solution pour faire ce tri ??
Par avance merci et bon week-end
Je charge une ListView avec des données stockées dans un fichier .Csv avec
le code ci-dessous, maintenant je cherche à trier cette listview par ordre alphabétique
de la 2ème colonne, dès son alimentation, vu que les données de la listview sont modifiées
dès la saisie d'un autre caractère dans la Cbx,
Mais je ne sais pas trop comment faire ça depuis un fichier csv
Auriez-vous une solution pour faire ce tri ??
Par avance merci et bon week-end
Code:
Sub ChargCbxRec()
' ---------------
' Remplir la LVW1
' ---------------
Dim NbreCar As Integer
Dim myFso As Object, StoCsv As Object, CsvLine As String
Dim I As Long
Dim LigneTexte As String
Dim ColonneTexte As Variant
Dim Ligne As ListItem
Dim J As Integer
On Error Resume Next
Set myFso = CreateObject("Scripting.FileSystemObject")
' Gestion des erreurs
' -------------------
If CbxDes = "" Then
UsfRec.CBX2.SetFocus
Exit Sub
End If
' Nombre de caractères dans la CBX2
' ----------------------------------
NbreCar = Len(CbxDes)
' Vider la ListView
' -----------------
UsfRec.LVW1.ListItems.Clear
' Définit le fichier de recherche
' -------------------------------
Set StoCsv = myFso.OpenTextFile("C:\ARCHIVES\STOCK.csv", 1)
' Boucle de recherche
' -------------------
While Not StoCsv.AtEndOfStream
' Stockage des données lues
' -------------------------
CsvLine = StoCsv.ReadLine
' Conditions de recherche
' -----------------------
If Left(Split(CsvLine, ";")(1), NbreCar) = CbxDes Then
If Split(CsvLine, ";")(4) = ChoixRecherche Then
J = J + 1
' Remplir la LVW1
' --------------------
ColonneTexte = Split(CsvLine, ";")
Set Ligne = UsfRec.LVW1.ListItems.Add(, , ColonneTexte(0))
With UsfRec.LVW1
.ListItems(J).ListSubItems.Add , , Split(CsvLine, ";")(1)
.ListItems(J).ListSubItems.Add , , Split(CsvLine, ";")(2)
.ListItems(J).ListSubItems.Add , , Split(CsvLine, ";")(3)
.ListItems(J).ListSubItems.Add , , Split(CsvLine, ";")(4)
.ListItems(J).ListSubItems.Add , , Split(CsvLine, ";")(5)
.ListItems(J).ListSubItems.Add , , Split(CsvLine, ";")(6)
End With
End If
End If
Wend
' Fermeture du fichier lu
' -----------------------
StoCsv.Close
' Remise à zéro des variables
' ---------------------------
Set StoCsv = Nothing: Set myFso = Nothing: Set Ligne = Nothing
End Sub