Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Trier des nombre + unité ?

zendb

XLDnaute Junior
Bonjour,

j'ai un TCD avec une sous-ligne dans laquelle j'ai des nombres + une unité :
Par exemple : 50 kg, 1000 kg, 250 kg

Je souhaiterai les trier par ordre croissant mais excel les classes en fonction du premier chiffre du nombre.
Par exemple si je prend : 1000 kg, 10 kg, 2 kg et 160 kg

j'aimerai logiquement avoir : 2 kg, 10 kg, 160 kg puis 1000 kg
mais excel me fait : 10 kg, 1000 kg, 160 kg et 2 kg

Une idée ??
 

Lone-wolf

XLDnaute Barbatruc
Bonjour zendb, djidji

Par macro. Plage à modifier

VB:
Sub deb()
With Feuil1
Set plage = .Range("a2:a" & .Range("a" & Rows.Count).End(xlUp).Row)
derlig = .Range("a" & Rows.Count).End(xlUp).Row
For Each cel In plage
cel.Offset(0, 0) = Replace(cel.Offset(0, 0), "Kg", "")
.Range("a2:a65536").Sort .Range("a2"), xlAscending
Next cel
For i = 2 To derlig
.Cells(i, 1) = .Cells(i, 1) & " Kg"
Next i
End With
End Sub
 

djidji59430

XLDnaute Barbatruc
Bonjour à vous 2

Si tu passes par format personnalisé, ça restera un nombre et excel les rangera comme tels.
D'autre part, si ton tableau est destiné a alimenter un TCD, il n'y a pas de raison de mettre des unités. Ça se fait sur le tableau final, celui qu'on veut faire voir !
Crdmt
 

Lone-wolf

XLDnaute Barbatruc
Bonjour tout le monde 1 fois

Variante si colonne contient une formule

VB:
Sub deb()
Dim derlig As Long, i As Long
    With Feuil1
        derlig = .Range("i" & Rows.Count).End(xlUp).Row
        .Range("a2").FormulaLocal = "=I2/$J$2 & "" Kg"""
        .Range("a2").AutoFill Destination:=.Range("a2:a" & derlig)
        For i = 2 To derlig
            .Cells(i, 1) = Replace(.Cells(i, 1), "Kg", "")
        Next i
        .Range("a2:i65536").Sort .Range("a2"), xlAscending
    End With
End Sub
 

zendb

XLDnaute Junior
Hello,

Je reviens sur mon soucis,
Le problème est que j'ai plusieurs "unité" dans mon TCD, des Kg et des L ... et je ne vois pas comment les afficher de manière différente.

En fait dans mon tableau j'ai, dans la première colonne, une ligne avec un nom de modèle puis des sous lignes avec différents sous modèles : 10kg, 25kg, 150kg ... et rarement quelques sous modèles en L.
Ce sont bien ces "sous modèles" que je voudrais trier par ordre croissant.

Si dans ma "base" qui alimente mon TCD je ne rentre que les nombre sans les "unités" je pense que ça fonctionne. Mais dans ce cas :
- comment afficher les unités dans mon TCD ?
- comment différencier les Kg des L ... si par exemple j'ai 150L et 150kg et que je rentre dans ma base "150" ... impossible de savoir.
 

Victor21

XLDnaute Barbatruc
Bonjour à tous, zendb

Peut-être serait-il temps maintenant de joindre un morceau de votre fichier, pour voir comment il est -mal- organisé (On ne mélange pas les torchons avec les essuie-mains), et vous conseiller comment le modifier.
 

Discussions similaires

Réponses
5
Affichages
242
Réponses
14
Affichages
643
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…