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

Trier des nombre + unité ?

  • Initiateur de la discussion Initiateur de la discussion zendb
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

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 ??
 
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
 
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
 
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
 
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.
 
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.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
188
  • Question Question
Microsoft 365 Formule avec OU ?
Réponses
5
Affichages
421
Réponses
14
Affichages
881
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…