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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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