Fonction tri date

Bonjour à tous,

J’effectue une importation de fichier csv vers mon fichier excel et l'importation se passe très bien. Avant de faire l'importation, ma macro ouvre le fichier csv source et appel une autre macro TriDate pour trier en fonction de la date qui se trouve dans la colonne "B" (ordre décroissant). Cette partie fonctionne aussi mais le temps d’exécution pour effectuer le tri est long.

J'aimerai savoir si une autre méthode pour effectuer le tri plus rapidement.

Macro pour effectuer le tri :

Sub TriDate()
    DL = ActiveSheet.Range("I65536").End(xlUp).Row
    Range("A1:AD" & DL).Select ' le tableau
    Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
        DataOption1:=xlSortNormal
End Sub

Merci d'avance.

Salut Khech !

Essaie de réduire le code comme ceci déjà, et vois si ça a un impact (pas sûr, c'est juste une manière condensée de l'écrire, mais du coup il y a moins de paramètres inutiles à vérifier donc ça peut jouer) :

Sub TriDate()
    DL = ActiveSheet.Range("I65536").End(xlUp).Row
    Range("A1:AD" & DL).Sort Key1:=Range("B1"), Order1:=xlAscending
End Sub

re Gaz0line,

merci pour votre réponse, même avec moins de paramètres comme vous l'avez suggéré ça n'a rien changé.

Y a combien de lignes dans ton fichier ? Plus ton tableau est grand plus c'est long :/

Tu as déjà 30 colonnes, donc si en plus tu as 1000 lignes, forcément c'est long.

Enfin, qu'est-ce que tu appelles "long" ? ça met combien de temps concrètement ?

re,

j'ai au minimum 4000 ligne et ça met environ 1 mn pour s'exécuter.

Merci

Re !

Essaie ce code, j'y ai bloqué la mise à jour de l'écran pendant le déroulement de la macro. Le MsgBox à la fin te préviendra que c'est fini ^^

Qu'est-ce que ça donne ?

Sub TriDate()

Application.ScreenUpdating = False

    DL = ActiveSheet.Range("I65536").End(xlUp).Row
    Range("A1:AD" & DL).Sort Key1:=Range("B1"), Order1:=xlAscending

Application.ScreenUpdating = True
MsgBox "Fin"

End Sub

Bonjour Gaz0line,

Merci pour la réponse. J'utilise ta macro mais pour me faciliter encore plus la tâche j'ai d'abord fait plusieurs traitements pour diminuer le maximum de ligne possible et à la fin d'appeler la macro TriDate. Désolé du retard pour faire un retour.

Bonne journée.

Y a pas de mal, merci de ton retour et bonne journée à toi !

Rechercher des sujets similaires à "fonction tri date"