Importer fichier csv vers excel sous vba
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:
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:
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:
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
Merci marc pour ta réponse
je me suis documenté sur cette commande mais je n'ai pas bien compris comment l'utiliser...
j'ai cherché dans le forum et la plupart disent qu'en mettant une * ça remplace les caractére qu'on ne veut pas prendre en compte.
du coup j'ai essayé de proceder comme suit :
Code:
Fichier = "\\srvdatasdr-prod\madonne_prod$\Madonne_Output\Seuil\Sent\" & "PL_" & Format(Dat, "yyyymm") & "*"
mais l'etoile est considéré comme un caractere normale...donc ça me renvois le chemin suivant :
Code:
"\\srvdatasdr-prod\madonne_prod$\Madonne_Output\Seuil\Sent\PL_201508*"
je suis bloqué !!!
Merci encore
cordialement,
Freudsw