XL 2010 Trie jours/heures/minutes

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,

J'espère que vous allez tous bien ;)

Me voici de retour pour un souci de tri.

exemple de données triées :
25/02/2017 00:00
25/02/2017 00:00
25/02/2017 00:00
25/02/2017 08:30
25/02/2017 08:45

Ce que je voudrais obtenir :
25/02/2017 08:30
25/02/2017 08:45

25/02/2017 00:00
25/02/2017 00:00
25/02/2017 00:00

Malgré mes recherches sur mon copain le net et mon forum préféré + mes tentatives, je n'y suis pas arrivé.
Auriez-vous la solution ?

Je joins un classeur test explicatif avec le résultat dont j'ai besoin.
Avec mes remerciements,
Je vous souhaite une belle journée,
Amicalement,
Lionel,
 

Pièces jointes

  • Trie par jours et heures minutes.xlsm
    19.6 KB · Affichages: 26

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re-Pierre-Jean,

En fait, comme toujours, c'est différent dans mon classeur de travail et je n'arrive pas à modifier ton code.

mon code simple de tri d'origine + ton code :
Code:
Tri d'origine de la ligne 7 à la ligne 20000 (tri sur la colonne AG)
    Rows("7:20000").Select
    ActiveWorkbook.Worksheets("SuivisAppels").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("SuivisAppels").Sort.SortFields.Add Key:=Range("ag7:ag20000") _
        , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("SuivisAppels").Sort
        .SetRange Range("A7:BBZ20000")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With


Code tri Pierre-Jean
Sub Trie_ascendant1()
   tablo = Range("E2:E16")
For n = LBound(tablo, 1) To UBound(tablo, 1)
   For m = LBound(tablo, 1) To UBound(tablo, 1)
   'si l'heure est à 0 alors on ajoute 1 jour (ou presque puisque 24 h n'existe pas)
    If tablo(m, 1) - Int(tablo(m, 1)) = 0 Then tablo(m, 1) = tablo(m, 1) + CDate("23:59:59")
    ' on classe de façon classique
      If tablo(m, 1) > tablo(n, 1) Then
          temp = tablo(m, 1)
          tablo(m, 1) = tablo(n, 1)
          tablo(n, 1) = temp
      End If
   Next
Next
' si l'heure est à 0 on enleve ce qui a été ajouté
For n = LBound(tablo, 1) To UBound(tablo, 1)
   If Abs(tablo(n, 1) - Int(tablo(n, 1)) - CDate("23:59:59")) < 0.001 Then tablo(n, 1) = Int(tablo(n, 1))
Next
Range("E2").Resize(UBound(tablo)) = tablo
End Sub

J'ai encore besoin d'un coup de pouce et je joins le classeur test.
Un grand merci pour ton aide,
Amicalement,
Lionel,
 

Pièces jointes

  • Trie par jours et heures minutes.xlsm
    21.4 KB · Affichages: 22
Dernière édition:

pierrejean

XLDnaute Barbatruc
Re
Enfin arthour !!!
Ton code classe la zone A7:BBZ2000 selon la colonne AG
Cela n'a strictement rien a voir avec le problème de départ !!!!
Par ailleurs , je suppose que les dates avec heures a 00:00 ne sont pas toutes identiques
Comment doivent elles etre classées ?
Copie une vingtaine de lignes représentatives de ton vrai fichier et indique le résultat que tu souhaites
Je sais cela fait du job mais écrire la bonne macro en fait aussi !!!
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour Pierre-Jean,

J'ai essayé de faire un extrait de mon fichier mais c'est trop long.
En fait, c'est bien la colonne E qui est à trier donc pas de souci de ce cpoté.
Monsieur problème est que dans mon fichier, c'est toute la ligne qui doit être triée :
Rows("7:20000").Select

C'est cela que je n'arrive pas à coder.
Je remets le classeur avec l'explication.

Merci à toi,
Amicalement,
Lionel,
 

Pièces jointes

  • Trie par jours et heures minutes.xlsm
    21.4 KB · Affichages: 26

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonsoir Pïerre-Jean,

Merci de m'avoir répondu.

J'essaie de me faire comprendre (LOL, je ne suis pas toujours clair :p

Dans ton code, tu écris : tablo = Range("E2:E16")

J'ai besoin qu'à la place le code trie les lignes entièrement de la ligne 7 à la ligne 20000 sur la colonne E

autrement dit : trier de Rows("7:20000").Select sur la colonne E

Je vais réfléchir pour le dire autrement si besoin.
Amicalement,
Lionel,
 

Discussions similaires

Réponses
18
Affichages
1 K
Réponses
22
Affichages
1 K

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 196
Messages
2 086 101
Membres
103 116
dernier inscrit
kutobi87