Séparer Chiffres et Lettre pour effectuer un tri

Bonjour,

J'ai des références du type 25E, 26WE, 27BKE, 28WB.

Et j'aimerai séparer dans une colonne les chiffres, ce que j'arrive à faire grâce à votre aide sur ce forum mais maintenant, j'aimerai reporter les lettres dans une colonne également.

Ci-joint le fichier pour que vous puissiez voir où je veux en venir.

Merci d'avance

2'558excel.xlsx (9.09 Ko)

Bonjour JeanJean,

Vu que tu as déjà extrait les chiffres, extraire les lettres est assez simple. Formule à mettre en C4 :

=DROITE(D4;NBCAR(D4)-NBCAR(B4))

Bonjour,

Il faudrait que tu nous en dises plus.

Le nombre de chiffres est-il toujours de 2 ?

Pour isoler les lettres, tu peux tester :

=SUBSTITUE(D4;B4;"")

@+

Edit : Salut vba_new

@+

Bonjour

Quel que soit le nombre de chiffres avant le texte, tu peux utiliser en E4 une formule matricielle (A valider avec les 3 touches Ctrl+Maj+Entrée)

=SUBSTITUE(D4;1*STXT(D4;EQUIV(VRAI;ESTNUM(1*STXT(D4;LIGNE(INDIRECT("1:"&NBCAR($D4)));1));0);NB(1*STXT(D4;LIGNE(INDIRECT("1:"&NBCAR($D4)));1)));"")

Cordialement

894excel.xlsx (9.56 Ko)

Merci beaucoup pour les nombreuses réponses rapides.

Merci thibo et vba, vos deux réponses fonctionnent parfaitement.

Il y a environ 6000 chiffres donc des nombres avec 4-5 chiffres.

Amadeus, je n'ai pas compris la formule bien qu'elle fonctionne, je vais m'y pencher encore un peu.

Encore, une question, j'ai enfait une grande formule avec substitue pour enlever les lettres, mais il y a plus de 7 lettres différentes à enlever donc je n'y arrive plus.

Encore une fois, voici l'exemple ci-joint.

Ou alors, si vous avez une solution plus simple pour trier par ordre croissant les nombres et chiffres de la colonne D dans le bon ordre...

-- 23 Juin 2011, 22:34 --

Finalement j'ai trouvé un truc pour tout régler, si ça intéresse quelqu'un je le met en fichier joint également.

Merci pour votre aide.

Cordialement

624excel.xlsx (9.29 Ko)
866excel.xlsx (9.53 Ko)

Bonsoir à tous,

Une proposition avec une fonction vba (voir classeur).

Option Explicit

Function Keep(x$, b As Boolean)
    Dim i%, s$, n#
    For i = 1 To Len(x)
        Select Case Right(Left(x, i), 1)
            Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
                If b Then s = s & Right(Left(x, i), 1)
            Case Else
                If Not b Then s = s & Right(Left(x, i), 1)
        End Select
    Next i
    If b Then
        n = s
        Keep = n
    Else
        Keep = Trim(s)
    End If
End Function

Si il n'est pas important que les nombres extraits soient sous forme de texte (ce qui n'empèche pas le tri) on peut simplifier

Function KeepT$(x$, b As Boolean)
    Dim i%, s$
    For i = 1 To Len(x)
        Select Case Right(Left(x, i), 1)
            Case "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"
                If b Then s = s & Right(Left(x, i), 1)
            Case Else
                If Not b Then s = s & Right(Left(x, i), 1)
        End Select
    Next i
    KeepT = Trim(s)
End Function

Cordialement

Jules

520test.xlsm (17.06 Ko)

Merci Jules, je ne touche pas bien aux macros pour l'instant, je vais m'y atteler un peu

Bonsoir

pourquoi compliquer

Cordialement

1'732excel2.xlsx (11.93 Ko)

Merci Mozart

Rechercher des sujets similaires à "separer chiffres lettre effectuer tri"