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 :

Trier une plage


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2012
    Messages : 75
    Par défaut Trier une plage
    Bonjour,

    Sur une feuille j'ai un tableau de 9 colonnes que je voulais trier sur base de
    de la première colonne qui est de type Date lles autres colonnes sont de type
    numérique

    Je suis partis du code provenant de l'enregistrement d'une macro que j'ai adapté et qui fonctionne correctement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Sub TrierPlage()
     
        Dim Ws As Worksheet, MaPlage As Range, PlageTri As Range
        Dim DerLgn As Byte
     
        '*** Initialiser
        Set Ws = Worksheets("CrsDevises")
        DerLgn = Ws.[B6].End(xlDown).Row
        Set MaPlage = Ws.Range("B6:J" & DerLgn)
        Set PlageTri = Ws.Range("B6:B" & DerLgn)
     
        '*** Trier la plage
        Ws.Sort.SortFields.Clear
        Ws.Sort.SortFields.Add Key:=PlageTri, SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
     
        With Ws.Sort
            .SetRange MaPlage
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
     
        '*** Libère mémoire
        Set Ws = Nothing
        Set MaPlage = Nothing
        Set PlageTri = Nothing
     
    End Sub
    En fouinant dans l'aide en ligne et sur le forum j'ai un autre code que j'ai testé sur une autre plage de données de même structure et qui fonctionne également correctement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Sub Test_Trier()
     
        Dim Ws As Worksheet, MaPlage As Range, PlageTri As Range
        Dim DerLgn  As Byte
     
        '*** Initialiser
        Set Ws = Worksheets("CrsDevises")
        DerLgn = Ws.[A42].End(xlDown).Row
     
        Set MaPlage = Ws.Range("A42:J" & DerLgn)
     
        '*** Colonne données < Dates >
        Set PlageTri = Ws.Range("A42:A" & DerLgn)
     
        '*** Trier la plage
        MaPlage.Sort PlageTri, xlAscending
     
        '*** Libère mémoire
        Set Ws = Nothing
        Set MaPlage = Nothing
        Set PlageTri = Nothing
     
    End Sub
    La question que je me pose quel est le bon code a utiliser

    Merci d'avance de vos conseils judicieux et retours d'expérience

    Bonne journée

  2. #2
    Membre Expert

    Homme Profil pro
    Technicien Métrologie R&D
    Inscrit en
    Janvier 2007
    Messages
    1 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Métrologie R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 610
    Billets dans le blog
    1
    Par défaut
    si les deux marchent
    pourquoi te poser la question
    si l'un est nettement plus rapide tu le choisi
    le truc si tu étudies les deux codes ( et que tu comprennes comment ils fonctionnent ) pour pouvoir programmer toi en direct ..
    fait comme tout bon programmeur ( le minimum)
    donc tu choisi le code le plus simple
    autrement celui que tu as compris
    en dernier lieu celui que tu as plus de facilité à manipuler

  3. #3
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2012
    Messages : 75
    Par défaut
    si les deux marchent
    pourquoi te poser la question
    Bonjour,

    Merci de votre réponse.

    Si je me pose cette question c'est que je ne suis pas un programmeur mais un simple autodidacte qui essaye de faire le mieux possible

    Cordialement

    Albert

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    13 186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 13 186
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Tu peux aussi utiliser la fonction de tri que j'ai mis ici
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre éprouvé
    Homme Profil pro
    Retraité
    Inscrit en
    Février 2012
    Messages
    75
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Février 2012
    Messages : 75
    Par défaut
    Bonjour,

    Merci pour cette fonction

    J'ai du pain sur la planche pour arriver a la comprendre

    ________________
    Cordialement

    Albert

Discussions similaires

  1. Trier une plage de cellules
    Par Squelet dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 03/12/2019, 14h04
  2. [XL-2010] Trier sur une plage de cellules variable
    Par shipuden64 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/03/2015, 15h31
  3. Trier résultats d'une requête selon une plage horaire
    Par Seeverine dans le forum Requêtes
    Réponses: 0
    Dernier message: 04/11/2014, 12h08
  4. Trier les logs d'apache suivant une plage de dates
    Par DevServlet dans le forum Linux
    Réponses: 3
    Dernier message: 24/11/2008, 22h41
  5. [VBA Excel] Trier une plage à plusieurs colonnes
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 22/12/2005, 18h04

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