Comment trier dans Excel par ordre alphabétique sans les article s
4 réponses
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 :
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
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
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 <Guilla...@discussions.microsoft.com>
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 :
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
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.
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
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.
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'"
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
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'"
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
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 -
Bonjour,
Il y a peut être + simple:
http://cjoint.com/?gxla6nu2nX
JB
On 23 juin, 09:17, "Pierre F." <pfornero...@SPAMhotmail.com> 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:=debut.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 -
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
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 -