XL 2010 Trie jours/heures/minutes

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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

Bonjour Cisco,

Merci de m'avoir répondu si vite.
J'avoue que je préfère (et de loin LOL) un code vba plutôt qu'une formule matricielle.
Je la mets où pour essayer votre formule matricielle car c'est la colonne de saisie qui est à trier.
Encore merci,
Amicalement,
Lionel,
 
Bonjour

Sur ton fichier exemple, tu la mets sur H2. Bien sûr, comme je suppose que ta liste ne s'arrête pas sur la ligne 16, il faut remplacer dans la formule ce nombre par le n° de la dernière ligne de ton fichier, ou par un nombre encore plus grand. Ensuite, tu tires cette formule vers le bas aussi longtemps que désiré.
 

Pièces jointes

Merci Cisco de m'avoir répôndu encore une fois 🙂

Malheureusement, je ne peux pas inclure une colonne supplémentaire dans mon fichier de travail car déjà très chargé et cela m'entrainerait dans "de grosses" modifs".

Il n'y a pas moyen avec un code vba ?
Amicalement,
Lionel,
 
Bonjour à tous 🙂

Attention Lionel, il faut enlever toutes les heures qui ont 00:00:00, sinon ça ne marche pas.

VB:
Sub Tri_Ascendant()
  With ActiveSheet
  derlig = .Range("e" & Rows.Count).End(xlUp).Row
  For i = 2 To derlig
  .Range("e" & i).Sort Key1:=.Cells(2, 5), Order1:=xlAscending, Header:=xlNo, _
  OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
   DataOption1:=xlSortNormal, DataOption1:=xlSortTextAsNumbers
  Next i
  End With
End Sub
 
Bonjour à tous 🙂

Attention Lionel, il faut enlever toutes les heures qui ont 00:00:00, sinon ça ne marche pas.

VB:
Sub Tri_Ascendant()
  With ActiveSheet
  derlig = .Range("e" & Rows.Count).End(xlUp).Row
  For i = 2 To derlig
  .Range("e" & i).Sort Key1:=.Cells(2, 5), Order1:=xlAscending, Header:=xlNo, _
  OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
   DataOption1:=xlSortNormal, DataOption1:=xlSortTextAsNumbers
  Next i
  End With
End Sub

Bonjour Lone,
Merci à toi aussi d'être encore présent 😉
Je ne comprends pas : il faut enlever toutes les heures qui ont 00:00:00
Lionel,
 
Bonjour

@ Lone-wolf : Ma proposition enlevait toutes les dates finissant en 00:00:00, ce qui ne veut pas dire que c'est exactement ce que veut arthour973. Peut être veut-il les avoir à la fin. A lui de nous le dire.

@ plus
 
Dernière édition:
Re Cisco,
Re Lone,

Effectivement, ce code va rentrer dans mon fichier de travail qui utilise le calendrier de Roland.

Les dates et heures et minutes sont sélectionnées et s'affichent comme indiqué par Lone : 25/02/2017 00:00:00
Mon niveau de technicité ne me permet pas modifier le code déjà pas simple (pour moi LOL).
Amicalement,
Lionel,
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
13
Affichages
825
Retour