Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trie par date et heure avec VBA

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 !

NICOALBERT

XLDnaute Occasionnel
Bonsoir le Forum,

J'ai un fichier avec des dates et heure dans 2 colonnes différentes et je cherche à les trier du 31/12 au 01/01 et la même chose pour les heures

exemple :

31/12/2016 03h00
31/12/2016 02h00
31/12/2016 01h00
.........
01/01/2016 03h00
01/01/2016 02h00

le mieux serait en VBA car j'ai plusieurs fichiers sur plusieurs année

J'ai bien tenté de le faire avec le filtre mais ça mélange tout 😡

Cdlt Nicoalbert
 

Pièces jointes

Bonsoir le forum ,

Je vient de résoudre mon problème en modifiant la forme de la date de 01/01/2016 je suis passé en 01-01-2016 et puis en 1 janvier 2016et après mon trie je suis repassé en format 01/01/2016.

Cdlt Nicoalbert
 
Bonsoir Nicoalbert
une approche
VB:
Sub Test()
    With Feuil1
       With .Range("A1").CurrentRegion
            .Columns(4) = Application.Substitute(.Columns(4), "h", ":")
            .Sort Cells(1, 3), xlAscending, Cells(1, 4), , xlAscending, , , xlGuess
       End With
    End With
End Sub
bonne fin de Soirée
Amicalement
Jean Marie
 
Bonjour le forum,
Bonjour Jean-Marie,

j'ai essayé de modifier ton code pour associer la date et l'heure mais il y a toujours une erreur sur le trie, peux tu m'éclairer?
Code:
Sub Test()
    With Feuil2
       With .Range("A1").CurrentRegion
            .Columns(16) = Application.Substitute(.Columns(4), "h", ":")
            .Columns(15) = "=RC[-12]+RC[+1]"
            .Sort Cells(1, 15), xlAscending
            .Columns(15).Select
            Selection.ClearContents
            .Columns(16).Select
            Selection.ClearContents
       End With
    End With
End Sub
JHA
 
Dernière édition:
re
peut être comme ceci
le problème vient je pense du fait que les Colonnes 15 et 16 dans ton exemple ne sont pas prises en compte lors de la détermination de la Plage de référence ".Range("A1").CurrentRegion" elle ne comprends pas les Colonnes rajoutées ensuite !
voir avec ce code :
VB:
Sub Test()
    With Feuil2
       With .Range("A1").CurrentRegion
            .Columns(16) = Application.Substitute(.Columns(4), "h", ":")
            .Columns(15) = "=RC[-12]+RC[+1]"
        End With    
        With.Range("A1").CurrentRegion
                 .Sort Cells(1, 15), xlAscending
            .Columns(15).Select
            Selection.ClearContents
            .Columns(16).Select
            Selection.ClearContents
        End With
    End With
End Sub[/VB]
à tester !
Bonne fin de Journée
Amicalement
Jean marie
 
Re
Si le problème c'est le format des heures tu aurais pu remettre les heures au format initial
VB:
Sub Test()
   With Feuil1
       With .Range("A1").CurrentRegion
            .Columns(4) = Application.Substitute(.Columns(4), "h", ":")
            .Sort Cells(1, 3), xlAscending, Cells(1, 4), , xlAscending, , , xlGuess
            .Columns(4) = Application.Substitute(.Columns(4), ":";"h")
       End With
   End With
End Sub[/vb]
Bonne fin de Soirée
Amicalement
Jean marie
 
Bonsoir à tous,
Bonsoir Jean-Marie,

Je pense que le tri n'est pas correct si on ne met pas la date et l'heure ensemble, c'est pour cela que j'ai mis la date et l'heure dans une autre colonne.

JHA
 
- 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
7
Affichages
181
Réponses
8
Affichages
663
Réponses
8
Affichages
493
Réponses
6
Affichages
305
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…