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 :

Mon tri de date ne fonctionne pas bien :(


Sujet :

Macros et VBA Excel

  1. #1
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut Mon tri de date ne fonctionne pas bien :(
    Bonjour,

    Je travaille avec un fichier Excel qui va chercher par l'intermédiaire d'une macro des données sous format date dans un autre fichier.

    Une fois que ces dates sont récupérées, je veux trier ces données selon la date. Jusque là, tout va bien. Par contre si par la suite on veut insérer manuellement des lignes dans ce premier fichier et qu'on relance le tri (par l'intermédiaire d'une macro), alors les dates entrées manuellement ne se trient plus, elles apparaissent avant les autres dates.

    J'ai remarqué que si je fais le tri manuellement (Menu Données --> Trier), les dates se trient correctement, après avoir coché la case "Trier tout ce qui ressemble à des nombres, comme des nombres" ce qui ajoute l'option "xlSortTextAsNumbers" dans la macro. Par contre si je relance cette macro une fois que je l'ai enregistrée, les dates insérées manuellement ne se trient plus.

    J'ai aussi constaté que si je formate la colonne date en nombres, alors seules les dates entrées manuellement se changent en nombre (p.ex 389876) alors que les autres dates restent au format date (jj.mm.yyyy).

    J'ai beau essayer de reformater les colonnes avant le tri, rien ne marche.

    Voici le code qui permet de trier mes lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Selection.Sort Key1:=Range("K9"), Order1:=xlDescending, Key2:=Range("A9") _
            , Order2:=xlAscending, Key3:=Range("H9"), Order3:=xlAscending, Header:= _
            xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
            DataOption1:=xlSortNormal, DataOption2:=xlSortTextAsNumbers, DataOption3 _
            :=xlSortNormal
    Quelqu'un aurait-il une idée ?

    Merci d'avance,
    Steve

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Âge : 61
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 563
    Points : 1 691
    Points
    1 691
    Par défaut
    Citation Envoyé par rohstev
    les autres dates restent au format date (jj.mm.yyyy).
    les points que tu as mis apparaisse ou c'est toi en les écrivant sur le forum. ârce que si ils apparaissent (ce que je pense), c'est que ce n'est pas un format date. il traite donc ces cases là comme du texte. tu dois supprimer ces points.

  3. #3
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    Oui les points sont affichés, mais je fais attention de formater en date les données avant de les copier/coller dans mon fichier. Mais en fait ce qui me pose problème est la chose suivante :

    Si je trie mes données manuellement, ça marche. Si j'utilise une macro (que j'ai créé en enregistrant ce tri manuel) ça ne marche pas.....

    Pourtant l'option "xlSortTextAsNumbers" est bien écrite dans la macro...

    Ou alors faudrait-il que je formate en "nombre" mes dates avant de les insérer dans mon document et après je reformate le tout au format "date" ?

    Steve

  4. #4
    Membre habitué
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 274
    Points : 192
    Points
    192
    Par défaut
    En effet, les dates importées sont considérées comme du texte et impossible de les convertir.

    J'ai trouvé une solution pour parer à mon problème. Au moment de copier-coller les dates, je les cast en date avec CDate(). Du coup toutes mes données sont des dates et ainsi le tri se fait correctement.

    Merci à ceux qui m'ont aidé.

    Steve

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

Discussions similaires

  1. Mon application asp ne fonctionne pas bien
    Par sobjp dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/11/2010, 10h54
  2. [MySQL] Boucle qui ne fonctionne pas bien que la 1ère fois
    Par R.L. dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 27/05/2006, 21h59
  3. Icone systray de connexion wifi ne fonctionne pas bien ?
    Par elitost dans le forum Windows XP
    Réponses: 5
    Dernier message: 24/02/2006, 09h43
  4. Réponses: 7
    Dernier message: 24/01/2006, 11h03
  5. [PERL] un grep qui ne fonctionne pas bien
    Par LE NEINDRE dans le forum Langage
    Réponses: 6
    Dernier message: 03/11/2005, 16h37

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