Bonjour à tous,

J'ai créé une macro qui me permet d'importer un fichier csv vers excel et elle fonctionne trés bien.
Ce que je voudrais faire, c'est d'automatiser le chemin vers le fichier source.
ma source est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
Fichier = "\\srvdatasdr-prod\madonne_prod$\Madonne_Output\Seuil\Sent\PL_20150803.csv.20150804-090045"
Sachant que j'importe toujours le fichier généré en M-2 ( on est en mois d'octobre donc je dois importer celui du mois d'aout )
Pour trouver le fichier source, je dois prendre en compte l'année et le mois (dans mon exemple en haut "201508" ) tout le reste n'est pas important.
Comment je peux lui specifier le chemin afin que le programme importe toujours celui du M-2 ?
j'ai pensé a procéder comme suit :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
Dim Dat As Date
    Dat = DateSerial(Year(Date), Month(Date) - 2, Day(Date))
Fichier = "\\srvdatasdr-prod\madonne_prod$\Madonne_Output\Seuil\Sent\PL_" & format(Dat, yyymmdd)" & ".csv.20150804-090045"

bien evidament, ce code ne fonctionne pas, c'est juste pour vous donner une idée. En gros, j'aimerais savoir si on peut mettre genre une etoile pour remplacer tous les autres caractéres qui ne compte pas ?


Merci pour vos réponses.

voici le code en entier:

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
Sub import()
    Dim W As Worksheet
    Dim Plage As Range
    Dim Fichier As String
    Dim Dat As Date
    Dat = DateSerial(Year(Date), Month(Date) - 2, Day(Date))
Application.ScreenUpdating = False
 
    Fichier = "\\srvdatasdr-prod\madonne_prod$\Madonne_Output\Seuil\Sent\PL_20150803.csv.20150804-090045"
 
    Set W = Worksheets("Raw Data")
    W.Activate
    With W
       With .QueryTables.Add("TEXT;" & Fichier, Range("A1"))
            .RefreshStyle = xlOverwriteCells
            .TextFileOtherDelimiter = "|"
            .Refresh False
            .Delete '<supprime la liaison
       End With
    End With
    Set W = Worksheets("CPN1")
    W.Activate
    Application.ScreenUpdating = True
End Sub
Cordialement,
Freudsw