Fonction tri date Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Répondre
k
khech
Membre habitué
Membre habitué
Messages : 133
Inscrit le : 24 mai 2013
Version d'Excel : 2010

Message par khech » 10 novembre 2015, 11:26

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.
Avatar du membre
Gaz0line
Membre dévoué
Membre dévoué
Messages : 566
Appréciations reçues : 3
Inscrit le : 28 juillet 2012
Version d'Excel : 2010 FR, 2013 FR
Téléchargements : Mes applications

Message par Gaz0line » 10 novembre 2015, 12:28

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
“La politesse coûte peu et achète tout.” - Montaigne
Pense à cliquer sur le bouton résolu si ton problème est résolu !
k
khech
Membre habitué
Membre habitué
Messages : 133
Inscrit le : 24 mai 2013
Version d'Excel : 2010

Message par khech » 10 novembre 2015, 13:25

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é.
Avatar du membre
Gaz0line
Membre dévoué
Membre dévoué
Messages : 566
Appréciations reçues : 3
Inscrit le : 28 juillet 2012
Version d'Excel : 2010 FR, 2013 FR
Téléchargements : Mes applications

Message par Gaz0line » 10 novembre 2015, 14:17

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 ?
“La politesse coûte peu et achète tout.” - Montaigne
Pense à cliquer sur le bouton résolu si ton problème est résolu !
k
khech
Membre habitué
Membre habitué
Messages : 133
Inscrit le : 24 mai 2013
Version d'Excel : 2010

Message par khech » 10 novembre 2015, 14:43

re,
j'ai au minimum 4000 ligne et ça met environ 1 mn pour s'exécuter.
Merci
Avatar du membre
Gaz0line
Membre dévoué
Membre dévoué
Messages : 566
Appréciations reçues : 3
Inscrit le : 28 juillet 2012
Version d'Excel : 2010 FR, 2013 FR
Téléchargements : Mes applications

Message par Gaz0line » 10 novembre 2015, 15:45

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
“La politesse coûte peu et achète tout.” - Montaigne
Pense à cliquer sur le bouton résolu si ton problème est résolu !
k
khech
Membre habitué
Membre habitué
Messages : 133
Inscrit le : 24 mai 2013
Version d'Excel : 2010

Message par khech » 30 novembre 2015, 11:00

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.
Avatar du membre
Gaz0line
Membre dévoué
Membre dévoué
Messages : 566
Appréciations reçues : 3
Inscrit le : 28 juillet 2012
Version d'Excel : 2010 FR, 2013 FR
Téléchargements : Mes applications

Message par Gaz0line » 1 décembre 2015, 12:01

Y a pas de mal, merci de ton retour et bonne journée à toi !
“La politesse coûte peu et achète tout.” - Montaigne
Pense à cliquer sur le bouton résolu si ton problème est résolu !
Répondre
  • Sujets similaires
    Réponses
    Vues
    Dernier message