Re : Ouvrir un fichier csv dans une feuille de mon classeur actif
Je fais un petit UP car mon problème n'est pas résolu, même si je sens que je touche au but...
J'ai donc suivi la deuxième idée de tototiti, à savoir passer par Données -> Données externes -> Importer des données.
J'ai enregistré la macro et je l'ai affectée à un bouton. Jusque là, ça fonctionne.
Voilà le code : (au début j'efface le contenu de la feuille "fantôme", car c'est dans cette feuille que je veux importer mon fichier csv)
Sheets("Fantôme").Cells.Clear
With Sheets("Fantôme").QueryTables.Add(Connection:= _
"TEXT; d:\Users\DEL1\Desktop\courant.csv" _
, Destination:=Sheets("Fantôme").Range("A1"))
.Name = "courant"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Le problème, c'est que je veux que l'utilisateur choisisse le fichier à ouvrir, et pas que ce soit toujours courant.csv
J'ai donc utilisé la fonction GetOpenFilename, et c'est là que mon code plante sans que je sache pourquoi.
Le code :
Dim QuelFichier
QuelFichier = Application.GetOpenFilename("Fichier csv, *.csv", , "Importer un fichier csv")
Sheets("Fantôme").Cells.Clear
With Sheets("Fantôme").QueryTables.Add(Connection:= _
"TEXT; QuelFichier" _
, Destination:=Sheets("Fantôme").Range("A1"))
.Name = "courant"
[...]
.Refresh BackgroundQuery:=False
End With
Vous voyez que j'ai simplement défini QuelFichier, puis l'utilisateur choisi le fichier, et enfin j'ai remplacé l'adresse d'avant (d:\Users\DEL1\Desktop\courant.csv) par QuelFichier.
L'erreur indiqué lors du debogage est :
"erreur d'execution 1004
Impossible de trouver le fichier texte pour l'actualisation de cette page de données externes.
Assurez-vous que le texte n'a été ni déplacé ni renommé puis réessayez."
Merci de votre aide.