Ouvrir un fichier csv dans une feuille de mon classeur actif

  • Initiateur de la discussion Initiateur de la discussion Gisamark
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Gisamark

XLDnaute Junior
Ouvrir un fichier csv dans une feuille de mon classeur actif [RESOLU]

Bonjour les gens !

Je crois que mon titre dit tout. 😛
J'ai donc un classeur (appelons-le... Classeur1 😀) à l'intérieur duquelle j'ai 4 feuilles. (feuil1, feuil2, feuil3, feuil4)
Sur la feuil2, j'ai un bouton qui sert à ouvrir uniquement des fichiers csv.
Et quand j'ouvre un csv, celui-ci apparait dans un nouveau classeur... 🙁
J'aimerais qu'il s'ouvre dans la feuil4, et je ne sais pas comment faire.

Merci de votre aide. 🙂
 
Dernière édition:
Re : Ouvrir un fichier csv dans une feuille de mon classeur actif

Bonjour Gisamark, le forum,
sans avoir ni ta macro ni ton fichier j'ai peur que ta solution ne soit pas facile à trouver
a+
pascal
PS : pour moi c'est ta macro qui génère un nouveau classeur mais?
 
Re : Ouvrir un fichier csv dans une feuille de mon classeur actif

Bonjour Gisamark, Bonjour Paritec,

l'utilisation de Workbooks.open ou Workbooks.OpenText génère toujours un nouveau classeur.
2 solutions s'offrent à toi :

1) copier les données du classeur ouvert pour les coller dans la feuille voulue (par macro évidement)

ou

2) enregistrer une macro en:
te plaçant dans la feuille de destination
Menu Données - Données Externes - Importer des données
...
 
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. 🙂
 
Dernière édition:
Re : Ouvrir un fichier csv dans une feuille de mon classeur actif

Bon j'ai un peu honte mais j'ai trouvé le problème...
Il fallait écrire "TEXT;" & QuelFichier au lieu de "TEXT; QuelFichier" à l'intérieur du QueryTables.Add.
Bref, merci à tototiti et paritec.
En espérant que ça serve à d'autres. 😉
 
Dernière édition:
Re : Ouvrir un fichier csv dans une feuille de mon classeur actif

Bonjour à tous,

je fais juste remarquer que les données externes créent un lien avec le fichier CSV (que tu peux actualiser avec la barre d'outils Données externes).
Si tu veux qu'il n'y ait plus de lien, ajoute un

.Delete

juste après le

.Refresh
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Retour