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 :D

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.
 

Discussions similaires

Réponses
5
Affichages
297
Réponses
14
Affichages
668