Accueil – Le CFO masqué › Forums › Power Query › Exécuter une requête selon une condition
Mots-clés : if sur plusieurs lignes
- This topic has 5 réponses, 2 participants, and was last updated il y a 3 years et 9 months by synetiax.
-
AuteurArticles
-
9 février 2021 à 8 h 58 min #86789synetiaxParticipant
Bonjour!
Je récupère un chemin complet fourni par l’utilisateur dans une plage nommée d’Excel ainsi que le mois qui est dans une autre plage nommée.
J’ai une requête A et une requête B.
Je voudrais exécuter la requête A lorsque le mois n’est pas décembre et la requête B lorsque le mois est décembre.
Je me doute que ça peut pas marcher comme ça mais je mets ce code qui serait dans l’éditeur avancé pour vous montrer ce que je cherche à atteindre (mes données sont confidentielles alors je ne peux pas vous les envoyer).
Le but est de changé la source et les traitements à effectuer en fonction du mois donné.
————————————————————————————————
let
if Excel.CurrentWorkbook(){[Name=”PN_Mois”]}[Content]{0}[Column1] <> “Décembre” then
‘traitement requête A
else
‘traitement requête B
end if
in
‘traitement9 février 2021 à 12 h 06 min #86794Kim LeblancParticipantBonjour,
Si le but est d’Actualiser une requête ou une autre selon le mois sélectionné, vous pourriez le faire en VBA en utilisant
ActiveWorkbook.Connections(“Requête – Données”).Refresh
Notez que vous devez désactiver l’option “Activer l’actualisation en arrière plan” dans les propriétés de la requête.
Vous devez également inscrire “Requête – ” devant le nom de votre requête. Dans mon exemple, ma requête ce nomme Données.Vous pourrez alors utiliser un if / else pour la requête à actualiser selon le mois choisi (toujours en vba).
Au plaisir,
Kim
12 février 2021 à 10 h 19 min #86943synetiaxParticipantBonjour,
J’ai créer un fichier pour mieux exprimer mon besoin.
Vous trouverez 3 fichiers dans le zip (piton de droite sur le fichier zip> Extraire tout):Les fichier “C.xlsx” et “P.xlsx” qui contiennent les données et le fichier “Test.xlsm” qui contient le bug à résoudre.
Dans le fichier “Test.xlsm” vous trouverez 4 requêtes.
Les requêtes “ReqC” et “ReqP” transforment les fichiers sources “C.xlsx” et “P.xlsx”.
La Requete1 affiche la “ReqC” ou la “ReqP” en fonction du chiffre inscrit dans la plage nommée PN_Data de l’onglet Excel “test1”.Le bug se trouve dans la requête “Requete2 dynamique” où j’essaie de tout faire dans une seule requête.
Les fichiers sources ne seront jamais disponible en même temps. Lorsque le chiffre 5 est inscrit en PN_Data, seule le fichier “C” existera. Lorsque le chiffre inscrit en PN_Data sera différent de 5, seul le fichier P.xlsx sera disponible.
Je viens juste d’avoir la formation Power Query alors c’est surement une virgule mal placée ou un truc dans le genre.
Merci pour votre aide!
Synetiax
Attachments:
You must be logged in to view attached files.12 février 2021 à 15 h 18 min #86962Kim LeblancParticipantBonjour,
Il faudrait remanier votre code de cette façon:
Inscrire toutes les étapes pour le fichier C avec la dernière étape qui s’appelle #”Resultat 1″ puis vous enchaîné avec toutes les étapes pour le fichier P avec la dernière étape qui s’appelle #”Resultat 2″ puis à la fin mettre votre conditionFinal = if chiffre = 5
then #”Resultat 1″
else #”Resultat 2″in
FinalIl vous faudra des virgules après chaque étape, même entre la dernière du fichier C et la première du fichier P.
Il vous faudra renommer vos différentes étapes puisqu’on ne peut avoir 2 étapes avec le même nom. Donc avoir un source1 pour C et Source2 pour P etc.12 février 2021 à 15 h 24 min #86964Kim LeblancParticipantVotre fichier avec les corrections (J’ai modifié la source puisque votre code pour aller chercher le répertoire et fichier ne fonctionnait pas de mon côté).
Kim
Attachments:
You must be logged in to view attached files.12 février 2021 à 21 h 55 min #86970synetiaxParticipantMerci infiniment!
-
AuteurArticles
- Vous devez être connecté pour répondre à ce sujet.