XL 2013 trier plusieur colonne à la fois

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gcannecy

XLDnaute Nouveau
J'ai un tableau de données de plusieurs colonne avec des nombres de lignes différentes

Il me sert à faire plusieurs listes semi automatique déroulantes.

Je rentre régulièrement plusieurs données dans chaque colonne

Afin que mes listes semi automatique déroulante fonctionnent les donnés de chaque colonne doivent être trier par ordre alphabétique (sans laisser de vide et indépendamment des autres colonne )

Est il possible de faire le tri pour l'ensemble des colonnes en une seul fois au lieu que je le fasse colonne par colonne

Cdt
 
Bonjour

Il faut toujours créer un tableau par source de liste déroulante (sauf listes en cascade) jamais un seul tableau

Donc découpe ton tableau en plusieurs avec une colonne vide entre chaque tableau pour plus de lisibilité
 
Dernière édition:
Bonjour Gcannecy,
Un ex en PJ en automatique. On recrée des listes trées par formules :
Code:
=SIERREUR(INDEX(INDIRECT("$A$2:$A"&NB.SI(A:A;"*"));EQUIV(PETITE.VALEUR(NB.SI(INDIRECT("$A$2:$A"&NB.SI(A:A;"*"));"<"&INDIRECT("$A$2:$A"&NB.SI(A:A;"*")));LIGNE(1:1));NB.SI(INDIRECT("$A$2:$A"&NB.SI(A:A;"*"));"<"&INDIRECT("$A$2:$A"&NB.SI(A:A;"*")));0));"")
A valider par Ctrl+Maj+Entrée car ce sont des formules matricielles.

Une autre piste serait en VBA si le VBA ne vous rebute pas.
 

Pièces jointes

RE

Honnêtement n'est-il pas plus logique de partir de bonnes pratiques que d'ajouter du code ou des formules pour compenser une mauvaise pratique ?

En plus j'ai cru comprendre qu'il s'agit d'un tableau structuré auquel cas le VBA ne peut fonctionner

Par ailleurs si on a un seul tableau il faut compliquer en définissant les sources de listes de validation par des formules à base de DECALER 😱
 
RE

Eh bien c'est une mauvaise pratique

Les tableaux structurés existent depuis 17 ans et facilitent depuis tout ce temps la mise en place de validations (entre autres avantages...)

Je fais parfois des opérations commando en entreprise où je dois montrer comment optimiser l'utilisation d'Excel pour travailler vite et mieux par rapport au contexte de la personne que je dois aider et les tableaux structurés font presque toujours partie des leviers...
 
RE

C'est l'équivalent des tables de référence dans les bases de données

Quand on conçoit une bonne base de données on ne se pose pas de questions métaphysiques : on sait que c'est le seul moyen d'assurer la pérennité de la base.

Je me souviens d'une discussion sur le sujet avec des assureurs où j'expliquais que pour Monsieur, Madame et Mademoiselle ou pouvait éventuellement s'en passer.
Ils m'ont répondu "on a du casser notre outil informatique pour ajouter une table des "titres" car on assure des évêques par exemple et c'est Monseigneur et pas Monsieur, les avocats c'est Maître... alors même là..."

En appliquant la même rigueur dans le tableur quand on veut gérer des listes de données, on y gagne vraiment

Devoir trier par du VBA ou du matriciel et définir des noms par DECALER, cela ne simplifie rien

Mais chacun choisit à sa guise...
 
En PJ les deux versions Formules et VBA.
merci
c'est exactement ce que je cherchais la solution VBA avec le bouton tri est exactement ce que je cherchais
je vais peut être abusé pour la solution VBA est il simple de refaire la formule pour 10 colonnes

J ai recopier ton tableau sur le mien et il fonctionne parfaitement pour les 4 premières colonne mais pour l instant j ai 7 colonne dans les quelles je rentre mais données avec 10 je me laisse une marge au cas où.

Merci d'avance

cdt
GC
 
Bonjour,
Ci joint un essai avec 12 listes; Le nombre de listes à traiter est simple à modifier.
VB:
Sub Trier()
Application.ScreenUpdating = False
For N = 1 To 12 ' 12 car 12 listes à traiter, à modifier selon besoin
    Set Plage1 = Range(Cells(1, N), Cells(1000, N))
    Set Plage2 = Range(Cells(2, N), Cells(1000, N))
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
    ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Plage2, _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.ActiveSheet.Sort
        .SetRange Plage1: .Header = xlYes: .MatchCase = False
        .Orientation = xlTopToBottom: .SortMethod = xlPinYin: .Apply
    End With
Next N
End Sub
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
654
Réponses
2
Affichages
417
Réponses
3
Affichages
417
Réponses
2
Affichages
731
Retour