Power Query importer fichier CSV, dont le chemin est dans une cellule Excel

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 !

vgendron

XLDnaute Barbatruc
Bonjour,
J'interviens sur un post

j'ai donc une requete qui importe le fichier CSV, mais le chemin est en "dur" directement dans la requete

ce que je souhaite, c'est mettre ce chemin dans une cellule Excel que PQ va lire pour mettre dans une variable

après avoir mis le chemin complet du fichier à importer dans un tableau,
1) j'importe le tableau dans PQ
2) DrillDown pour en faire un paramètre "CheminComplet"

l'instruction d'import du fichier passe de
VB:
Source = Csv.Document(File.Contents("C:\Users\vince\Downloads\Fevrier.csv"),[Delimiter=";", Columns=15, Encoding=1252, QuoteStyle=QuoteStyle.None]),

à
Code:
Source = Csv.Document(File.Contents(CheminComplet),[Delimiter=";", Columns=15, Encoding=1252, QuoteStyle=QuoteStyle.None]),

MAIS j'ai un message d'erreur m'indiquant un pb de chemin absolu...

en cherchant un peu, j'ai vu une solution de @merinos-BernardEtang qui utilise deux cellules
Une pour le chemin nommée "CheminCSV" et une pour le nom du fichier nommée "FichierCSV"

le code devient donc
Code:
    Chemin =Excel.CurrentWorkbook(){[Name="CheminCSV"]}[Content]{0}[Column1],
    Fichier=Excel.CurrentWorkbook(){[Name="FichierCSV"]}[Content]{0}[Column1],
    Source = Csv.Document(Chemin&Fichier,[Delimiter=";", Columns=15, Encoding=1252, QuoteStyle=QuoteStyle.None]),

plus d'erreur MAIS le contenu reste vide

Sauriez vous m'indiquer ce qui ne va pas??
 
Solution
Bonjour @vgendron, le forum,

avec le chemin complet (par exemple C:\PQ\PQ.csv) dans une cellule nommée "Table1".

PowerQuery:
= Table.PromoteHeaders(Csv.Document(File.Contents(Table.FirstValue(Excel.CurrentWorkbook(){[Name="Table1"]}[Content])),[Delimiter=",", Columns=15, Encoding=1252]))

Bonne journée
ha et.. evidemment j'ai essayé en remettant le File.Contents

VB:
 Chemin =Excel.CurrentWorkbook(){[Name="CheminCSV"]}[Content]{0}[Column1],
    Fichier=Excel.CurrentWorkbook(){[Name="FichierCSV"]}[Content]{0}[Column1],
    Source = Csv.Document(File.Contents(Chemin&Fichier),[Delimiter=";", Columns=15, Encoding=1252, QuoteStyle=QuoteStyle.None]),

je reviens à une erreur d'adresse absolue...
 
Bonjour @vgendron, le forum,

avec le chemin complet (par exemple C:\PQ\PQ.csv) dans une cellule nommée "Table1".

PowerQuery:
= Table.PromoteHeaders(Csv.Document(File.Contents(Table.FirstValue(Excel.CurrentWorkbook(){[Name="Table1"]}[Content])),[Delimiter=",", Columns=15, Encoding=1252]))

Bonne journée
 
bon bah voila.. suffit que je supprime la partie "table.promoteheaders"

et je me retrouve donc avec cette instruction
VB:
source=Csv.Document(File.Contents(Table.FirstValue(Excel.CurrentWorkbook(){[Name="Table1"]}[Content])),[Delimiter=",", Columns=15, Encoding=1252]))

qui me donne le résultat escompté

merci @alexga78
 
- 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

  • Question Question
Power Query Power Query
Réponses
26
Affichages
413
Réponses
2
Affichages
588
Retour