Problème de tri  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

Problème de tri

Messagepar Yvouille » 19 Jan 2012, 16:08

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.
Fichiers joints
VersBilanzAktive_Forum.zip
(147.11 Kio) Téléchargé 7 fois
Yvouille
Avatar de l’utilisateur
Yvouille
Membre impliqué
 
Messages: 2076
Inscription: 06 Avr 2007, 07:03
Localisation: CH - Valais de cœur
Version Excel: 2003, 2007, 2010 All.

Re: Problème de tri

Messagepar Amadéus » 19 Jan 2012, 16:32

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
Fichiers joints
VersBilanzAktive_Forum.zip
(145.73 Kio) Téléchargé 4 fois
Amadéus vous informe que, pour cause de saturation, il ne peut plus répondre aux messages privés non sollicités.
Amadéus
Modérateur
 
Messages: 10874
Inscription: 07 Mai 2006, 11:18
Localisation: Ariège-Pyrénées France
Version Excel: Office Excel 2003 FR

Re: Problème de tri

Messagepar dubois » 19 Jan 2012, 17:09

Bonjour à tous,

Cette macro te mettra les colonnes G:H au format date,
tu pourras ensuite trier normalement
Code: Tout sélectionner
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
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Problème de tri

Messagepar Yvouille » 19 Jan 2012, 23:10

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 :D :D

Bonne soirée.
Fichiers joints
VersBilanzAktive_Forum_Claude.zip
(152.95 Kio) Téléchargé 1 fois
Yvouille
Avatar de l’utilisateur
Yvouille
Membre impliqué
 
Messages: 2076
Inscription: 06 Avr 2007, 07:03
Localisation: CH - Valais de cœur
Version Excel: 2003, 2007, 2010 All.

Re: Problème de tri

Messagepar dubois » 19 Jan 2012, 23:29

Bonsoir,

C'est bizarre, sur ton 1er fichier çà ne reconnaissait pas Not IsNumeric
peut-être as-tu changer le format ?
essaye avec
Code: Tout sélectionner
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
         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
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Problème de tri  Sujet résolu

Messagepar Yvouille » 19 Jan 2012, 23:59

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 :D

Encore une fois merci beaucoup et meilleures salutations.
Yvouille
Avatar de l’utilisateur
Yvouille
Membre impliqué
 
Messages: 2076
Inscription: 06 Avr 2007, 07:03
Localisation: CH - Valais de cœur
Version Excel: 2003, 2007, 2010 All.

Re: Problème de tri

Messagepar dubois » 20 Jan 2012, 12:29

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
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9256
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Re: Problème de tri

Messagepar Yvouille » 20 Jan 2012, 12:56

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.
Yvouille
Avatar de l’utilisateur
Yvouille
Membre impliqué
 
Messages: 2076
Inscription: 06 Avr 2007, 07:03
Localisation: CH - Valais de cœur
Version Excel: 2003, 2007, 2010 All.


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google Adsense [Bot] et 5 invités