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 :

recuperer fichiers par date de creation


Sujet :

Macros et VBA Excel

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 77
    Points
    77
    Par défaut recuperer fichiers par date de creation
    Bonjour,

    j'ai une liste de fichiers *.xls à recuperer dont le label est sous la forme d'une date "date".xls par exemple:

    25_12_2009.xls
    26_12_2009.xls
    27_12_2009.xls
    ..................
    30_12_2009.xls
    31_12_2009.xls
    01_01_2010.xls
    02_01_2010.xls

    j'utilise le code suivant pour recuperer ces fichiers aui permet aussi de les fusionner:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    D = Year(Now) & Month(Now) & Day(Now) & Hour(Now) & Minute(Now)
    CheminExp = "mon chemin"
    Do While Fich <> ""
    Ligne = Range("a65536").End(xlUp).Row + 1
    Workbooks.Open CheminExp & Fich$
    Range("A1", Range("K65536").End(xlUp)).Copy _
    Workbooks("rapport_mutualisé_" & D & ".xls").Sheets(1).Cells(Ligne, 1)
    ActiveWorkbook.Close False
    Fich = Dir
    Loop
    le problème que j'ai rencontré c'est que la récuperation de ces fichiers ne se fait pas du plus vieux au plus recent mais par rapport au label par exemple:

    le fichier recuperer et listé en premier dans ce cas sera:

    01_01_2010.xls au lieu de 25_12_2009.xls

    merci pour votre aide.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Tes noms de fichiers ne sont pas interprétés comme des dates, mais comme du texte, donc tu n'auras jamais d'ordre chronologique.

    En partant de ce que tu as, je te conseille de rajouter une colonne et d'utiliser une fonction comme Date (mixer avec les fonction Gauche, droite, etc...) pour générer une date valide, de sélectionner ces deux colonnes et de faire un tri sur la deuxième (aide toi de l'enregistreur de macro pour cette deuxième partie).

    Il y a bien sûr d'autres solutions peut-être plus rapide, mais dans tous les cas, tes noms de fichier seront toujours triés par ordre alphabétique.

    Philippe

  3. #3
    Membre régulier
    Inscrit en
    Mars 2007
    Messages
    159
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 159
    Points : 103
    Points
    103
    Par défaut aaaammjj
    Bonjour,

    Pour avoir un ordre chronologique avec les date, il vaut mieux mettre aaaa_mm_jj au lieu de jj_mm_aaaa.

    Cdt

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 161
    Points : 77
    Points
    77
    Par défaut
    Merci pour vos réponses, effectivement "bibi" inverser la date me parait le plus simple à réaliser.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 19/12/2011, 16h01
  2. Recuperation de la date de creation fichier
    Par ninsekh dans le forum C#
    Réponses: 4
    Dernier message: 22/08/2007, 14h47
  3. Classer des fichiers par date
    Par lorentdups dans le forum Langage
    Réponses: 3
    Dernier message: 01/10/2006, 17h14
  4. Batch - Choisir un fichier par date de création
    Par Lorponos dans le forum Windows
    Réponses: 10
    Dernier message: 07/05/2006, 18h19
  5. Jeu de fichier par date...
    Par Little_Goldo dans le forum Linux
    Réponses: 2
    Dernier message: 17/03/2004, 11h09

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