Problème de tri

Bonjour,

J’ai un problème de tri pour cette feuille de calcul.

Je voudrais la trier selon la colonne G, mais ça trie d’abord selon le jour et le mois sans tenir compte de l’année, puis seulement après, ça trie par année. J’obtiens donc un résultat du genre :

01.01.1987

01.01.2004

02.01.1980

02.01.1990

05.01.1932

etc.

Savez-vous ce qu’il faut modifier afin qu’un tri « normal » soit possible ? J’ai essayé de regarder du coté du format des cellules, des espaces avant certaines dates, etc., mais je ne trouve rien.

Mon fichier réel comporte bien plus de lignes.

A vous relire.

Bonjour

Tes dates en colonne G contiennent une espace après la date, ce qui les transforme en valeur de texte

Soit tu supprimes tes espaces cellule par cellules

Soit tu modifies dans une autre colonne et tu tries sur cette nouvelle colonne (Colonne V dans l'exemple)

Soit après avoir fait la colonneV, tu fais un copier collage spécial de la colonne V vers ta colonne G et tu appliques le format personnalisé jj.mm.aaaa

Cordialement

Bonjour à tous,

Cette macro te mettra les colonnes G:H au format date,

tu pourras ensuite trier normalement

Sub FormateDate()
Dim Lg&, Cel As Range
    Application.ScreenUpdating = False
        Lg = Range("a" & Rows.Count).End(xlUp).Row
    For Each Cel In Range("g2:h" & Lg)
        If Not IsDate(Cel) Then
            Cel = Trim(Cel) 'supprime espaces
            Cel = Format(CDate(Application.Substitute(Cel, ".", "/")), "m/d/yyyy")
        End If
    Next Cel
End Sub

Amicalement

Claude

Bonsoir Amadéus, bonsoir Claude et merci à tous deux pour vos réponses.

Amadéus, ta formule fonctionne à merveille et j'aurais ainsi résolu mon problème. Mes 18'000 lignes peuvent maintenant être triées

Claude, je n'arrive pas à utiliser ton code. Selon le fichier ci-joint, je l'ai placé dans un module. Si je lance la macro après avoir placé un point d'arrêt sur la ligne Cel = Trim(Cel), celle-ci n'est jamais arrêtée à cet endroit, ce qui voudrait dire que le code ne reconnait jamais une cellule comme n'étant pas une date et que cette suppression d'espaces n'est jamais activée. Je ne vois pas ce que je devais modifier afin de corriger cela.

Encore une fois merci à tous deux pour votre aide

Bonne soirée.

Bonsoir,

C'est bizarre, sur ton 1er fichier çà ne reconnaissait pas Not IsNumeric

peut-être as-tu changer le format ?

essaye avec

Sub FormateDate()
Dim Lg&, Cel As Range
    Application.ScreenUpdating = False
        Lg = Range("a" & Rows.Count).End(xlUp).Row
    For Each Cel In Range("g2:h" & Lg)
         [barrer]'If Not IsDate(Cel) Then[/barrer]
         If Not IsNumeric(Cel) Then
            Cel = Trim(Cel) 'supprime espaces
           Cel = Format(CDate(Application.Substitute(Cel, ".", "/")), "m/d/yyyy")
        End If
    Next Cel
End Sub

edit: oublie cette macro, c'est trop dangereux, 1 coup sur 2 çà interverti les jours avec les mois,

si tu souhaite vraiment une macro, il faudra la revoir,

dis-moi

Claude

Re,

dubois a écrit :

peut-être as-tu changer le format ?

Non, soit pour faire mes essais avortés précédents, soit pour mes derniers essais maintenant, je suis reparti du fichier que j'avais placé sur mon premier message ci-dessus.

Mais bon, ça n'a pas trop d'importance, puisque ça fonctionne maintenant à merveille

Encore une fois merci beaucoup et meilleures salutations.

Bonjour,

Mais bon, ça n'a pas trop d'importance, puisque ça fonctionne maintenant à merveille

Si tu parles de la macro, as-tu lu mon édit ?

Attention aux dates (jours et mois intervertis si tu relance la macro)

fais gaffe !

Claude

Salut Claude,

Effectivement que je n'avais pas vu ton Edit, probablement que j'ai testé ta nouvelle macro entre-temps que tu l'écrivais.

J'avais essayé d'appliquer ta nouvelle proposition à mon fichier réel de 18'000 lignes et c'est vrai que - comme j'avais entretemps avancé dans mon travail sur la base du fichier corrigé par la formule d'Amadéus - je n'ai pas poussé mes tests aussi loin que je l'aurais dû.

Pour moi il n'est plus nécessaire d'améliorer cette macro puisque j'ai ma solution ; je tiens cependant à te remercier très sincèrement de toute la peine que tu t'es donnée pour moi.

Bonnes salutations.

Rechercher des sujets similaires à "probleme tri"