Mettre dans l'ordre alphabetique une colonne avec dernier mot de la cellule

Bonjour

J'ai besoin d'un coup de main

J'ai une colonne avec des cellules dont il contient plusieurs mots .

Mon souhait et de savoir si Excel peut me mettre par ordre alphabétique de AaZ via le dernier mot de ma cellule.

Bien sur je veux que cela soit etendu des autres colonnes

Voici

une copie

capture

Merci beaucoup Bonne journée

Bonjour,

avec une procédure VBA il n'y aura pas de problème je pense.

Le plus dure sera de définir ce qu'il faudra prendre en considération :

Rue des peupliers = peupliers

Rue Paul Fougassier = Fougassier ou Paul Fougassier ?

Impasse de la vierge = Vierge ou La Vierge ou De la vierge ?

Rue du 22 aout 1944 = 1944 ou Août 1944 etc...

Vous voyez les futurs problèmes ?

Peut être voulez vous un tri sur ce qu'il y a derrière le type d'adresse, c'est à dire derrière : rue ou chemin ou place ou avenue ou impasse....

@ bientôt

LouReeD

Merci pour la réponse

il me faut juste le dernier mot (mot directeur pour nous)

Pour rue Paul Fougassier = Fougassier

Impasse de la Vierge = Vierge

Rue du 22 Aout 1944 = 1944

Vous pouvez m'aider ?

Merci

Tout dépend également de la structure de votre tableau.

Si celui-ci accepte une colonne de plus, il suffit d'ajouter une colonne qui contiendra une formule qui va extraire le dernier mot, il vous suffira ensuite de faire le tri sur cette colonne et le tour est joué !

La formule :

=SIERREUR(STXT(SUPPRESPACE(A1);1+TROUVE("_";SUBSTITUE(SUPPRESPACE(A1);" ";"_";NBCAR(SUPPRESPACE(A1))-NBCAR(SUBSTITUE(SUPPRESPACE(A1);" ";""))));NBCAR(SUPPRESPACE(A1)));"")

Le principe :

on trouve la position du dernier "espace" en commençant par compter combien il y en a :

NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";"")

on compte le nombre de caractère de A1 auquel on retire le nombre de caractère de A1 dont on a remplacer les espaces " " par rien "", la différence nous donne le nombre d'espace.

On SUBSTITUE ce nième espace par un caractère spécial, ici le souligné "_" à voir s'il ne faut pas en mettre un autre en fonction de vos données, et on demande de trouver sa position avec TROUVE.

on additionne 1 pour passer au premier caractère qui suit ce dernier espace, puis on fait une extraction de la chaine allant de ce nouveau caractère à la longueur total de la chaine :

STXT(A;1+TROUVE;NBCAR(A1))

Pour éviter les erreurs d'interprétation de la chaine qui pourrait contenir des espaces en début de chaine ou en fin de chaine un "l'encadre" dans la fonction SUPPRESPACE qui supprime ces dit espaces.

Ensuite pour éviter l'affichage d'un code erreur du à l'absence d'une donnée, la fonction de gestion d'erreur :

SIERREUR(ce que l'on fait donne une erreur; ""on affiche rien)

@ bientôt

LouReeD

Re bonjour

Honnêtement bravo mais franchement j'ai du mal a comprendre veuillez m'excuser.

Je vous donne un exemple du fichier c'est la colonne C que je souhaite effectuer l'ordre Alphabétique du dernier mot.

Vous pouvez le faire svp ?

Merci

10tg-6083-v1.xlsx (26.39 Ko)

Bonjour,

veuillez trouver en retour votre fichier modifié :

Je me suis permis de "transformer" votre plage de données en "Tableau structuré" sous Excel avec l'outil "insertion tableau".

Ce qui permet d'ajouter simplement une donnée au tableau en remplissant la première ligne vide sous ce tableau, dès lors elle sera intégrée à celui-ci automatiquement, et les formules de la colonne de tri se recopieront d'elles-mêmes.

Si en plus vous avez des MFC celles-ci se recopieront également !

@ bientôt

LouReeD

Bonjour,

Bonjour LouReed,

Une proposition avec une fonction personnalisée (VBA).

A te relire.

Cdlt.

8tg-6083-v1.xlsm (37.22 Ko)
Public Function SplitAddress(txt As String) As String
Dim tbl() As String
    SplitAddress = vbNullString
    If Not txt = vbNullString Then
        txt = Application.Trim(txt)
        tbl = Split(txt)
        SplitAddress = tbl(UBound(tbl))
    End If
End Function

Bonjour,

et oui une fonction personnalisée... C'est bien aussi et c'est plus propre et court, mais en xlsx...

Bref, en VBA j'ai entendu une histoire "d'inverse", il y a une instruction inverse string je crois, non ?

@ bientôt

LouReeD

Bonjour les experts,

En essayant de refaire la même chose sur une feuille vierge, la 'Colonne2' ne passe pas:

Pouvez vous me dire pourquoi.

merci

fronck

9dernier-mot2.xlsm (44.37 Ko)

Bonsoir,

pouvez vous être "plus clair" par "elle passe pas" ?

De mon coté, une fois une des deux formule ajoutée à la troisième ligne du tableau, le tri se fait correctement sur l'ensemble du tableau.

@ bientôt

LouReeD

Bonsoir,

voilà une copie d'écran.

sans titre

a+

fronck

et pour l'explication,

je ne peux taper colonne2, je suis obligé de faire échap.

avec =SplitAddress(C3), in indique bien le dernier mot de la rue.

Bonjour,

La fonction Split atteint une chaîne de caractère (txt as String)

Essayez d'écrire la formule en mettant un INDIRECT : =SplitAddress(INDIRECT(@Colonne2))

@ bientôt

LouReeD

Autant pour moi...

Ne serait ce pas du au fait que votre fonction dans le code VBA est sous une SUB au lieu de FUNCTION ?

@ bientôt

LouReeD

Bonjour,

voilà la réponse:

sans titre
8dernier-mot2.xlsm (44.37 Ko)

a+

fronck

Bonjour,

Tu ne peux pas utiliser @Column2 car tes données ne sont pas sous forme de tableau structuré.

Cdlt.

Et oui tout simplement ! Celle là je ne l'ai pas vu ! Ni les autres d'ailleurs !

Bravo Jean-Éric !

@ bientôt

LouReeD

Bonjour à tous,

C'est quoi pour vous un tableau structuré sachant que moi j'ai fait un filtre.

Ensuite j'essaie de comprendre la formule en la décomposant de cette fàçon:

sans titre

Mais là je bloque sur les '_' qu'il n'y a pas dans les noms des rues, et que tu mettrais Lou reed à la place d'un espace.

pour quoi faire ?

a+

fronck

4dernier-mot2.xlsm (66.21 Ko)

Un tableau structuré n'est pas une plage de cellule sur laquelle on a mis une ligne d'en-tête avec filtre. Un tableau structuré est mis en place par l'outil Insertion puis en choisissant "tableau" icône sur la gauche du ruban d'insertion.

Il suffit pour cela de sélectionner une cellule de la plage que l'on veut transformer en tableau, puis menu insertion puis tableau, suivre le reste de la procédure.

Pour ce qui est de la formule l'explication est sur le message de la dite formule.

@ bientôt

LouReeD

Re la Team

Pour ma part la formule marche avec votre formule

Merci de l'aide

Je reviens vers vous bientot

MERCI

Rechercher des sujets similaires à "mettre ordre alphabetique colonne dernier mot"