IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Tri d'une colonne de string contenant des chiffres [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 9
    Points
    9
    Par défaut Tri d'une colonne de string contenant des chiffres
    Bonjour,

    Après plusieurs recherches sur le site et sur google en général vis à vis de mon problème et n'ayant rien trouvé, je me permet de vous poser ma question.
    Veuillez direct m'excuser si la question a déjà été posé (elle a du l'être) mais je n'ai pas trouvé...

    Ma question est toute bête:
    Je souhaite effectuer le tri d'une colonne par ordre croissant. Cette colonne contient des chaines de caractères se terminant avec des chiffres, de type EJH_IU_780.
    Les lettres sont toutes les mêmes dans la colonne, seul les chiffres diffèrent.

    Pour l'instant j'utilise la méthode range.sort pour effectuer mon tri:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("B3:P100").Sort Key1:=Range("B3"), Order1:=xlAscending

    Ca marche correctement pour les chiffres en centaine (723/736/869/920 ) mais après j'en ai des 1000 qu'il me classe au début. Alors qu'il me les faudrait à la fin...

    J'imagine que si j'ai des nombre autour de 100 et 200 il me classera ca comme ca:
    EJH_IU_100
    EJH_IU_1000
    EJH_IU_200
    EJH_IU_700

    Ma question est donc la suivante: comment faire pour que le tri prenne en compte la valeur numérique ? Faut-il obligatoirement que je crée une autre colonne caché dans laquelle je copierai juste la valeur numérique du string ou peut-on rajouter un filtre sur la méthode sort ?

    Merci bien,

    Xunopa

  2. #2
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Il faudrait passer par une colonne supplémentaire (en l’occurrence ci après la colonne Q dans la proposition) ou bien re formater les données de la colonne B comme ceci EJH_IU_xxxxxx (les x désignent des chiffres, exemple EJH_IU_000100, EJH_IU_000578, EJH_IU_001567) et faire le tri normal sans colonne supplémentaire.

    Proposition:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub TriSpe()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                                  'A adapter
        LastLig = .Cells(.Rows.Count, "B").End(xlUp).Row
        .Range("Q3:Q" & LastLig).Formula = "=SUBSTITUTE(B3,""EJH_IU_"","""")*1"
        .Range("B3:Q" & LastLig).Sort Key1:=.Range("Q3"), Order1:=xlAscending, Header:=xlNo
        .Columns(17).Delete
    End With
    End Sub

  3. #3
    Futur Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 9
    Points
    9
    Par défaut
    Salut mercatog,

    Merci à toi pour ta réponse et pour ton aide.
    J'ai choisi de passer par une autre colonne comme tu me l'as proposé.

    Problème résolu donc.

    Merci encore et bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/05/2014, 20h52
  2. Réponses: 1
    Dernier message: 23/03/2013, 13h26
  3. Tri sur une chaîne de caractères contenant des nombres
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2006, 11h52
  4. Création d'une base de données contenant des images
    Par gandalf_le_blanc dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 16/06/2004, 15h29
  5. [xsl java]Appliquer une XSL à un String contenant doc XML
    Par aldo047 dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 03/04/2003, 15h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo