Adapter macro pour sélection de fichier txt

Résolu/Fermé
Signaler
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
-
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
-
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

Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
10
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
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
10
Ne tenez plus compte de ce message j'ai trouver en partie une solution ci dessous
Messages postés
202
Date d'inscription
lundi 21 mars 2011
Statut
Membre
Dernière intervention
8 janvier 2014
10
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 !