Importation fichier texte sans connaitre le nom du fichier à importer
crapsnois
Messages postés2Date d'inscriptionmercredi 27 décembre 2006StatutMembreDernière intervention27 décembre 2006
-
27 déc. 2006 à 13:27
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
28 déc. 2006 à 08:36
Bonjour,
Je vous explique mon probleme, il faut que je cré un code vba (sous excel) pour importer des fichiers texte.
les fichiers se trouvent c:\liste
Les fichiers texte porte comme nom
612261300hp.
6 pour l'année
12 pour le mois
26 pour le jour
1300 pour l'heure
et hp c'est comme ca.
Ces fichiers viennet d'une extraction qui ne se fait pas à heure fixe.
Je voudrais un code qui m'importe tous les fichiers du jour (peut importe l'heure)
Mais je suis bloqué
A voir également:
Importation fichier texte sans connaitre le nom du fichier à importer
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 27 déc. 2006 à 14:10
voici une fonction qui te permettra de lancer tes imports, en spécifiant le repertoire de départ (facultatif)
et la date des fichiers exportés (facultatif aussi, prend la date du jour par default)
étrange, cette nomenclature, pour les années...
que feras-tu en 2010 ?
Public Sub ImportFilesByDate(Optional ByRef vsPath As String = "C:", Optional vdImport As Date)
Dim sFileName As String
If vdImport = 0 Then
vdImport = DateTime.Date
End If
sFileName = Dir$(vsPath & Right$(Year(vdImport), 1) & Format$(vdImport, "MMDD") & "????hp")
Do While LenB(sFileName)
MsgBox vsPath & sFileName
sFileName = Dir$()
Loop
End Sub
cs_JMO
Messages postés1854Date d'inscriptionjeudi 23 mai 2002StatutMembreDernière intervention24 juin 201827 27 déc. 2006 à 14:41
Bonjour à tous
Sur le même principe que Renfield:
Path = "C:\liste"
MsgBox ShowFolderList(Path),vbInformation,"Liste des fichiers a transférer"
Function ShowFolderList(strPath)
Dim fso, Dossiers, fic, fichiers, strListe
Set fso = CreateObject("Scripting.FileSystemObject")
Set Dossiers = fso.GetFolder(strPath)
Set fichiers = Dossiers.Files
For Each fichier in fichiers
If Len(fichier.Name) = 15 And _
Left(fichier.Name,5) = Right(Year(Date),1) & Month(Date) & Day(Date) And _
Right(fichier.Name,6) = "hp.txt" Then
strListe = strListe & vbcrlf & fichier.Name
End If
Next
ShowFolderList = strListe & vbcrlf
End Function
reste à tester "hhmm"
jean-marc
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 28 déc. 2006 à 08:36
La procédure que je t'ai donnée requiert un parametre, elle ne pourra donc etre lancée automatiquement, via l'interface des macros.
ajoutes donc:
Public Sub LancerImportation()
Dim sBuffer As String
sBuffer = InputBox("Veuillez saisir la date des fichiers à importer :", "Date des fichiers ?", DateTime.Date)
If IsDate(sBuffer) Then
ImportFilesByDate , CDate(sBuffer)
Else
MsgBox "Saisie invalide.", vbExclamation
End If
End Sub
et pour l'import :
Public Sub ImportFilesByDate(Optional ByRef vsPath As String = "C:\Liste", Optional vdImport As Date)
Dim sFileName As String
If vdImport = 0 Then
vdImport = DateTime.Date
End If
sFileName = Dir$(vsPath & Right$(Year(vdImport), 1) & Format$(vdImport, "MMDD") & "????hp.txt")
Do While LenB(sFileName)
ImportFile vsPath & sFileName
sFileName = Dir$()
Loop
End Sub