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

Excel Discussion :

Classement de l'underscore "_" différent sous Excel 2013 et sous VBA


Sujet :

Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 14
    Points
    14
    Par défaut Classement de l'underscore "_" différent sous Excel 2013 et sous VBA
    La liste à trier comporte les expressions "100" et "10_"
    Le tri croissant sous Excel 2013 (instruction SORT) place 10_ avant 100
    Sous VBA, la comparaison donne 100 < 10_ ( asc("0")=48 et asc("_")=95 ).
    Comment faire pour rendre le tri Excel conforme aux valeurs ASCII ?

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Bonjour,

    J'essaie de reproduire ton cas et le tri se fait de la même façon sous Excel ou VBA...
    J'ai essayé avec des 100 numériques et en mettant une apostrophe devant pour les rendre alpha et les 2 tris sont identiques (?)
    Le 10_ se retrouve en haut
    MPi²

  3. #3
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Merci pour ta réponse.

    J'avais omis de dire que les valeurs étaient des préfixes de champs textes plus longs.
    En fait, sous VBA j'exécute le tri avec l'instruction Sort, ce qui donne le même résultat qu'avec Excel : le tri croissant fait apparaître 10_ avant 100 comme tu me l'indiques, alors que cela devrait être l'inverse en se basant sur les valeurs ASCII.
    Plus loin, dans mon code VBA je fais des comparaisons directes entre les champs et 10_ apparaît plus grand que 100. D'où le problème.

  4. #4
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Option Compare Text : classement alphabétique français
    Option Comparfe Binary : classement selon les numéros de code ASCII (peut-être même Unicode au lieu d'ASCII)
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2007
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique

    Informations forums :
    Inscription : Avril 2007
    Messages : 29
    Points : 14
    Points
    14
    Par défaut
    Bonsoir clementmarcotte,

    Effectivement, "Option Text" rend vraie la proposition 10_ < 100 dans une instruction VBA et peut donc résoudre le problème. Malheureusement elle s'impose à la totalité du code ce qui me poserait des difficultés ailleurs.

    C'est donc "Option Binary" qui m'intéresse dans mes codes VBA. Malheureusement, elle n'est pas prise en compte par Excel lors de l'instruction VBA Sort : l'underscore reste plus petit que le 0.
    L'option MatchCase = True de Sort n'agit pas non plus.

    Je n'arrive pas à trouver, dans les options d'Excel, le paramètre qui assurerait un tri suivant l'ordre ASCII strict.

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