Tri par macro [Résolu/Fermé]

Signaler
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
-
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
-
bonjour à tous

https://mon-partage.fr/f/tp7jvMSu/

j'ai une macro ("Macro 3") qui me permet de trier différentes zones nommées dans différentes feuilles .
Hors, quand je la lance , elle ne trie que la première colonne, ce qui me décale les lignes dans les colonnes suivantes.
Une idée ?
Merci
Benoit

Edit: J'utilise cette macro ("Macro 3") car dans les feuilles Cotisations et juillet, les colonnes noms et Peloton/section dépendent de la feuille Données. Je remplis dans données, et les autres feuilles se mettent à jours.
Quand une nouvelle personne entre, je la saisie en fin de tableau dans "Données" , et ensuite avec Macro 3, elle se met dans l'ordre alphabétique dans toutes les feuilles en même temps.

5 réponses

Messages postés
2200
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 mars 2021
317
Bonjour,
La plage à trier doit enrober toutes les colonnes concernées.
Exemple pour la feuille "Données", les colonnes de A à J
    Worksheets("Données").Select
    DerLig = [A10000].End(xlUp).Row
    ActiveWorkbook.Worksheets("Données").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Données").Sort.SortFields.Add Key:=Range("A7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Données").Sort
        .SetRange Range("A7:J" & DerLig)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Cdlt
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
Bonjour,

Je suis d'accord avec vous "La plage à trier doit enrober toutes les colonnes concernées". C'est bien pour cà que j'indique que zone avec noms. Dans le cas de la feuille "Données", la zone s'appelle "NomsDonnées".
Et en plus, cela fonctionne (le tri) pour la feuille Données, mais pas pour les autres feuilles.
J'ai essayé votre méthode, cela ne résout pas mon problème.
En effet, votre méthode n'a pas remis dans l'ordre alphabétique, et en plus n'exclue pas les lignes vides.
Je sais qu'il y a une possibilité avec une boucle, mais je ne sais pas faire. C'est pour ca que j'aimerais utiliser cette méthode, et trouver la solution par cette méthode.

Merci
Benoit
Messages postés
2200
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
3 mars 2021
317
Je me suis trompé dans le nom de la première colonne, il faut remplacer A par C
    Dim DerLig As Long
    Application.Calculation = xlManual
    Worksheets("Données").Select
    DerLig = [C10000].End(xlUp).Row
    ActiveWorkbook.Worksheets("Données").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Données").Sort.SortFields.Add Key:=Range("C7"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Données").Sort
        .SetRange Range("C7:J" & DerLig)
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

Je vous laisse le soin d'appliquer la même méthode pour les autres feuilles.
Par contre, je ne peux pas appliquer la macro de renommage des onglets, vu que votre fichier ne comporte que 3 feuilles alors que la macro gère jusqu'à la feuille 17.
Cdlt
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
J'ai fait un fichier plus allégé. Normalement il y a une quinzaine de feuilles supplémentaires avec d'autres macro.
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
Mais je garde votre solution sous le coude
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
Bonsoir à tous,

Merci Frenchie83, pour votre réponse. Cela m'a permis de réfléchir. Ma solution était bonne, il fallait juste que le tri ne porte pas sur la colonne des Pelotons (P1, p2 ou p3) mais sur la colonne des noms, tout simplement.
Merci à vous.
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
Comment mettons "Sujet résolu" ?