'date à rechercher (année , mois, jour) (c'est un exemple) Dim DateRecherche As New Date(2010, 4, 7) 'stockage du titre Dim titre As String 'nouvelle collection triée Dim col As New Collections.SortedList 'ouverture du flux pour lecture (en admettant que monfichier.csv soit dans le repertoire de l'application) Using f As IO.StreamReader = New IO.StreamReader(Application.StartupPath & "\monfichier.csv") 'lecture du titre (entetes des colonnes) titre = f.ReadLine() 'lecture du fichier complet Do While Not f.EndOfStream Dim txt As String = f.ReadLine 'extraction de la colonne de date qui servira de clef de tri pour la collection 'dans ton exemple les dates sont sur la colonne 0 (dans ton cas le séparateur est la virgule) 'le c signifie que le split est un Char Dim info As String = txt.Split(","c)(0) 'date lue dans le fichier Dim d As Date 'on essaie de parser la date (attention au format américain qui met le mois 'et le jour dans l'autre sens) If Date.TryParse(info.Trim, d) = True Then 'comme on peut voir la date (d) sert de clef de tri et txt est la ligne complète à stocker dans la collection col.Add(d, txt) End If Loop End Using 'ouverture du flux pour ecriture Using f As IO.StreamWriter = New IO.StreamWriter(Application.StartupPath & "\resultat.csv", False, System.Text.Encoding.Default) 'ecriture du titre f.WriteLine(titre) 'element contiendra la ligne à écrire Dim element As String 'pour chaque item de la collection on compare la clef à la date à rechercher 'si elle est supérieure ou égale on écrit dans le flux la ligne complète stockée dans la collection For x = 0 To col.Count - 1 If col.GetKey(x) >= DateRecherche Then element = DirectCast(col.Item(col.GetKey(x)), String) f.WriteLine(element) End If Next End Using