Trier des articles de CCTP (utilisé dans le bâtiment)
taupin
-
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
eriiic Messages postés 24581 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Voilà moi je cherche à trier des numéro de CCTP à partir d'une base de données.
Exemple sur un onglet je plusieurs n° de CCTP dans une colonne (1.1.1 ; 2.1 ; 2.1.1 ; 2.2.2.2...)
Mon problème est qu'Excel n'arrive pas à trier un chiffre ayant plus d'un séparateur (ici les points).
Je ne sais pas s'il existe une astuce ou bien une autre formule pouvant faire ce tri.
Merci à toutes les personnes qui se tueront à la tâche^^
A bientôt.
Voilà moi je cherche à trier des numéro de CCTP à partir d'une base de données.
Exemple sur un onglet je plusieurs n° de CCTP dans une colonne (1.1.1 ; 2.1 ; 2.1.1 ; 2.2.2.2...)
Mon problème est qu'Excel n'arrive pas à trier un chiffre ayant plus d'un séparateur (ici les points).
Je ne sais pas s'il existe une astuce ou bien une autre formule pouvant faire ce tri.
Merci à toutes les personnes qui se tueront à la tâche^^
A bientôt.
4 réponses
-
Bonjour ,
Voilà moi je cherche à trier des numéro de CCTP à partir d'une base de données.
Quand tu dis base de données , tu ne parles pas d'une base excel , n'est ce pas ?
Si cette base n'est pas extraite d'excel, peux tu nous donner un apercu du
résultat ou de l'erreur qu'excel te met lorsque que tu l'importes vers excel ?
Si cette base de données provient d'excel , le tri peut etre effectué meme avec des nombres à plusieurs virgules puis qu'au delà d'une virgule, Excel ne le considère plus comme tel.
Cdlt,
-
Bonjour Fahora,
Tout d'abord merci de te réponse c'est sympa. Je te réponds à mon tour car il y a toujours un hic.
Donc c'est bien une base de donnée excel. Et excel ne comprends pas ce que je souhaite faire car il considère le numéro à 1 virgule comme un chiffre et le numéro à plusieurs virgules comme un texte. Je te donne un exemple pour que ce soit concret :
Voici les numéros que je souhaite trier :
4.2
1.1
1.1.1
2.1.5
0.2.4
Voici ce que le tri par ordre croissant me donne :
1.1
4.2 (ici il a mit le numéro en 2eme position car il a d'abord trier les numéro à 1 virgule)
0.2.4
1.1.1
2.1.5
Voici ce que moi je souhaite :
0.2.4
1.1
1.1.1
2.1.5
4.2
J'espère que j'ai été plus clair cette fois-ci, et si tu as la solution en tête ce serait génial.
Merci à bientôt.
-
-
Bonjour
essayer de mettre les cellules au format texte-
Bonjour yclik,
Tout d'abord merci de te réponse c'est sympa. Je te réponds à mon tour car il y a toujours un hic.
J'ai testé votre solution et elle ne marche pas. Excel considère toujours numéro à 1 virgule comme un chiffre (même au format textre) et le numéro à plusieurs virgules comme un texte. Je te donne un exemple pour que ce soit concret :
Voici les numéros que je souhaite trier :
4.2
1.1
1.1.1
2.1.5
0.2.4
Voici ce que le tri par ordre croissant me donne :
1.1
4.2 (ici il a mit le numéro en 2eme position car il a d'abord trier les numéro à 1 virgule)
0.2.4
1.1.1
2.1.5
Voici ce que moi je souhaite :
0.2.4
1.1
1.1.1
2.1.5
4.2
J'espère que j'ai été plus clair cette fois-ci, et si tu as la solution en tête ce serait génial.
Merci à bientôt.
-
-
Bonjour,
Une petite macro créant dans la colonne (libre) à droite de la sélection une numérotation permettant les tris.Sub numChapitre() Const sep As String = "." Dim datas, result, tmp Dim tailleNum(0 To 9) As Long, lig As Long, i As Long If Selection.Columns.Count > 1 Then Exit Sub datas = Selection.Value For lig = 1 To UBound(datas) tmp = Split(datas(lig, 1), sep) For i = 0 To UBound(tmp) tailleNum(i) = Application.Max(tailleNum(i), Len(tmp(i))) Next i Next lig For lig = 1 To UBound(datas) tmp = Split(datas(lig, 1), sep) For i = 0 To UBound(tmp) tmp(i) = Format(tmp(i), Application.Rept("0", tailleNum(i))) Next i datas(lig, 1) = Join(tmp, sep) Next lig Selection.Offset(, 1) = datas End Sub
https://www.cjoint.com/c/FFpj2P714XX
eric
-
-
-
Bonjour Eric,
Désolé pour ma réactivité. Voici le fichier que j'ai modifié (en rajoutant vos dernières lignes comme vous m'avez indiqué, mais je ne suis pas sûr que je l'ai bien intégré étant novice):
http://www.cjoint.com/c/FFwjQbvVE2S
Effectivement on parle bien que de points. Ici la macro ne comprend pas le 4.2 car il n'a qu'un seul point... et le tri de la colonne B n'est plus correct.
Cdt,
-
-
Bonjour,
pas de soucis chez moi, c'est bien trié.
Tu n'as pas dû resélectionné la plage et lancé la macro après avoir fait la modif (?)
eric