Adapter macro pour sélection de fichier txt

Résolu
kgigant Messages postés 223 Statut Membre -  
kgigant Messages postés 223 Statut Membre -
Bonjour,

En cherchant sur internet j'ai trouvé une macro que je pense pouvoir exploiter dans mon fichier. Cette macro permet de savoir si un fichier txt à été créé aujourd'hui, puis en fonction du résultat l'importer ou non.

voilà la macro :

Sub a()

fDate = FileDateTime("H:\comp\fichier1.txt")
' fDate contient la date et l'heure de
' dernière modification
If DateSerial(Year(fDate), Month(fDate), Day(fDate)) = _
DateSerial(Year(Now), Month(Now), Day(Now)) Then
MsgBox "Le fichier est d'aujourd'hui"
Else
MsgBox "Le fichier n'est pas d'aujourd'hui"
End If

End Sub

Est-il possible dans un premier temps de modifier cette macro en insérant une boucle afin qu'il réalise ce test pour tous les fichiers txts du dossier "comp" ?

Dans un deuxième temps de choisir par rapport à quelle date je veux comparer les fichiers ( à la place de la date du jour)

Merci de votre aide

2 réponses

  1. kgigant Messages postés 223 Statut Membre 9
     
    voilà ma macro avec l'ajout du code pour importer le fichier txt dans le dossier comp dont la date est égale à celle d'aujourd'hui. Ce que je recherche c'est d'ajouter une boucle qui me permette de balayer tous les fichiers txts du dossier comp.

    Sub a()

    fDate = FileDateTime("H:\comp\SBO5275_100cl_20gr_245_B après-midi(2).txt")
    ' fDate contient la date et l'heure de
    ' dernière modification
    If DateSerial(Year(fDate), Month(fDate), Day(fDate)) = _
    DateSerial(Year(Now), Month(Now), Day(Now)) Then
    MsgBox "Le fichier est d'aujourd'hui"

    Dim Fichier As String, Chemin As String
    Dim i As Long

    Range("A1").Select

    'Répertoire contenant les fichiers
    Chemin = "H:\comp"
    Fichier = Dir(Chemin & "\*.txt")

    'Boucle sur les fichiers
    Do While Fichier <> ""

    i = Range("A65536").End(xlUp).Row + 1
    ImportText Chemin & "\" & Fichier, Cells(i, 1)
    Cells(i + 5, "P").Resize(20) = FileDateTime(Chemin & "\" & Fichier)
    Fichier = Dir
    Loop

    Else
    MsgBox "Le fichier n'est pas d'aujourd'hui"
    End If

    End Sub

    merci
    0
    1. kgigant Messages postés 223 Statut Membre 9
       
      Ne tenez plus compte de ce message j'ai trouver en partie une solution ci dessous
      0
  2. kgigant Messages postés 223 Statut Membre 9
     
    J'ai enfin trouver une bonne partie du code que je désire, en effet désormais lorsque je lance ma macro, elle fait une boucle sur tous les fichiers txts du dossiers comp. En fonction de la date de création/modification des fichiers txts (si elle est égale à la date du jour), elle m'importe le fichier txt sous excel.

    Ce que je cherche maintenant, c'est d'importer les fichiers non plus selon la date du jour mais selon une date que je rentre quelque part !

    Par exemple, importer tous les fichiers txt dont la date de création est supérieur au 01/01/2013

    voilà la macro :

    Sub a()

    Dim Fichier As String, Chemin As String
    Dim i As Long

    'Répertoire contenant les fichiers
    Chemin = "H:\comp"
    Fichier = Dir(Chemin & "\*.txt")

    'Boucle sur les fichiers
    Do While Fichier <> ""

    fDate = FileDateTime(Chemin & "\" & Fichier)
    ' fDate contient la date et l'heure de
    ' dernière modification
    If DateSerial(Year(fDate), Month(fDate), Day(fDate)) = _
    DateSerial(Year(Now), Month(Now), Day(Now)) Then
    'MsgBox "Le fichier est d'aujourd'hui"

    i = Range("A65536").End(xlUp).Row + 1
    ImportText Chemin & "\" & Fichier, Cells(i, 1)
    Cells(i + 5, "P").Resize(20) = FileDateTime(Chemin & "\" & Fichier)

    Else
    'MsgBox "Le fichier n'est pas d'aujourd'hui"
    End If

    Fichier = Dir
    Loop

    End Sub

    Merci d'avance !
    0