Importation automatique de fichiers text sur Excel
Bonjour à tous ,
Je souhaite importer des fichiers texte sur EXCEL de manière automatique avec VBA Excel.
auparavant j'utilisait un code Vba ACCESS avec la fonction Dir pour importé de matière automatique le fichier le plus récent de mon répertoire.
Je veux adapter ce même code pour importer des fichiers texte sur Excel, de manière à toujours importer le dernier fichier enregistré sur le répertoire.
mes fichiers sont enregistrés sous cette forme:ANOMALIE_TELEREG_D150504_T2259.TXT
D150504=correspond à la date du jour
T2259= l'heure d'enregistrement du fichier
Ci-dessous le code qui me permet de lire mon fichier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Public Function ImportationAutomatique()
'Déclaration de variables
Dim StrFichier As String
Const CHEMIN_FICHIER As String = "\\Winsab\diffusion\Batch\E0UG\GRECCO\Encaissement\Telereglement\ano\"
Dim MaDate As String
Dim OldStrFichier As String
'Initialisation
StrFichier = Dir(CHEMIN_FICHIER & "\ANOMALIE_TELEREG_D*.TXT")
While StrFichier <> ""
If OldStrFichier < StrFichier Then OldStrFichier = StrFichier
StrFichier = Dir()
Wend
MsgBox OldStrFichier
If MsgBox("Confirmez-vous l'importation de la table Tache?", vbQuestion + vbYesNo) = vbNo Then
Exit Function
End If
MsgBox ("NOM FICHIER = " & OldStrFichier)
'Verifier que le fichier existe bien
If OldStrFichier = "" Then
MsgBox "le fichier" & OldStrFichier & " est introuvable!", vbExclamation
Exit Function
End If
MsgBox "le fichier" & OldStrFichier & " a bien ete trouvé!", vbExclamation
End Function |
Comment associer ce code avec ce suit pour importé mon fichier Excel de manière automatique?
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Sub ImportText(FileName As String, PosImport As Range)
Dim QT As QueryTable
Set QT = ActiveSheet.QueryTables.Add(Connection:="TEXT;" & FileName, Destination:=PosImport)
With QT
.TextFileSemicolonDelimiter = True
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.Refresh
End With
End Sub |
Code:
1 2 3 4 5
| Sub test()
ImportText Dir(CHEMIN_FICHIER & "\ANOMALIE_TELEREG_D*.TXT"), Range("A1")
End Sub |
C'est la fonction Dir qu'il ne reconnait pas, si j'indique chemin complet :
Code:
ImportText "\\Winsab\diffusion\Batch\E0UG\GRECCO\Encaissement\Telereglement\ano\ANOMALIE_TELEREG_D150427_T2158.TXT", Range("A1")
ça marche, mais ne résout pas mon problème, mon fichier change avec la date et l'heure d'enregistrement.
Je veux à chaque import il m'importe le dernier fichier enregistré.
Merci par avance.
Cdt
Importation automatique sous Excel
Bonjour kiki29,
Merci pour la réponse, ça ne résout pas mon problème, mon objectif c'est pas de trier mais d'importer automatiquement le dernier fichier enregistré.
Cdt
Importation automatique sous Excel
Bonjour à tous,
J'ai pu résoudre mon problème avec ce code:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| Sub ImportationAnamalieCRR()
Dim oldR As String
Dim R$, S$, chemin$
Dim MaDate As String
chemin = "\\Winsab\diffusion\Batch\B0UG\GRECCO\Encaissement\Telereglement\ano\"
S = chemin
R = Dir(chemin & "\ANOMALIE_TELEREG_D*.TXT")
While R <> ""
If oldR < R Then oldR = R
R = Dir()
Wend
Workbooks.OpenText FileName:=S & oldR, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=False, _
Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
:=Array(Array(1, 1), Array(2, 1), Array(3, 1)), TrailingMinusNumbers:=True
Columns("A:C").Select
Selection.Copy
ActiveSheet.Name = "ANOMALIE_TELEREG"
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs FileName:="C:\Ram\Test2\ANOMALIE_TELEREG_CRR.xlsx", FileFormat:=51
Application.DisplayAlerts = True
End Sub |
Merci beaucoup à kiki29 pour ton aide.