Microsoft 365 Trier les données d'une colonne.

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 !

Jojo973

XLDnaute Occasionnel
Supporter XLD
Bonjour la communauté.
Je développe un petit outil qui permet de renommer des pdf. Une des étapes consiste à récupérer le nom des fichiers dans un dossier. Ils sont sous la forme :
1_Splitom.pdf
9_Splitom.pdf
8_Splitom.pdf
7_Splitom.pdf
6_Splitom.pdf
5_Splitom.pdf
4_Splitom.pdf
3_Splitom.pdf
2_Splitom.pdf
19_Splitom.pdf
18_Splitom.pdf
17_Splitom.pdf
16_Splitom.pdf
15_Splitom.pdf
14_Splitom.pdf
13_Splitom.pdf
12_Splitom.pdf
11_Splitom.pdf
10_Splitom.pdf

Ces noms n'étant pas dans l'ordre, j'ai fais une macro de tri mais je n'obtiens pas ce que je souhaite, un classement de 1_ à 19_

J'ai essayé différent mode de tri mais je bloque.
Un coup de main serait le bien venu.
En pj le fichier avec une macro de tri de base.

Merci à vous
 

Pièces jointes

Bonjour Jojo, Bsalv,
Classique, car "10" sera devant "2_" puisque tri alpha.
Une solution en rajoutant un 0 si <10 puis tri puis suppression des 0, avec :
VB:
Sub tri_split()
Worksheets("Feuil1").Sort.SortFields.Clear
Set Plage = Range("A2:A20")
For Each cell In Plage
    If Mid(cell, 2, 1) = "_" Then Range(cell.Address) = "0" & cell.Value
Next cell
Plage.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes
For Each cell In Plage
    If Mid(cell, 1, 1) = "0" Then Range(cell.Address) = Mid(cell.Value, 2)
Next cell
End Sub
 

Pièces jointes

- 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

Retour