Comment trier dans Excel par ordre alphabétique sans les article s

Le
Guillaume
Je voudrais trier un colonne de teste dans excel sans tenir compte des
articles "le", "la", "les", "un", "unes", "des".
Par exemple, un tel tri me donnerait :

un arbre
balon
un clown
drole
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4910011
Bonjour,

Sub Tri()
Set debut = Range("a1") ' adapter
debut.Offset(0, 1).EntireColumn.Insert Shift:=xlToRight
For Each c In debut.CurrentRegion
c.Offset(0, 1) = sansArticle(c.Value)
Next c
debut.CurrentRegion.Sort Key1:Þbut.Offset(1, 1),
Order1:=xlAscending
debut.Offset(0, 1).EntireColumn.Delete
End Sub

Function sansArticle(chaine)
articles = Array("le", "la", "un", "une", "des")
p = InStr(chaine, " ")
sansArticle = chaine
If p <> 0 Then
d = Left(chaine, p - 1)
If Not IsError(Application.Match(d, articles, 0)) Then
sansArticle = Mid(chaine, p + 1)
End If
End If
End Function

http://cjoint.com/?gxhAA2sSBz

JB

On 23 juin, 01:19, Guillaume wrote:
Je voudrais trier un colonne de teste dans excel sans tenir compte des
articles "le", "la", "les", "un", "unes", "des".
Par exemple, un tel tri me donnerait :

un arbre
balon
un clown
drole


Pierre F.
Le #4909981

Sub Tri()
Set debut = Range("a1") ' adapter
debut.Offset(0, 1).EntireColumn.Insert Shift:=xlToRight
For Each c In debut.CurrentRegion
c.Offset(0, 1) = sansArticle(c.Value)
Next c
debut.CurrentRegion.Sort Key1:Þbut.Offset(1, 1),
Order1:=xlAscending
debut.Offset(0, 1).EntireColumn.Delete
End Sub

Function sansArticle(chaine)
articles = Array("le", "la", "un", "une", "des")
p = InStr(chaine, " ")
sansArticle = chaine
If p <> 0 Then
d = Left(chaine, p - 1)
If Not IsError(Application.Match(d, articles, 0)) Then
sansArticle = Mid(chaine, p + 1)
End If
End If
End Function

http://cjoint.com/?gxhAA2sSBz

JB


Bonjour,

Magnifique (comme d'habitude!)

Je constate que Guillaume n'a pas mis "les" et "l'" dans sa liste.
On peut facilement ajouter "les", mais le "l'" pose problème du fait
qu'il n'y a pas d'espace entre l'article et le nom.
Comment faire pour qu'il trie aussi les mots avec "l'"

Merci.
Pierre F.

JB
Le #4909941
Bonjour,

Il y a peut être + simple:

http://cjoint.com/?gxla6nu2nX

JB

On 23 juin, 09:17, "Pierre F."





Sub Tri()
Set debut = Range("a1") ' adapter
debut.Offset(0, 1).EntireColumn.Insert Shift:=xlToRight
For Each c In debut.CurrentRegion
c.Offset(0, 1) = sansArticle(c.Value)
Next c
debut.CurrentRegion.Sort Key1:Þbut.Offset(1, 1),
Order1:=xlAscending
debut.Offset(0, 1).EntireColumn.Delete
End Sub

Function sansArticle(chaine)
articles = Array("le", "la", "un", "une", "des")
p = InStr(chaine, " ")
sansArticle = chaine
If p <> 0 Then
d = Left(chaine, p - 1)
If Not IsError(Application.Match(d, articles, 0)) Then
sansArticle = Mid(chaine, p + 1)
End If
End If
End Function

http://cjoint.com/?gxhAA2sSBz

JB


Bonjour,

Magnifique (comme d'habitude!)

Je constate que Guillaume n'a pas mis "les" et "l'" dans sa liste.
On peut facilement ajouter "les", mais le "l'" pose problème du fait
qu'il n'y a pas d'espace entre l'article et le nom.
Comment faire pour qu'il trie aussi les mots avec "l'"

Merci.
Pierre F.- Masquer le texte des messages précédents -

- Afficher le texte des messages précédents -



Pierre F.
Le #4909931
Bonjour,

Il y a peut être + simple:
http://cjoint.com/?gxla6nu2nX



Effectivement... c'est parfait :-)

Merci.

Cordialement,
Pierre F.

Publicité
Poster une réponse
Anonyme