i

Tri par ordre alphabetique avec caractères numériques


Je travaille dans une bibliothèque et j'ai besoin de trier des côtes d'ouvrage.


Voici un exemple de côtes à trier :


   FOL VS SUP 1 RES.

   FOL VS SUP 11 RES.

   FOL VS SUP 2342 RES.

   FOL VS SUP 9 RES.

   FOL VS SUP 754 RESERVE


Lorsque je fais "Trier A à Z" j'obtiens ce résultat (qui s'inverse lorsque que fais "Trier Z à A".


   FOL VS SUP 1 RES.

   FOL VS SUP 11 RES.

   FOL VS SUP 2342 RES.

   FOL VS SUP 754 RESERVE

   FOL VS SUP 9 RES.


Vous comprendrez que je souhaiterais avoir plutôt ce résultat de classement :  le FOL VS SUP 9 RES. entre FOL VS

SUP 1 RES. et FOL VS SUP 11 RES. etc ...


   FOL VS SUP 1 RES.

   FOL VS SUP 9 RES.

   FOL VS SUP 11 RES.

   FOL VS SUP 754 RESERVE

   FOL VS SUP 2342 RES.


Comment faite avec le Tableur ?


Une question similaire a été posée il y a quelque temps.

Voir le fil " tri par ordre alphabetique"

<http://fr.openoffice.org/servlets/ReadMsg?listName=users&msgNo=75461>


Le principe est de séparer en 3 colonnes : colonne 1 "FOL VS SUP" ; colonne 2 "numero" (format numérique) ;

colonne 3 : 'RES." et de trier sur la colonne 2.

On peut automatiser ça par macro.


Réflexion faite, il suffit de créer 1 colonne où l'on recopie le contenu de la colonne A. On en extrait la partie chiffrée,

on tri et on supprime la colonne.

Voir ici un fichier-test avec macro intégrée : test_tri_cotes_biblio.ods

Si tu veux enregistre la macro avec l'enregistreur :

insérer une colonne à droite de la colonne contenant ce qui t'intéresse

copier le contenu de la colonne contenant ce qui t'intéresse dans cette nouvelle colonne

sélectionner cette copie (sélectionner le contenu de la colonne, pas la colonne car l'enregistreur ne prend pas en

compte une sélection de colonne)

rechercher remplacer les espaces et points

rechercher ^[A-Z](options : sélection active uniquement et expressions régulières) remplacer par 'rien du tout"pour

enlever les lettres du début

idem avec [A-Z]*$ pour enlever les lettres de la fin

La macro que j'ai déposée sur mon site ne fonctionne pas car le fichier téléchargé est en lecture seule. Il suffit de

modifier ça.


quelle fonction tu utilises pour extraire les nombres des côtes ?


Avec la fonction GAUCHE() tu peux enlever FOL VS SUP et avec avec

TROUVE() tu récupères la position de l'espace. Un nouveau coup de

GAUCHE() te donne le nombre sous forme de texte, il suffit d'utiliser

CNUM() pour récupérer la valeur numérique.

Voir sur le wiki la liste des fonctions texte :

http://wiki.services.openoffice.org/wiki/Documentation/FR/Calc:_Fonctions_texte