Trier du texte dans excel

  • Initiateur de la discussion Initiateur de la discussion sangriamanya
  • Date de début Date de début

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 !

S

sangriamanya

Guest
Bonjour est-ce que quelqu'un pourrait m'aider?

Je souhaite savoir si il serait possible de créer une recherche pour isoler dans une liste de mots, ceux présentant les mêmes caractéristiques.

Exemple: Pour une liste de mots de six lettres uniquement

Isoler ou rechercher ceux ayant la 2e et 4e lettre identiques: .*.*..

Merci de votre aide
 
Re : Trier du texte dans excel

Bonjour, sangriamania.

Bienvenue sur le forum.
Oui, c'est possible. Un bout de fichier joint, et on te montre comment.

Edit :
Problèmes pour joindre le fichier ? voilà un exemple :
Les mots en B3:B7.
Sélectionne B3:B7.
Format, mise en forme conditionnelle, la formule est :
=SOMMEPROD(--(STXT(B3;2;1)=STXT(B$3:B$7;2;1))*(STXT(B3;4;1)=STXT(B$3:B$7;4;1)))>1
Et choisir la mise en forme.
 
Dernière édition:
Re : Trier du texte dans excel

Merci beaucoup pour votre message. J'ai essayé avec la formule que vous m'avez indiqué, peut être l'ai-je mal appliquée car cela ne fonctionne pas.

Vous trouverez ci-joint une partie du fichier de mots en 6 lettres que je souhaiterai classifier (le fichier initial va jusqu'à la lettre z) en triant les mots ayant la deuxième et quatrième lettre identique.

Merci de votre aide.
 

Pièces jointes

Re : Trier du texte dans excel

Bonjour, sangriamanya.

La question a évolué : d'isoler, on passe à classifier.

Compte tenu de la quantité de données (non précisée lors de la première demande) la solution passe par une macro, et moi ...
...je dois passer la main aux VBAistes plus qualifiés.
Précise quand même si tu souhaites d'abord choisir les 2° et 4° lettres, (ou choisir également les numéros des lettres à tester) ou classer toute la liste, et comment tu souhaites l'affichage du résultat.
 
Re : Trier du texte dans excel

Merci beaucoup Patrick.

En fait le mot classifier n'est pas correct. Merci de l'avoir relevé. Ce dont j'ai besoin c'est de mettre en évidence ou "isoler" en mettant par exemple dans une autre couleur ou police, les mots (sans les bouger de la liste) qui ont la deuxième et quatrième lettre identique.

Je recherche l'aide de personnes plus spécialisées que moi pour trouver la formule qui me permettrai de le faire.
 
Re : Trier du texte dans excel

Bonjour le fil 🙂,
Ce dont j'ai besoin c'est de mettre en évidence ou "isoler" en mettant par exemple dans une autre couleur ou police, les mots (sans les bouger de la liste) qui ont la deuxième et quatrième lettre identique.
Sachant que rien que dans ton échantillon, il y a 276 familles (d'après mes tests) avec 2 lettres identiques, les codes couleurs et de polices seraient de la folie à gérer et à identifier 🙄...
Sur la base de "classifier"
Code:
Sub test()
Dim I As Integer, J As Integer, Cellule As Range
Dim K As Integer, L As Integer
K = 11
L = 0
Application.ScreenUpdating = False
For I = 1 To 10
    For J = 1 To 118
        For Each Cellule In Range("A1:J118")
            If Cellule.Address = "$" & Chr(64 + I) & "$" & J Then
                If Cells(J, I) <> "" Then
                    K = 11
                    L = L + 1
                    Cells(L, K) = Cells(J, I)
                    Cells(J, I).Clear
                    K = K + 1
                End If
            Else
                If Mid(Cells(L, K - 1), 2, 1) = Mid(Cellule, 2, 1) And Mid(Cells(L, K - 1), 4, 1) = Mid(Cellule, 4, 1) Then
                    Cells(L, K) = Cellule
                    Cellule.Clear
                    K = K + 1
                End If
            End If
        Next Cellule
    Next J
Next I
Application.ScreenUpdating = True
End Sub
va t'extraire toutes les valeurs du tableau et les mettre par lignes avec le critère demandé (d'où 276 lignes) 😛...
Prends ton mal en patience, sur ton échantillon, il y a déjà quelques minutes de calculs 😱...
Sinon, pour garder la présentation, la seule possibilité que j'envisagerais serait que la sélection d'un mot mette en gras (par exemple) tous les autres mots compatibles, mais ça recalculera à chaque sélection 🙄...
Bon courage 😎
 
Re : Trier du texte dans excel

Re 🙂,
JNP: RegExp needed non ? 😉
I don't think so 😛...
RegExp est intéressant en partant de chaque série de lettre (aa, ab, ac, etc.) pour extraire les mots correspondants... Si tous les mots étaient dans un seul texte séparé par des espaces, oui, il n'y aurait que 750 objets RegExp de créés (si ma mémoire est bonne, il doit y avoir COMBIN(26;2)*2 solutions), mais avec un mot par cellule, c'est autant d'objets RegExp de créés (enfin il me semble, il faudra que je fasse un test 🙄)...
A + 😎
 
Re : Trier du texte dans excel

Re 🙂,
Finalement, l'ami Jean-Marie a raison, RegExp est intéressant 😛.
J'avais toujours eu le tort de faire mon RegExp dans la boucle au lieu de faire la boucle dans le RegExp, ce qui change considérablement les temps de travail 🙄...
Merci Jean-Marie de m'avoir fait faire ces tests 😉 !
Donc mon premier code donne un temps d'exécution (sur ma machine) de 38 secondes.
Le deuxième donne 15 secondes 😛...
Code:
Sub TestRegExp()
Dim I As Integer, J As Integer, Cellule As Range
Dim K As Integer, L As Integer
K = 11
L = 0
Application.ScreenUpdating = False
With CreateObject("vbscript.regexp")
    .Global = False
    For I = 1 To 10
        For J = 1 To 118
            For Each Cellule In Range("A1:J118")
                If Cellule.Address = "$" & Chr(64 + I) & "$" & J Then
                    If Cells(J, I) <> "" Then
                        .Pattern = "^." & Mid(Cells(J, I), 2, 1) & "." & Mid(Cells(J, I), 4, 1) & "..$"
                        K = 11
                        L = L + 1
                        Cells(L, K) = Cells(J, I)
                        Cells(J, I).Clear
                        K = K + 1
                    End If
                Else
                    If .test(Cellule) Then
                        Cells(L, K) = Cellule
                        Cellule.Clear
                        K = K + 1
                    End If
                End If
            Next Cellule
        Next J
    Next I
End With
Application.ScreenUpdating = True
End Sub
Enfin, par rapport à ma proposition, un fichier en PJ avec une événementielle qui colorie les cellules compatibles via RegExp 🙂.
Bonne journée 😎
 

Pièces jointes

Re : Trier du texte dans excel

pardon petit typo 🙂

J'écrivais donc que j'ai ouvert le dernier fichier attaché et je ne sais pas comment appliquer la formule que vous m'avez écrite plus haut. Est ce que quelqu'un pourrait m'aider.

L'objectif est de faire ressortir les mots ayant la deuxième et quatrième lettre identique, exemple: banana .*.*..

Merci beaucoup
 
Re : Trier du texte dans excel

Re 🙂,
Il suffit de clicker sur une case (avec les macros acceptées), et tous les mots valides avec la case sélectionnée passent en jaune et gras 😛...
Bonne journée 😎
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
1 K
Retour