XL 2021 Tri les lignes dans l'ordre du 1er "mot" de chaque cellule de la colonne à trier (col D pour l'exemple)

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bjr à toutes et à tous 🙂

Comme d'habitude, je me tourne vers nos chers ténors :
Est-il possible de faire un Tri sur le 1er mot rencontré dans les cellules ?


Par exemple
15-05-23 12:52 : Pas intéressé(e) pour l'instant - RdV incertain = tri sur "Pas"
15-05-23 14:32 : Ne prend pas les appels - 24-04-23 17:55 : Répondeur - 24-04-23 15:37 : Répondeur - = tri sur "Ne"
etc...

Qu'en pensez-vous ?
Je joins un petit fichier test,
Merci à toutes et à tous
🙂
 

Pièces jointes

Solution
Cz code est placé dans un module standard :
VB:
Sub Tri()
Application.ScreenUpdating = False
Columns(4).Insert 'insère une colonne auxiliaire
With Range("D1:D" & Cells.SpecialCells(xlCellTypeLastCell).Row)
    .Formula = "=Ext(E1)"
    .Value = .Value 'supprime les formules
    .EntireRow.Sort .Cells, xlAscending, Header:=xlYes 'tri
    .EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End Sub

Function Ext(x$) As String
Dim s
s = Split(x)
If UBound(s) > 2 Then Ext = s(3)
End Function
Bonjour Lionel,
Pourquoi ne pas faire simplement :
VB:
Sub TriSurNe()
    Application.ScreenUpdating = False
    ActiveSheet.Range("$D$1:$D$1000").AutoFilter Field:=1
    ActiveSheet.Range("$D$1:$D$1000").AutoFilter Field:=1, Criteria1:="=*: Ne*", Operator:=xlAnd
End Sub
Sub SansFiltre()
    Application.ScreenUpdating = False
    ActiveSheet.Range("$D$1:$D$1000").AutoFilter Field:=1
End Sub
 

Pièces jointes

Bonjour Lionel,
Pourquoi ne pas faire simplement :
VB:
Sub TriSurNe()
    Application.ScreenUpdating = False
    ActiveSheet.Range("$D$1:$D$1000").AutoFilter Field:=1
    ActiveSheet.Range("$D$1:$D$1000").AutoFilter Field:=1, Criteria1:="=*: Ne*", Operator:=xlAnd
End Sub
Sub SansFiltre()
    Application.ScreenUpdating = False
    ActiveSheet.Range("$D$1:$D$1000").AutoFilter Field:=1
End Sub
Bjr sylvanu 🙂
Oui, j'ai pensé au filtre
Mais si c'est possible je préfère un tri 🙂
 
Bjr goube 🙂, bjr JHA 🙂
Merci pour vos retours.
ça fonctionne très bien avec PQ.

Le souci est que je n'utilise pas Power Query.
Et que je ne pourrait pas l'insérer dans mes "usines à gaz".
Je garde quand même pour peut-être un jour si je m'y mets...

Encore merci 🙂
 
re,
Merci pour le retour. Dans le cadre de l'usine à gaz, la colonne cachée.
Cordialement
Merci à toi pour ce nouvel essai.
Le but serait d'intégrer dans mes fichiers de prospections... ça ne me semble pas possible.

Ne vous embêtez pas, je pensais qu'un "simple" tri avec critère (Tri sur 1er mot de la cellule) serait possible mais il semble que ce ne soit pas le cas.

Ce n'est pas pour moi un "besoin brûlant" mais je pense que la question est intéressante.
Merci à tous d'avoir bien voulu vous pencher sur ma question et d'avoir apporté de bonnes solutions certainement utiles pour d'autres demandeurs.
🙂
 
Dernière édition:
Cz code est placé dans un module standard :
VB:
Sub Tri()
Application.ScreenUpdating = False
Columns(4).Insert 'insère une colonne auxiliaire
With Range("D1:D" & Cells.SpecialCells(xlCellTypeLastCell).Row)
    .Formula = "=Ext(E1)"
    .Value = .Value 'supprime les formules
    .EntireRow.Sort .Cells, xlAscending, Header:=xlYes 'tri
    .EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End Sub

Function Ext(x$) As String
Dim s
s = Split(x)
If UBound(s) > 2 Then Ext = s(3)
End Function
 

Pièces jointes

Dernière édition:
Cz code est placé dans un module standard :
VB:
Sub Tri()
Dim s
Application.ScreenUpdating = False
Columns(4).Insert 'insère une colonne auxiliaire
With Range("D1:D" & Cells.SpecialCells(xlCellTypeLastCell).Row)
    .Formula = "=Ext(E1)"
    .Value = .Value 'supprime les formules
    .EntireRow.Sort .Cells, xlAscending, Header:=xlYes 'tri
    .EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End Sub

Function Ext(x$) As String
Dim s
s = Split(x)
If UBound(s) > 2 Then Ext = s(3)
End Function
Bjr Gérard 🙂
Ce code est nickel et pas "trop" compliqué pour moi.
Nickel, merci encore.
Mais la fonction à laquelle je ne comprends rien me rappelle une chanson de Claude François
Pour afficher ce contenu, nous aurons besoin de votre consentement pour définir des cookies tiers.
Pour plus d'informations, consultez notre page sur les cookies.
lol 🙃🤪

Merci à tous 🙂
 
Il y a des lignes (11 13 15 17...) avec 2 espaces devant "Répondeur".

Pour supprimer l'espace superflu utilisons TRIM (SUPPRESPACE) :
VB:
Sub Tri()
Application.ScreenUpdating = False
Columns(4).Insert 'insère une colonne auxiliaire
With Range("D1:D" & Cells.SpecialCells(xlCellTypeLastCell).Row)
    .Formula = "=Ext(TRIM(E1))"
    .Value = .Value 'supprime les formules
    .EntireRow.Sort .Cells, xlAscending, Header:=xlYes 'tri
    .EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End Sub
 

Pièces jointes

Il y a des lignes (11 13 15 17...) avec 2 espaces devant "Répondeur".

Pour supprimer l'espace superflu utilisons TRIM (SUPPRESPACE) :
VB:
Sub Tri()
Application.ScreenUpdating = False
Columns(4).Insert 'insère une colonne auxiliaire
With Range("D1:D" & Cells.SpecialCells(xlCellTypeLastCell).Row)
    .Formula = "=Ext(TRIM(E1))"
    .Value = .Value 'supprime les formules
    .EntireRow.Sort .Cells, xlAscending, Header:=xlYes 'tri
    .EntireColumn.Delete 'supprime la colonne auxiliaire
End With
End Sub
Encore merci Gérard 🙂
lol C'est surtout la fonction que je n'arrive pas à comprendre :
VB:
Function Ext(x$) As String
Dim s
s = Split(x)
If UBound(s) > 2 Then Ext = s(3)
End Function
s = Split(x) ?
UBound(s) >2 ?
Ext = s(3) ?
🙂
 
Renseigne-toi sur la fonction Split.

Quand le séparateur n'est pas indiqué il s'agit de l'espace.

La fonction renvoie un tableau à une dimension de dimension (UBound) égale au nombre d'espace.

S'il s'agit d'un texte vide le UBound vaut -1.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour