Tri par macro
Résolu/Fermé
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
-
Modifié le 13 déc. 2017 à 11:39
Benoit_Lyon Messages postés 98 Date d'inscription vendredi 20 janvier 2017 Statut Membre Dernière intervention 13 décembre 2017 - 13 déc. 2017 à 19:09
Benoit_Lyon Messages postés 98 Date d'inscription vendredi 20 janvier 2017 Statut Membre Dernière intervention 13 décembre 2017 - 13 déc. 2017 à 19:09
A voir également:
- Macro tri excel
- Liste déroulante excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Tri excel - Guide
- Formule excel - Guide
- Macro word - Guide
5 réponses
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
13 déc. 2017 à 13:46
13 déc. 2017 à 13:46
Bonjour,
La plage à trier doit enrober toutes les colonnes concernées.
Exemple pour la feuille "Données", les colonnes de A à J
Cdlt
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
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
13 déc. 2017 à 17:05
13 déc. 2017 à 17:05
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
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
Frenchie83
Messages postés
2240
Date d'inscription
lundi 6 mai 2013
Statut
Membre
Dernière intervention
11 août 2023
337
13 déc. 2017 à 18:44
13 déc. 2017 à 18:44
Je me suis trompé dans le nom de la première colonne, il faut remplacer A par C
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
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
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
13 déc. 2017 à 19:08
13 déc. 2017 à 19:08
J'ai fait un fichier plus allégé. Normalement il y a une quinzaine de feuilles supplémentaires avec d'autres macro.
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
13 déc. 2017 à 19:09
13 déc. 2017 à 19:09
Mais je garde votre solution sous le coude
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
13 déc. 2017 à 19:04
13 déc. 2017 à 19:04
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.
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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Benoit_Lyon
Messages postés
98
Date d'inscription
vendredi 20 janvier 2017
Statut
Membre
Dernière intervention
13 décembre 2017
1
13 déc. 2017 à 19:08
13 déc. 2017 à 19:08
Comment mettons "Sujet résolu" ?