TRI Particulier 1 2 3 10 11 12 et non 1 10 11 12 2 3

Bonjour,

J'a un classeur d'une centaine de page qui recense des outil interne les nom de ces outil sont deja defini depuis des déceni donc je ne peut pas les changer sa va etre a moi ou plutot a mon fichier excel de s'adapter pour trier les page dans l'ordre actuellement j'utilise ce code

For i = 1 To Sheets.Count '---------------------------------------------------------------------'
     For j = i + 1 To Sheets.Count                                                              '
         If UCase(Sheets(i).Name) > UCase(Sheets(j).Name) Then Sheets(j).Move before:=Sheets(i) '
     Next                          ' En premier lieu on trie les feuilles par ordre alhabetique '
Next '------------------------------------------------------------------------------------------'

Mais le soucis est qu'il tri dans l'ordre numerique jusque la normal mais je souhaiterais que le dix par exemple ne soit pas derriere le un mais bien derriere le 9 (Bien eveidement je ne peut pas renomer tout les numéro en 0X sa serait trop simple)

Je vous joint un fichier exemple

Bonjour,

Bien évidemment je ne peut pas renommer tout les numéro en 0X

Pourquoi ? Tu as essayé ? En principe ça ne doit pas poser de problème dans la plupart des cas, sauf si tu utilises aussi les noms de feuilles dans des macros... Et s'il y a beaucoup de macros, ça fait beaucoup de modifs... Mais c'est faisable ! Les liens hypertextes et les formules suivront bien...

C'est le problème quand on monte des classeurs comme ça au fil de l'eau sans réflexion globale...

Il faudrait avoir une réflexion vraiment très pointue sur les conséquence du renommage de feuilles, mais il y a surement des possibilités en utilisant astucieusement le CodeName des feuilles qui ne semble pas utilisé.

Il faut être plus précis : Une centaine c'est quoi ? Plus de 100 ou moins de 100 ? Est-ce que ce nombre risque d'évoluer et de passer au delà de 100 très rapidement ? Parce que si Oui, pas la peine d'imaginer une solution pour 99 aujourd'hui pour qu'elle soit obsolète le mois prochain...

A+

Merci de ton retour galopin01 malheureusement je ne peut pas renommer en 0X ou 00X car il s'agit du numéro d'identification déjà inscrit de manière physique sur chaque pièce et donc il est plus envisageable de modifier une macro excel que de faire reprendre une centaine de pièce

à l'heure actuelle et pour ces outillage la dénomination est AXX-X ou AXX-XX la logique du 0 a bien été applique pour la première partie du nom ce qui donne par exemple A08-1 mais la deuxième partie s’incrémente au fur et a mesure et au départ il ne pensait pas avoir plus de neuf type après le "A08-"

Je ne sait pas si je suis compréhensible néanmoins j'ai EDIT le fichier Excel de mon premier post car j'avais des soucis dans le reste de mon code qui générait des erreue

Bonjour

Essaie ce code :

Sub ClassementDesFeuilles()

    For i = 1 To Sheets.Count '---------------------------------------------------------------------'
         flag = 0
         For j = i + 1 To Sheets.Count
            On Error GoTo suite
             If Val(Split(Sheets(i).Name, "-")(1)) > Val(Split(Sheets(j).Name, "-")(1)) Then
                If flag = 1 Then
                    flag = 0
                    Exit For
                End If
                Sheets(j).Move before:=Sheets(i)
            End If
         Next j
    Next i
Exit Sub
suite:
    flag = 1
    Resume Next
End Sub

Bye !

Merci gmb le code marche tres bien !

J'etait partit dans une idée de renommé mes feuille avec un 0 avant de les trier puis de les supprimer après donc ta solution me va plus!

Rechercher des sujets similaires à "tri particulier"