Tri alphabétique de plusieurs colonnes excell

Fermé
xedavo Messages postés 4 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 6 novembre 2011 - 5 nov. 2011 à 13:12
 axion - 7 nov. 2011 à 12:32
Bonjour,

Je désire faire un tri sous excell 2007 alphabétique mais avec plusieurs colonnes. Je m'explique j'ai une liste de nom qui débute dans la cellule A2 jusqu'a A25 puis qui continue de B2 à B25 et ainsi de suite jusqu'à E25. Le but est de classer de A2 à E25 par ordre alphabérique où la colonne A regroupe les noms commençant par a b et c puis cela continue sur la colonne B par d e f par exemple et ainsi de suite jusqua la cellule E 25 qui est le Z


A voir également:

8 réponses

gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
6 nov. 2011 à 23:22
bonjour à tous,

Le sujet de discussion est bouillant, mais comme la demande m'a paru intéressante je vous livre ma version pour solutionner le problème.

https://www.cjoint.com/?AKgxowfgoSx

Je n'ai pas déplacé, ni modifié mais simplement trié sur 5 colonnes comme demandé :
Le but est de classer de A2 à E25 par ordre alphabérique où la colonne A regroupe les noms commençant par a b et c puis cela continue...
7
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
7 nov. 2011 à 05:32
Joli !
Mais cette fois-ci, je n'ai rien pigé à la macro ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 nov. 2011 à 10:18
Bonjour gbinforme,

Superbe, ton idée de construire la liste des élèves en faisant le tri à la volée, félicitations, je te plussoie
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
7 nov. 2011 à 10:30
Bonjour les amis,

Merci pour ce retour bien sympathique : écrire le moins de code possible pour avoir le moins d'ennuis de mise au point et de maintenance, c'est un peu ma marotte ;-)

Certes ma méthode est limitée en volume, par rapport à ton tri Michel, mais elle suffit pour le volume demandé.

La sérénité apaisée semble revenue et cela me ravit : à bientôt sur d'autres sujets.
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
7 nov. 2011 à 11:04
Bonjour tout le monde,

Oui, interessant ce before pour insérer sur une collection, il fallait y penser. Plus simple que d'insérer dans un tableau.
Au début j'ai cru que c'était sur un dictionary, ça aurait été bien aussi que ce soit possible :-)
C'est noté ! ;-)

eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
7 nov. 2011 à 11:53
juste un tit détail pour gbinforme:

la collection est déclarée en "new collection"
il faut alors la détruire à la fin

set lacollection=nothing
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 nov. 2011 à 08:00
Bonjour xedavo,

eh bien, le diktat est tombé:Le principe est très simple (et il n'y en a pas d'autre) :

J'obéis et je m'abstiens donc...

Dommage, ce que j'avais commencé hier était pas mal, mais je m'incline devant l'avis d'un tel expert
2
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
6 nov. 2011 à 09:51
Bonjour michel,

J'ai eu la même réaction que toi, c'est parfois (souvent même) trop péremptoire...
Ce n'est pas parce qu'on ne connait pas que ça n'existe pas.
Cependant, pour relativiser, ici ça se termine par soit à l'aide d'une macro
Dommage que ça n'est pas été mis en gras aussi...

eric
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/11/2011 à 11:47
Bonjour, Eric :o)
Ce n'est pas parce qu'on ne connait pas que ça n'existe pas.
c'est très souvent la réaction

soit à l'aide d'une macro
Si je ne sais pas faire, je n'encombre pas le forum....

dont acte
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 nov. 2011 à 13:47
bonjour

pour être peut-être efficace, il faudrait voir ton tableau avec les noms non triés:

pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse

0
Bonjour

Il faut sélectionner ton tableau,avec l'outil trier utiliser ajouter un niveau
0
xedavo Messages postés 4 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 6 novembre 2011
5 nov. 2011 à 17:35
Bonjour Merci de ton aide
Je n'ai pas le fichier réel mais je t'ai fait un fichier semblble dans le principe
le lien est le suivant https://www.cjoint.com/?AKfrHNA5yoU
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
5 nov. 2011 à 17:55
Ok, je regarde ; proposition avec macro VBA demain dans la journée
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
xedavo Messages postés 4 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 6 novembre 2011
6 nov. 2011 à 09:04
Bonjour
Merci quand même pour t'être pencher sur le problème. MAis je ne suis pas du genre a obéïr au diktat, je vais donc m'atteler à la tâche.
Tu sembles t y connaître en excell, connais tu un bouquin intéressant et compréhensible pour un néophyte?

Merci encore
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
6 nov. 2011 à 16:15
J'en connais bien un, mais comme il n'est rempli que de diktats, il ne saurait te convenir.
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
6 nov. 2011 à 16:19
Mes amis michel_m et eriiic m'ont un peu secoué ; mais tant mieux (et chapeau) s'ils trouvent une méthode, avec ou sans VBA, qui ne fasse pas appel au principe que j'ai indiqué ...
:-)
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
6 nov. 2011 à 16:53
Bonjour raymond,

La méthode c'est bon, c'est la forme qui n'y est pas...

Quand je dis la méthode c'est bon, c'est relatif, on va dire le principe. On n'est pas du tout obligé de déplacer les données sur la feuille.
Pour ce qui est de les mettre toutes ensembles pour faire le tri et les répartir à nouveau on avait tous trouvé, peut être même le demandeur.

eric
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
6 nov. 2011 à 17:12
Très bien. J'attends donc le résultat de tout cela ...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 6/11/2011 à 17:23
allons y
https://www.cjoint.com/?3KgruAWsBCi

eric,
on devrait pouvoir améliorer le remplissage de T_ordre (sorties des boucles) mais...
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
6 nov. 2011 à 17:46
Re,

C'est ce que je pensais faire éventuellement, tri à bulle y compris ;-)
Seulement je me demande si le regroupement par lettre n'est pas qu'un exemple, et s'il ne veut pas juste une restitution sur 24 lignes x 5 colonnes

eric
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
6 nov. 2011 à 17:50
Ouais !
Je ne vais pas te chercher des chicanes, bien que mes maigres connaissances en VBA me laissent croire que
'-----------crée une variable-tableau de tous les élèves
     ReDim T_eleves(nbre_elev)
     Cpt = 1
     For Cptr_col = 1 To Dercol
          For Cptr_lig = Deblig To Derlig
               Eleve = UCase(.Cells(Cptr_lig, Cptr_col))
               If Eleve = "" Then Exit For
               T_eleves(Cpt) = Eleve
               Cpt = Cpt + 1
          Next Cptr_lig
     Next Cptr_col
     'et les trie en ordre alphabétique
     TriaBulle T_eleves
consiste bien à regrouper tous les noms en une liste, puis à trier cette liste, ainsi que je l'avais exposé ...
0
xedavo Messages postés 4 Date d'inscription samedi 5 novembre 2011 Statut Membre Dernière intervention 6 novembre 2011
6 nov. 2011 à 17:50
SUPER
Merci c'est encore mieux que ce que j'espérais. Dis moi ton bouton "trier" tu le fais comment ?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 nov. 2011 à 18:12
ca dépend de ta version XL ...

attention à l'adaptation à ton vérit

Pour Eric

vu la dernière réponse de xevado, je ne pense pas mais...

j'ai mis un tri à bulles mais l'idée que j'ai derrière la t^te est de gérer des listes beaucoup + longues avec un tri quicksort
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 211
6 nov. 2011 à 18:15
Oui, à-priori c'est toi qui as eu la bonne lecture...
Vraiment beaucoup plus longues alors pour le quicksort, j'espère que ça ne sera pas pour les CM2 de demain ;-)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
6 nov. 2011 à 18:23
pas moyen de modifier, fas cagas!

je marquais à xedavo
attention à l'adaptation au vrai classeur. mets le en pièce jointe au boulot demain et si c'est gênant point de vue confidentialité, mets le moi en message personnel
0
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
5 nov. 2011 à 18:21
Bonjour xedavo.

Le principe est très simple (et il n'y en a pas d'autre) :
* Déplacer B2:B25 en A26:A49 ; C2:C25 en A50:A73 ; D2:D25 en A74:A97 ; E2:E25 en A98:A121.
* Trier A2:A121.
* Déplacer A98:A121 en E2:E25 ; A74:A97 en D2:D25 etc...

Cette manipulation peut se faire soit à la main (glisser les plages avec la souris), soit à l'aide d'une macro.

Cordialement.
-1