Importation d'une partie d'un fichier .csv

Bonjour,

Dans l'onglet Calcul du fichier "base", je souhaite importer dans les colonnes de A à D les 4 premières colonnes du fichier .csv "fichier-csv". Car j'ai auparavant créer une formule dans la colonne E et je souhaite qu'elle se calcule après l'importation des données (ici CONCATENER() par exemple).

Je cherche une solution POWER QUERY (pour pouvoir reproduire cette opération avec différents fichiers .csv).

En attente de vos solutions,

11fichier-csv.csv (4.01 Ko)
13base.xlsx (14.37 Ko)

Dadams51

Bonsoir,

Un essai suivant les préconisations.

26base.xlsx (17.95 Ko)

La formule peut être intégrée à la requête.

Cordialement.

Bonjour,

Une autre proposition, identique ou presque que Zebulon2.

Cdlt.

12dadams51.xlsx (17.51 Ko)
let
    Delimiter=Character.FromNumber(167),
    Source = Csv.Document(File.Contents("C:\Users\jeane\Downloads\fichier-csv.csv"),4,Delimiter,ExtraValues.Ignore,1252),
    PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true]),
    AddedCustom = Table.AddColumn(PromotedHeaders, "Colonne5", each [Colonne1]&[Colonne4])
in
    AddedCustom

Bonjour ,

Merci mais pouvez-vous détailler les différentes étapes dans POWER QUERY, je ne connais pas bien.

Salutations,

Dadam51

Bonjour Dadams51, Bonjour Jean-Eric,

Liste des étapes pour ma version.

Onglet Données
Récupérer et transformer
A partir d’un fichier texte/CSV
Ouverture de l’explorateur
Choisir le fichier à importer
Importer
Dans la fenêtre qui s’ouvre :
Délimiteur choisir Personnalisé 
§
Transformer les données
Ouverture de la fenêtre Power Query
Onglet Accueil
Transformer
Utiliser la première ligne pour les en-têtes
Sélectionner les quatre premières colonnes
Clic droit
Supprimer les autres colonnes
Onglet Ajouter une colonne
Colonne personnalisée
Nommer la nouvelle colonne
Dans colonnes disponibles, sélectionner Colonne 1 par double clic
Insérer le signe de concaténation &
Sélectionner Colonne 4 par double clic
OK
Onglet Fichier
Fermer et charger pour charger dans une nouvelle feuille

Ou
Fermer et charger dans
Dans la fenêtre qui s’ouvre choisir Tableau et son emplacement
OK

-Pour masquer le fenêtre Requêtes et connexions cliquer sur X en haut à droite
Pour afficher à nouveau cette fenêtre, 
Onglet Données
Requêtes et connexions
Requêtes et connexions

-Pour actualiser la requête 
Onglet Données
Requêtes et connexions
Actualiser tout

Bonne lecture,

Cordialement.

@Dadams51 : https://forum.excel-pratique.com/excel/importation-de-donnees-depuis-un-fichier-csv-147321#p907213 : si ce fil ne t'intéresse plus, dis le et ferme le.

Sub Importer()
Dim donnees As Variant
    donnees = Application.GetOpenFilename("Text Files (*.csv), *.csv")
    If donnees = False Then Exit Sub
    Extraction donnees, "§"
End Sub

Sub Extraction(Fichier As Variant, Separateur As Variant)
    Dim Tableau() As String
    Dim f As Worksheet
    Dim Resultat
    Open Fichier For Input As #1
        ligne = 1
        Do While Not EOF(1)
            Line Input #1, ContenuLigne
            Tableau = Split(ContenuLigne & Separateur, Separateur)
            For j = 1 To 3
                Cells(ligne, j) = Tableau(j - 1)
            Next
            ligne = ligne + 1
        Loop
    Close #1
End Sub

Bonjour,

@Zebulon, merci, je vois comment tu fais.

En fait les fichiers présentés ne sont qu'un exemple pour illustrer ma question.
Dans l'onglet Calcul du fichier base, il faut supposer une dizaine d'autres colonnes à droite de la colonne E avec des formules dépendantes des données des colonnes A à D

15base.xlsx (17.80 Ko)

.

7fichier-csv.csv (4.01 Ko)

Et ainsi, je ne souhaite pas recréer les formules dans Power Query mais juste importer, à un endroit donné de l'onglet Calcul (les colonnes de A à D), les 4 premières colonnes du fichier .csv
Mais peut-être n'est-ce pas possible...

A vous lire,

Dadams51

Re,

Tout est expliqué dans mon post précédent, si tu ne veux pas de la dernière colonne calculée, il suffit de sauter cette étape.

Pour importer, à un endroit donné de l'onglet Calcul :

Ou

Fermer et charger dans

Dans la fenêtre qui s’ouvre choisir Tableau et son emplacement

OK

Cordialement.

version speed en VBA ici https://forum.excel-pratique.com/excel/importation-de-donnees-depuis-un-fichier-csv-147321#p908521

mais c'est très bien de pouvoir choisir entre plusieurs possibilités

Bonjour,

Une autre proposition.

Cdlt.

14base.xlsx (24.46 Ko)
let
    F=Fichier,
    Delimiter=Character.FromNumber(167),
    Source = Csv.Document(File.Contents(F),4,Delimiter,ExtraValues.Ignore,1252),
    PromotedHeaders = Table.PromoteHeaders(Source, [PromoteAllScalars=true])
in
    PromotedHeaders

Merci à tous,

Les solutions "pleuvent" en ce samedi après-midi !

Sujet résolu, je retiens la version Power Query de Zebulon2, pour la puissance de cet outil !

Cordialement,

Dadams51

Rechercher des sujets similaires à "importation partie fichier csv"