Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Tri sans tenir compte de "le la les l' un une des etc."

alexandre33260

XLDnaute Occasionnel
Bonjour, dans le fichier joint, je cherche une solution pour trier sans tenir compte des "le la les l' un une des etc.".
Le tri doit s'effectuer en fonction de deux colonnes, en premier la colonne C puis la colonne B.
Si possible, le tri doit pouvoir être réalisé à l'aide d'un bouton nommé Tri (Saga/Nom).
Puis un autre bouton qui ne trirait qu'en fonction de la colone B nommé Tri(Nom)
Merci pour votre aide.
 

Pièces jointes

  • TestAlpha.xlsx
    13.6 KB · Affichages: 28

alexandre33260

XLDnaute Occasionnel
Bonsoir, oui, pour le tri, c'est un tri alphabétique comme il y a dans Edition/Trier et filtrer d'Excel.
Pour l'essai de Chalet53, cela ne fonctionne pas.
Je voudrai un tri par ordre alphabétique mais qu'excel ne tienne pas compte des un une des le la etc.
s'il y a : La boulangerie, il classe à B et pas à L...
 

job75

XLDnaute Barbatruc
Bonsoir alexandre33260, eastwick, CHALET53,

Voyez le fichier joint et les macros des boutons :
VB:
Sub Tri()
Application.ScreenUpdating = False
With [A1].CurrentRegion
    .Columns(2).EntireColumn.Insert 'insère une colonne auxiliaire
    .Columns(2) = "=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(UPPER(TRIM(RC[1])),""L'"",),""LE "",),""LA "",),""LES "",),""UN "",),""UNE "",),""DES "",)"
    .Columns(2) = .Columns(2).Value 'supprime les formules
    If InStr(ActiveSheet.DrawingObjects(Application.Caller).Text, "Saga") Then .Sort .Columns(4), xlAscending, .Columns(2), , xlAscending, Header:=xlYes _
        Else .Sort .Columns(2), xlAscending, Header:=xlYes
    .Columns(2).EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End Sub

Sub RAZ()
[A1].CurrentRegion.Sort [A1], xlAscending, Header:=xlYes
End Sub
PS : j'ai supprimé les formules en colonne A pour pouvoir revenir à l'ordre initial.

Bonne nuit.
 

Pièces jointes

  • TestAlpha(1).xlsm
    20.9 KB · Affichages: 17
Dernière édition:

Laurent78

XLDnaute Occasionnel
Bonjour à Tous,
une autre idée, sans macro, avec des colonnes intermédiaires (que l'on peut masquer).
Avec la possibilité d'ajouter assez facilement d'autres cas de figure, sans trop de risque. Il faut ajouter une colonne et modifier la formule de concaténation en conséquence.

Petite question, il n'y a toujours pas dans Excel une fonction Texte qui permet de faire la concaténation d'une zone ? j'ai une doute si ça existe ...

@+
 

Pièces jointes

  • TestAlpha(1).xlsm
    19.5 KB · Affichages: 10

alexandre33260

XLDnaute Occasionnel
Bonjour, merci Job75, cela à l'air de fonctionner, désolé pour le temps de réponse, j'ai un gros souci informatique, perte d'adresse FREE, je n'avais plus accès à rien....
Je test ça rapidement et renviens vers vous si j'ai une question. Merci.
 

job75

XLDnaute Barbatruc
Bonjour Laurent78,

Pourquoi utiliser plusieurs colonnes auxiliaires ?

Une seule suffit dans laquelle on entrera une formule avec des fonctions SUBSTITUE imbriquées.

Exactement comme le fait ma macro...

A+
 

Laurent78

XLDnaute Occasionnel
Bonjour Job,
En effet, une seule peu suffire, mais l'ajout d'une colonne peut, pour certains, être plus simple que de modifier une formule avec de nombreuses imbrications. Mais en effet, 1 problème, plusieurs solutions possibles.
@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…