Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

4 réponses
Avatar
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

4 réponses

Avatar
JB
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


Avatar
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.

Avatar
JB
Bonjour,

Il y a peut être + simple:

http://cjoint.com/?gxla6nu2nX

JB

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





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 -



Avatar
Pierre F.
Bonjour,

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



Effectivement... c'est parfait :-)

Merci.

Cordialement,
Pierre F.