Power Query : Comment Récupérer la Valeur d’une Cellule

Dernière mise à jour le 05/02/2024
Temps de lecture : 4 minutes

Comment récupérer la valeur d'une cellule dans Excel et la transmettre dans Power Query ?

  1. Créer un Tableau dans la feuille de calcul et l'importer dans Power Query

    Un tableau permet d'être reconnu comme objet par Power Query

  2. Convertir la requête en valeur

    La technique s'appelle 'Drill'

  3. Associer le résultat dans une autre requête

    Mais il est nécessaire de changer les paramètres de confidentialité de Power Query

Importer un fichier csv

Prenons le cas très simple d'importer un fichier csv dans Excel en utilisant Power Query.

Importer un fichier CSV

Remplacer le nom du fichier par une variable

L'idée ici c'est de rendre dynamique l'écriture de la source Power Query, pour récupérer la valeur contenu dans une cellule Excel.

Remplacer le nom du fichier par une variable

De cette façon, nous pouvons remplacer le nom du fichier par une variable pour facilement charger l'un des fichiers présents dans le même répertoire.

Fichiers similaires dans le meme repertoire

Étape 1 : Créer un tableau avec le nom de la variable

Le seul moyen pour Power Query de "lire" le contenu d'une cellule, c'est d'intégrer cette cellule dans un tableau. Donc nous construisons un tableau avec une seule cellule contenant notre variable. Sans oublier l'entête de la colonne et de donner un nom caractéristique à notre tableau.

Integrer la variable dans un Tableau

Étape 2 : Charger le tableau dans Power Query

Ensuite, il faut charger cette donnée dans Power Query en cliquant simplement sur le menu Données > A partir de Tableau ou d'une Plage

Ouvrir Power Query à partir d'un tableau

Étape 3 : Transformer la requête en valeur

A ce stade, la requête est chargée dans Power Query.

Chargement de la requete avec une seule cellule

Mais pour pouvoir utiliser le contenu de la cellule comme variable, il faut appliquer une transformation

  1. Faîtes un clic-droit dans la cellule
  2. Choisissez l'option Drill-Down. Le terme n'a pas été traduit de l'anglais car "perçage" n'est pas terrible comme dénomination ????
Option Drill Down pour conserver le resultat de la cellule

Cette action va convertir la requête en valeur. On peut d'ailleurs voir que l'icône dans le volet des requêtes a été transformée. L'icône présente le type de données de la cellule (ici du texte).

Convertion de la cellule en valeur

Dans ce cas de figure, le nom de la variable c'est tblFichier (le nom de la requête) et son contenu c'est la valeur dans la cellule.

Étape 4 : Utiliser la variable dans la source

Maintenant, nous allons remplacer le nom du fichier dans l'étape d'importation en concaténant le chemin et la variable avec le symbole &

La concatenation de la variable et du texte du chemin renvoie une erreur

Le problème c'est qu'après validation, Power Query nous retourne une erreur assez incompréhensible Formula.Firewall : Requête .... ????

Étape 5 : Changer les paramètres de confidentialité.

En fait, pour permettre à Power Query d'interpréter le contenu de la variable, il faut lever les contrôles de confidentialité

  1. Aller sur le menu Fichier
  2. Puis Options et paramètres
  3. Enfin Options de requête
Menu pour changer les options de la requete
  1. Ensuite, il vous faut ouvrir le menu Classeur Actif > Confidentialité
  2. Puis sélectionner l'option Ignorer les niveaux de confidentialité et potentiellement améliorer les performances
Menu Confidentialite Ignorer les niveaux de confidentialite

Maintenant, en rafraîchissant votre requête, la variable est interprétée comme source de vos données

Chargement du fichier en utilisant la variable

Si vous voulez en savoir plus sur les raisons d'appliquer des niveaux de confidentialités à vos requêtes, je vous renvoie à cette vidéo d'explications présentée par Chris Webb (Senior Program Manager chez Microsoft).

Étape 6 : Changer le nom du fichier dans la feuille de calcul

Maintenant, il vous suffit de changer le nom du fichier à charger et de rafraîchir la requête (Données > Actualiser)

Changer le nom du fichier a charger dans la cellule

Instantanément, un nouveau fichier est chargé dans votre classeur ??

Chargement du nouveau fichier apres reactualisation de la requete

15 Comments

  1. alain
    28/02/2024 @ 11:09

    Bonjour,
    merci pour cette formation sur l'utilisation de "drill down" que je n'avais pas trouvé dans votre livre. Mais comment charger une requête qui dépend d'un paramètre dans des feuilles différentes selon ce paramètre?
    cordialement

    Reply

    • Frédéric LE GUEN
      05/03/2024 @ 03:19

      Bonjour, alors déjà le livre date un peu maintenant car Power Query a beaucoup évolué depuis 6 ans.
      Maintenant, pour voir problème, sans voir le contexte, impossible de vous apporter une réponse

      Reply

  2. Guillaume
    26/10/2023 @ 16:42

    Merci mille fois pour la démo, simple, claire et efficace! J'ai passé 4h avec l'aide MS sans rien comprendre et là, en 10 minutes c'était fait.

    Reply

    • Frédéric LE GUEN
      31/10/2023 @ 11:04

      Merci beaucoup pour votre commentaire 😀👍

      Reply

  3. Serge GABRIEL
    26/06/2023 @ 11:00

    Bonjour,
    J'arrive a extraire la valeur des cellules et à créer un tableau cohérent. mais je bloque sur l'exploitation. je m'explique: je souhaite épurer une base de données des éléments obsolètes (par rapport à la date de réalisation), sauf que ces données sont des intervalles de chiffres (départ et arrivée) liés à référence une référence fixe (exemple Marseille). Le problème vient du faite que les intervalles sont variable au fil des années et que le but est de s'assurer que si un intervalle a été fait plusieurs fois, que seuls le plus récent soit conservé. pouvez vous m'aider?

    Reply

  4. maelle jarlier
    24/08/2022 @ 12:54

    Bonjour Frédéric, merci pour cette démonstration !
    J'ai un problème avec mes requêtes, elles n'importent les chiffres dont j'ai besoin que s'il s'agit de valeur, s'ils sont issus d'une formule, elles m'importent "0". Une solution ?
    Merci d'avance.

    Reply

  5. Bertrand
    21/09/2021 @ 13:46

    Bonjour
    Merci pour l'information, comme Patrick, j'utilise les cellules nommées,
    car dans la mise en page de la configuration je trouve que cela fait plus propre d'avoir le libellé avec la valeur sur le côté que le mode tableau ... & pr le reste de la procédure ça ne change pas grand chose

    mais je bloquait à l'étape d'après : quand je sélectionnais le "Drill-down", il me transformait le champ au format "liste" même si avant j'avais bien converti la colonne en "texte" ...
    et c'est avec votre capture écran que j'ai vu que le menu où apparaît le "drill-down" était sur la cellule et non sur l'entête ...
    & là magie, il transforme bien la requête en texte !

    Reply

    • Frédéric LE GUEN
      21/09/2021 @ 14:18

      TOP

      Reply

  6. 2m2e
    31/08/2021 @ 18:36

    Bonjour,
    Je commence à m'autoformer sur ce sujet.
    Je n'arrive pas à reproduire votre exemple, pourtant simple.
    Les paramètres de confidentialité sont modifiés, pas d'erreur de ce coté là.

    Expression.Error : Désolé... Nous n'avons pas pu appliquer l'opérateur & aux types Text et Table.
    Détails :
    Operator=&
    Left=D:\.........\.....\Factures\
    Right=[Table]
    Pourriez-vous me guider, svp.
    Cordialement

    Reply

    • Frédéric LE GUEN
      05/09/2021 @ 10:22

      Heeeeuuuu, là je ne peux rien faire. Il faut voir le contexte du classeur

      Reply

  7. Patrick ARNAUD
    02/04/2021 @ 16:37

    Bonjour,
    moi j'utilise une cellule nommée avec le chemin et nom du fichier que je récupère comme source (ici Fic_Preco) :
    Fichier =Excel.CurrentWorkbook(){[Name="Fic_Preco"]}[Content][Column1]{0},
    Source = Excel.Workbook(File.Contents(Fichier), null, true),
    Excel1 = Source{[Name="Excel"]}[Data],

    n'est-ce pas plus simple ?

    Reply

    • Frédéric LE GUEN
      03/04/2021 @ 10:56

      Oui, c'est une très bonne idée aussi comme cela. Il reste à adapter le code car tel quel, il ne fonctionne pas. Mais l'article illustre surtout le problème lié à la sécurité des données et le moyen de contourner le problème.

      Reply

      • Fabien
        01/04/2022 @ 17:47

        Bonjour,
        Merci beaucoup.
        Petite question : Personnellement je souhaiterais demander à l'utilisateur le fichier qu'il souhaite charger sans renseigner la cellule dans un tableau car le fichier peut changer de nom à chaque instant.
        Je crois qu'il faut mettre un bout de code avant le Let mais j'avoue ne pas trouver la solution.
        POurriez-vous m'aider ?

      • Frédéric LE GUEN
        02/04/2022 @ 08:59

        Impossible de vous répondre sans voir le projet. Tellement de situation impact un projet Power Query que je ne peux y répondre ici

  8. Etoto
    25/03/2021 @ 08:47

    Merci beaucoup, cela va me faire gagner beaucoup de temps et de place.

    Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.

Microsoft MVP 2024

Newsletter

1 fois par mois :
Astuces et quiz

    Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

    Power Query : Comment Récupérer la Valeur d’une Cellule

    Reading time: 4 minutes
    Dernière mise à jour le 05/02/2024

    Comment récupérer la valeur d'une cellule dans Excel et la transmettre dans Power Query ?

    1. Créer un Tableau dans la feuille de calcul et l'importer dans Power Query

      Un tableau permet d'être reconnu comme objet par Power Query

    2. Convertir la requête en valeur

      La technique s'appelle 'Drill'

    3. Associer le résultat dans une autre requête

      Mais il est nécessaire de changer les paramètres de confidentialité de Power Query

    Importer un fichier csv

    Prenons le cas très simple d'importer un fichier csv dans Excel en utilisant Power Query.

    Importer un fichier CSV

    Remplacer le nom du fichier par une variable

    L'idée ici c'est de rendre dynamique l'écriture de la source Power Query, pour récupérer la valeur contenu dans une cellule Excel.

    Remplacer le nom du fichier par une variable

    De cette façon, nous pouvons remplacer le nom du fichier par une variable pour facilement charger l'un des fichiers présents dans le même répertoire.

    Fichiers similaires dans le meme repertoire

    Étape 1 : Créer un tableau avec le nom de la variable

    Le seul moyen pour Power Query de "lire" le contenu d'une cellule, c'est d'intégrer cette cellule dans un tableau. Donc nous construisons un tableau avec une seule cellule contenant notre variable. Sans oublier l'entête de la colonne et de donner un nom caractéristique à notre tableau.

    Integrer la variable dans un Tableau

    Étape 2 : Charger le tableau dans Power Query

    Ensuite, il faut charger cette donnée dans Power Query en cliquant simplement sur le menu Données > A partir de Tableau ou d'une Plage

    Ouvrir Power Query à partir d'un tableau

    Étape 3 : Transformer la requête en valeur

    A ce stade, la requête est chargée dans Power Query.

    Chargement de la requete avec une seule cellule

    Mais pour pouvoir utiliser le contenu de la cellule comme variable, il faut appliquer une transformation

    1. Faîtes un clic-droit dans la cellule
    2. Choisissez l'option Drill-Down. Le terme n'a pas été traduit de l'anglais car "perçage" n'est pas terrible comme dénomination ????
    Option Drill Down pour conserver le resultat de la cellule

    Cette action va convertir la requête en valeur. On peut d'ailleurs voir que l'icône dans le volet des requêtes a été transformée. L'icône présente le type de données de la cellule (ici du texte).

    Convertion de la cellule en valeur

    Dans ce cas de figure, le nom de la variable c'est tblFichier (le nom de la requête) et son contenu c'est la valeur dans la cellule.

    Étape 4 : Utiliser la variable dans la source

    Maintenant, nous allons remplacer le nom du fichier dans l'étape d'importation en concaténant le chemin et la variable avec le symbole &

    La concatenation de la variable et du texte du chemin renvoie une erreur

    Le problème c'est qu'après validation, Power Query nous retourne une erreur assez incompréhensible Formula.Firewall : Requête .... ????

    Étape 5 : Changer les paramètres de confidentialité.

    En fait, pour permettre à Power Query d'interpréter le contenu de la variable, il faut lever les contrôles de confidentialité

    1. Aller sur le menu Fichier
    2. Puis Options et paramètres
    3. Enfin Options de requête
    Menu pour changer les options de la requete
    1. Ensuite, il vous faut ouvrir le menu Classeur Actif > Confidentialité
    2. Puis sélectionner l'option Ignorer les niveaux de confidentialité et potentiellement améliorer les performances
    Menu Confidentialite Ignorer les niveaux de confidentialite

    Maintenant, en rafraîchissant votre requête, la variable est interprétée comme source de vos données

    Chargement du fichier en utilisant la variable

    Si vous voulez en savoir plus sur les raisons d'appliquer des niveaux de confidentialités à vos requêtes, je vous renvoie à cette vidéo d'explications présentée par Chris Webb (Senior Program Manager chez Microsoft).

    Étape 6 : Changer le nom du fichier dans la feuille de calcul

    Maintenant, il vous suffit de changer le nom du fichier à charger et de rafraîchir la requête (Données > Actualiser)

    Changer le nom du fichier a charger dans la cellule

    Instantanément, un nouveau fichier est chargé dans votre classeur ??

    Chargement du nouveau fichier apres reactualisation de la requete

    Newsletter

    1 fois par mois :
    Astuces et quiz

      Nous ne vous enverrons pas de spam. Vous pouvez vous désabonner à tout moment.

      15 Comments

      1. alain
        28/02/2024 @ 11:09

        Bonjour,
        merci pour cette formation sur l'utilisation de "drill down" que je n'avais pas trouvé dans votre livre. Mais comment charger une requête qui dépend d'un paramètre dans des feuilles différentes selon ce paramètre?
        cordialement

        Reply

        • Frédéric LE GUEN
          05/03/2024 @ 03:19

          Bonjour, alors déjà le livre date un peu maintenant car Power Query a beaucoup évolué depuis 6 ans.
          Maintenant, pour voir problème, sans voir le contexte, impossible de vous apporter une réponse

          Reply

      2. Guillaume
        26/10/2023 @ 16:42

        Merci mille fois pour la démo, simple, claire et efficace! J'ai passé 4h avec l'aide MS sans rien comprendre et là, en 10 minutes c'était fait.

        Reply

        • Frédéric LE GUEN
          31/10/2023 @ 11:04

          Merci beaucoup pour votre commentaire 😀👍

          Reply

      3. Serge GABRIEL
        26/06/2023 @ 11:00

        Bonjour,
        J'arrive a extraire la valeur des cellules et à créer un tableau cohérent. mais je bloque sur l'exploitation. je m'explique: je souhaite épurer une base de données des éléments obsolètes (par rapport à la date de réalisation), sauf que ces données sont des intervalles de chiffres (départ et arrivée) liés à référence une référence fixe (exemple Marseille). Le problème vient du faite que les intervalles sont variable au fil des années et que le but est de s'assurer que si un intervalle a été fait plusieurs fois, que seuls le plus récent soit conservé. pouvez vous m'aider?

        Reply

      4. maelle jarlier
        24/08/2022 @ 12:54

        Bonjour Frédéric, merci pour cette démonstration !
        J'ai un problème avec mes requêtes, elles n'importent les chiffres dont j'ai besoin que s'il s'agit de valeur, s'ils sont issus d'une formule, elles m'importent "0". Une solution ?
        Merci d'avance.

        Reply

      5. Bertrand
        21/09/2021 @ 13:46

        Bonjour
        Merci pour l'information, comme Patrick, j'utilise les cellules nommées,
        car dans la mise en page de la configuration je trouve que cela fait plus propre d'avoir le libellé avec la valeur sur le côté que le mode tableau ... & pr le reste de la procédure ça ne change pas grand chose

        mais je bloquait à l'étape d'après : quand je sélectionnais le "Drill-down", il me transformait le champ au format "liste" même si avant j'avais bien converti la colonne en "texte" ...
        et c'est avec votre capture écran que j'ai vu que le menu où apparaît le "drill-down" était sur la cellule et non sur l'entête ...
        & là magie, il transforme bien la requête en texte !

        Reply

        • Frédéric LE GUEN
          21/09/2021 @ 14:18

          TOP

          Reply

      6. 2m2e
        31/08/2021 @ 18:36

        Bonjour,
        Je commence à m'autoformer sur ce sujet.
        Je n'arrive pas à reproduire votre exemple, pourtant simple.
        Les paramètres de confidentialité sont modifiés, pas d'erreur de ce coté là.

        Expression.Error : Désolé... Nous n'avons pas pu appliquer l'opérateur & aux types Text et Table.
        Détails :
        Operator=&
        Left=D:\.........\.....\Factures\
        Right=[Table]
        Pourriez-vous me guider, svp.
        Cordialement

        Reply

        • Frédéric LE GUEN
          05/09/2021 @ 10:22

          Heeeeuuuu, là je ne peux rien faire. Il faut voir le contexte du classeur

          Reply

      7. Patrick ARNAUD
        02/04/2021 @ 16:37

        Bonjour,
        moi j'utilise une cellule nommée avec le chemin et nom du fichier que je récupère comme source (ici Fic_Preco) :
        Fichier =Excel.CurrentWorkbook(){[Name="Fic_Preco"]}[Content][Column1]{0},
        Source = Excel.Workbook(File.Contents(Fichier), null, true),
        Excel1 = Source{[Name="Excel"]}[Data],

        n'est-ce pas plus simple ?

        Reply

        • Frédéric LE GUEN
          03/04/2021 @ 10:56

          Oui, c'est une très bonne idée aussi comme cela. Il reste à adapter le code car tel quel, il ne fonctionne pas. Mais l'article illustre surtout le problème lié à la sécurité des données et le moyen de contourner le problème.

          Reply

          • Fabien
            01/04/2022 @ 17:47

            Bonjour,
            Merci beaucoup.
            Petite question : Personnellement je souhaiterais demander à l'utilisateur le fichier qu'il souhaite charger sans renseigner la cellule dans un tableau car le fichier peut changer de nom à chaque instant.
            Je crois qu'il faut mettre un bout de code avant le Let mais j'avoue ne pas trouver la solution.
            POurriez-vous m'aider ?

          • Frédéric LE GUEN
            02/04/2022 @ 08:59

            Impossible de vous répondre sans voir le projet. Tellement de situation impact un projet Power Query que je ne peux y répondre ici

      8. Etoto
        25/03/2021 @ 08:47

        Merci beaucoup, cela va me faire gagner beaucoup de temps et de place.

        Reply

      Laisser un commentaire

      Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

      Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.