Problème tri

Bonjour à tous ,

J'ai une colonne excel que j'aimerai trier par ordre :

B2-103.1

B2-103.10

B2-103.11

B2-103.12

B2-103.13

B2-103.14

B2-103.15

B2-103.16

B2-103.17

B2-103.18

B2-103.19

B2-103.2

B2-103.20

B2-103.21

B2-103.3

B2-103.4

B2-103.5

B2-103.6

B2-103.7

B2-103.8

B2-103.9

En triant je n'ai pas réussi à faire en sorte que tout se mette dans l'ordre... je ne veux pas créer de nouvelle colonne et j'aimerai que tout soit ordonné dans l'ordre.. Comment faire ?

Merci d'avance !!

Bonjour,

seule solution : remplacer 1 par 01, 2 par 02 etc.

Le soucis c'est que ce sont des références.. je ne peut donc pas les modifier

Bonjour, Salut Steelson !

C'était pourtant la meilleure solution que reconcevoir d'une façon plus rationnelle les références ! Quand c'est mal conçu au départ, on ne peut s'étonner d'avoir des problèmes d'utilisation !

Ce que tu peux faire : mettre dans tes cellules les nombres 1 à 21, mettre les cellules au format personnalisé suivant: "B2-103."0

Sinon une colonne supplémentaire pour y mettre tes nombres de fin de référence, sur laquelle tu tries.

Tu peux opérer avec une macro qui ajoutera une colonne, y mettra les nombres, fera le tri et supprimera la colonne ajoutée...

Cordialement.

Salut ! Merci de ta reponse,

Comment je met un format de cellule personnalisée ? je choisis quel format ?

Tu choisis Format de cellule > Format personnalisé et tu tapes comme format exactement ce qui est indiqué dans mon post en gras (y compris les guillemets).

Cordialement.

Tu choisis Format de cellule > Format personnalisé et tu tapes comme format exactement ce qui est indiqué dans mon post en gras (y compris les guillemets).

Cordialement.

Bonjour MFerrand , Steelson, Harastieu.

Bonne solution la mise en Forme des cellules .... en admettant que sont fichier n'a que des "B2-103."

Exact Xmenpl ! C'est ce qu'il a indiqué... (à suivre).

Bonjour à tous,

en admettant que les données soient importées et donc que tu ne puisses pas non plus changer le format et la valeur, il faut alors passer à VBA

Voilà, j'ai demandé à me neurones qui ne s'offusquent jamais de choses pas trop logiques au départ de cogiter sur la solution ... elles m'ont sorti cette macro

Sub tri()
Dim cel As Range

    For Each cel In Range("Tableau1[Référence]")
        cel = Split(cel.Value, ".")(0) & "." & Right("000" & Split(cel.Value, ".")(1), 3)
    Next

    ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau1").Sort.SortFields. _
        Clear
    ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau1").Sort.SortFields. _
        Add Key:=Range("A2"), SortOn:=xlSortOnValues, Order:=xlAscending, _
        DataOption:=xlSortTextAsNumbers
    With ActiveWorkbook.Worksheets("Feuil1").ListObjects("Tableau1").Sort
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With

    For Each cel In Range("Tableau1[Référence]")
        cel = Split(cel.Value, ".")(0) & "." & 1 * (Split(cel.Value, ".")(1))
    Next

End Sub
3trier.xlsm (17.85 Ko)

Bonjour,

@ Steelson,

Le tri peut se résumer à ceci :

With ActiveSheet.ListObjects(1)
        .Sort.SortFields.Add _
                Key:=.ListColumns(1).DataBodyRange, _
                SortOn:=xlSortOnValues, _
                Order:=xlAscending, _
                DataOption:=xlSortTextAsNumbers
        .Sort.Apply
        .Sort.SortFields.Clear
    End With

Oui merci Jean-Eric

En fait, je me suis contenté de l'enregistreur de macro sans chercher ensuite à optimiser

Effectivement avec ListObject c'est nettement mieux !

Avec l'apport de Jean-Eric, cela donne ceci

2trier.xlsm (17.70 Ko)
Rechercher des sujets similaires à "probleme tri"