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:
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?
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 |
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 :
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
Partager