IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Tri pas croissant pas décroissant


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut Tri pas croissant pas décroissant
    Bonjour à tous,

    Voici mon problème, je souhaite faire un tri personnaliser de mon tableau (A8:H40 ) ni croissant ni décroissant.
    J'ai lu pas mal de truc mais les solutions, que j'ai trouvé, sont applicables
    à Excel 2007 pas à 2003. Comme le trie personnalisé par liste.


    Je voudrai donc trier mon tableau A8:H40 sur la colonne H en fonction de la colonne I

    Quelqu'un aurai une idée?

    Merci d'avance.

  2. #2
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 526
    Points : 16 463
    Points
    16 463
    Par défaut
    Bonjour

    Le tri sur la base d'une liste personnalisée marche depuis pas mal de versions dont 2003 le fait.

    Donc soit tu copies ta colonne I en tant que liste personnalisée et tu utilises cette liste, soit, si tu veux rester en VBA, tu tries, sans utiliser le tri EXcel, en créant un algorithme basé sur une boucle (ou autre : il y a des méthodes de tri diverses et sans doute plusieurs exemples dans la partie ressources de ce site).

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    J'ai enfin trouvé comment faire une liste
    Outils/Options/Liste pers. /Importer la liste des cellules

    Maintenant j'ai une autre question,

    Voici mon code que j'adapterai par la suite pour mes besoins:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Selection.Sort Key1:=Range("H8"), Order1:=xlAscending, Key2:=Range("A8") _
    , Order2:=xlAscending, Key3:=Range("C8"), Order3:=xlAscending, Header:= _
    xlGuess, OrderCustom:=10, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
    xlSortNormal
    A quoi servent les DataOption?
    Est-il possible de mettre un OrderCustom1, OrderCustom2 et OrderCustom3?

    Merci d'avance

  4. #4
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 526
    Points : 16 463
    Points
    16 463
    Par défaut
    Bonjour

    Utilise l'enregistreur de macro.
    Quand tu lances un tri manuellement, tu cliques sur le bouton options et c'est là que tu sélectionnes ta liste.
    C'est le Order1 ou autre qui sera modifié

    Un conseil : rétablir les options par défaut après car sinon tous les tris de la session Excel resteront en custom (quelle que soit la clé de tri) et cela peut donner des effets bizarres.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Justement j'ai utilisé l’enregistreur de macro, c'est pourquoi je ne comprend pas à quoi servent les "DataOption1:=xlSortNormal"

    Merci pour le conseil de rétablir le OrderCustom. Et au vu de ce que tu viens de dire je suppose donc qu'il n'est pas possible de le spécifier pour chaque critères (Key1, Key2 et Key3)?

  6. #6
    Expert éminent sénior

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 526
    Points : 16 463
    Points
    16 463
    Par défaut
    Bonjour

    DataOption1:=xlSortNormal sert pour préciser le tri quand chiffres et texte sont mélangés par exemple des numéros de factures/bordereaux au format texte doivent-il être triés comme du texte ou comme des nombres.

    Sinon pour chaque Key on peut préciser standard ou basée sur une liste.

    Sur 2002 (et donc sans doute 2003) ces options restent actives car il mémorise l'option de la Key. Par exemple tu fais un tri sur 3 clés dont la première avec liste perso. Tu refais un tri sur une seule clé : si tu ne remets par l'option standard (qui est masqué derrière Options donc pas vraiment visible), le lien avec la liste reste. Cela se remet à 0 quand on ferme Excel.

    2007 et 2010 fonctionnent un peu différemment.

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Merci pour les DataOption1:=xlSortNormal.

    Par contre tu dis qu'il est possible de faire un tri par rapport à une liste sur Key1 et en normal sur key 2 et 3?

    J'ai essayé ça mais ça ne fonctionne pas:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Selection.Sort Key1:=Range("H8"), Order1:=xlAscending, Key2:=Range("A8") _
    , Order2:=xlAscending, Key3:=Range("C8"), Order3:=xlAscending, Header:= _
    xlGuess, OrderCustom1:=10, OrderCustom2:=1, OrderCustom3:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
    DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, DataOption3:= _
    xlSortNormal
    Alors comment faire pour personnaliser le tri sur chaque Key?

  8. #8
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Citation Envoyé par 78chris Voir le message
    Un conseil : rétablir les options par défaut après car sinon tous les tris de la session Excel resteront en custom (quelle que soit la clé de tri) et cela peut donner des effets bizarres.
    Quelqu'un saurait-il comment rétablir les options par défaut?
    A savoir ici OrderCustom:=1

    Merci

  9. #9
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2012
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 273
    Points : 91
    Points
    91
    Par défaut
    Pour le moment j'ai trouver une solution mais elle est vraiment pas propre.
    J'effectue un trie fictif dans la colonne AA.

    Quelqu'un a t-il une vrai méthode pour rétablir le CustomOrder?

    Merci d'avance

Discussions similaires

  1. [CLUSTER] pas PVM pas MPI pas condor ni batcheur
    Par frp31 dans le forum Administration système
    Réponses: 0
    Dernier message: 15/03/2011, 12h27
  2. [MySQL] Tri ne fonctionne pas
    Par paradeofphp dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/01/2008, 13h16
  3. [MySQL] Tri croissant ou décroissant
    Par marquito dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 25/06/2007, 14h51
  4. [C#/DataView] Pourquoi mon tri ne donne pas le resultat escompté ?
    Par Low-Fi dans le forum Accès aux données
    Réponses: 1
    Dernier message: 12/08/2006, 23h15
  5. Réponses: 9
    Dernier message: 18/03/2004, 13h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo