Power Query Changer Requete POWER QUERY VBA

bibbip35

XLDnaute Occasionnel
Bonjour à tous

Je vous explique mon problème . Je suis en train de construire un fichier de suivi Chiffre d'affaires sur 12 mois ( 1 onglet par mois )
Intégrant la notion de CA Facturé , de CA provisionnel grace à des exports de mon ERP ( Requete ODBC )

Aurjourd'hui , j'ai construit 3 types de requete qui se mette a jour selon mois
1 requête CA facturée qui va cherché toutes les factures CLIENT
1 requete CA mois en Cours ( CA FACTUREE + PREVISIONNEL )
1 requete CA Previsionnel qui va chercher le carnet de commande à venir

Je souhaiterais via une commande VBA changer la Requete à utiliser selon mois
Exemple pour ce mois-ci
Onglet Janvier 2019 = CA FACTUREE
Onglet Fevrier 2019 = CA FACTUREE
Onglet MARS 2019 = CA FACTUREE
Onglet Avril 2019 = CA FACTUREE
Onglet MAi 2019 = CA FACTUREE
Onglet Juin 2019 = CA FACTUREE
Onglet Juillet 2019 = CA FACTUREE
Onglet Aout 2019 = CA FACTUREE
Onglet Septembre 2019 = CA MOIS_EN_COURS
Onglet Octobre 2019 = CA PREVI
Onglet Novembre 2019 = CA PREVI
Onglet Décembre 2019 = CA PREVI

Pour le mois Prochain , que la commande VBA change les Appel de Requete
Onglet Janvier 2019 = CA FACTUREE
Onglet Fevrier 2019 = CA FACTUREE
Onglet MARS 2019 = CA FACTUREE
Onglet Avril 2019 = CA FACTUREE
Onglet MAi 2019 = CA FACTUREE
Onglet Juin 2019 = CA FACTUREE
Onglet Juillet 2019 = CA FACTUREE
Onglet Aout 2019 = CA FACTUREE
Onglet Septembre 2019 = CA FACTUREE
Onglet Octobre 2019 = CA MOIS_EN_COURS
Onglet Novembre 2019 = CA PREVI
Onglet Décembre 2019 = CA PREVI

Seul Options que j'ai trouvé est de fonctionner avec 3 onglets par mois que je masquerais ou afficherais
Option qui marche mais qui me semble lourde

Merci encore pour votre aide

Bibbip35
 

chris

XLDnaute Barbatruc
Bonjour

On peut faire cela avec quelques paramètres en principe

Mais il faudrait avoir une idée de la structure des onglets.
Ont-ils trois tableaux structurés chacun, le CA Facturé et le CA en cours étant vides pour les mois futurs ?
A préciser de même que la requête : on peut fusionner directement tous les tableaux structurés et filtrer ensuite ou compliquer avec des fusions une par une...

Par ailleurs pourquoi ne pas directement utiliser PowerQuery pour récupérer les données de la BD ?
 

bibbip35

XLDnaute Occasionnel
Bonjour

Les structure sont complétement Identique
Et les CA FACTURE et les CA en cours ne doivent pas être utilisée

Sinon , juste pour avis j'ai déja construit un Tableau de Facturation avec Formules complexes et vba qui est focntionnel
MAis qui demande un coup d’actualisation lourds
Pensez-vous Que les REQUETES POWER QUERY permettra d'optimiser le temps d'actualisation
 

chris

XLDnaute Barbatruc
RE

Ta réponse n'est pas très claire et ne répond pas à mes questions

Sans plus d'infos ou un exemple concret, on n'avancera pas...

Sur des tables de données PowerQuery est généralement plus rapide que VBA + formules mais là aussi tou dépend comment sont construites les requêtes et comment est codé la procédure...
Une mauvaise requête marche moins bien qu'un code top niveau et vice versa...
 

bibbip35

XLDnaute Occasionnel
Re

Excusez moi si ce n'est pas clair

Ce que je voulais dire c'est que les structure des tableaux dans les onglets sont identique ( TITRE tableau )
Sinon , mon objectif est d’appeler une requête différente selon la date en cours

Vous trouverez en PJ un fichier exemple des requêtes utilisé

En espérant être plus clair dans mon besoin

Merci encore pour votre aide
 

Pièces jointes

  • Test Bibbip35.xlsx
    913.2 KB · Affichages: 10

chris

XLDnaute Barbatruc
RE

Plusieurs choses :

Pour le mois en cours, tu n'a que le mois de septembre donc j'imagine que chaque mois tu récupères
  • le CA facturé des mois échus de l'année en cours (confirmer échus et l'année en cours)
  • le CA du mois en cours
Pour les prévisions, ta dernière colonne parait anachronique mais surtout ta requête ne filtre qu'Octobre et pas les mois > au mois en cours

De façon générale je ne comprends pas pourquoi afficher les mois passés puisque tu ne peux reconstituer le "mois en cours" passé sauf à garder une copie sans liaison chaque mois.

La logique serait
  • CA facturé des mois échus de l'année en cours
  • CA du mois en cours
  • CA prévisionnel des mois futurs de l'année en cours
avec un résultat qui s'actualise d'un mois à l'autre selon la date du jour
 

bibbip35

XLDnaute Occasionnel
Merci encore pour le retour

OUi je vous confirme est bien de le faire pour les mois suivants Septembre ( Je vous ai envoyé un fichier exemple car mon fichier de travail est liée a mon ERP et contient des donnée confidentiel )

Pour la logique que vous me proposer , je suis désolé mais je ne comprends pas comment procédée avec QUERY
Pourriez-vous m'envoyer un fichier qui s'actualise d'un mois à l'autre selon la date du jour
Car c'est bien ce que je cherche à réaliser !

MERCI ENCORE
 

chris

XLDnaute Barbatruc
RE

Considérant qu'on exploite souvent après la fin du mois et donc en janvier pour décembre de l'année N-1
j'ai ajouté une variable Mois qui se base sur la dernière colonne de MOIS_en_COURS (requête)
(L'onglet source est donc la référence comme mois en cours)
Les deux autres requêtes l'utilisent pour les filtres
Une requête union termine la sélection.
 

Pièces jointes

  • Bibbip35_3.xlsx
    802.1 KB · Affichages: 17

bibbip35

XLDnaute Occasionnel
Re

Merci pour ce retour

Si j'ai bien compris vous fusionner toutes les requetes en une
Par contre , je ne comprends comment créer les onglets selon date actuelle
Désolé , mais je suis en peu perdu

Onglet Janvier 2019 = CA FACTUREE
Onglet Fevrier 2019 = CA FACTUREE
Onglet MARS 2019 = CA FACTUREE
Onglet Avril 2019 = CA FACTUREE
Onglet MAi 2019 = CA FACTUREE
Onglet Juin 2019 = CA FACTUREE
Onglet Juillet 2019 = CA FACTUREE
Onglet Aout 2019 = CA FACTUREE
Onglet Septembre 2019 = CA MOIS_EN_COURS
Onglet Octobre 2019 = CA PREVI
Onglet Novembre 2019 = CA PREVI
Onglet Décembre 2019 = CA PREVI
 

chris

XLDnaute Barbatruc
re

NON

Il y a
la requête Back_UP_MOIS qui prend les mois antérieurs à celui de MOIS_en_COURS
la requête MOIS_en_COURS
la requête Back_UP_MOIS4 qui prend les mois postérieurs à celui de MOIS_en_COURS

et l'union des trois nommée Tout, dans un unique onglet que j'ai nommé Analyse Mois en cours

Comme je l'ai dit tu n'as aucun moyen de reconstituer de mois courant antérieur donc vouloir afficher autre chose dans un onglet n'a pas de sens...
C'est la dernière colonne de l'onglet facture_MOIS_en_COURS qui détermine ce qu'on analyse et restitue

As-tu bien regardé les requêtes et le résultat de l'exemple que j'ai envoyé ?
 

bibbip35

XLDnaute Occasionnel
Oui j'ai bien regardé , Mais j'avoue ne rien comprendre avec Power query
Power QUERY ne semble donc pas sur ce que je comprends ... répondre à mon besoin ...

Ou alors si je focntionne avec une requete global ; est-ce que je peux filtre selon une valeur de cellule ?
 

chris

XLDnaute Barbatruc
RE

Je t'ai proposé une logique, que tu as confirmée, j'ai fait les requêtes qui affichent bien pour Septembre, le passé, l'en-cours et les prévisions d'Octobre à Décembre...

Le mois prochain, automatiquement Septembre sera dans le passé, l'en-cours sera Octobre et les prévisions de Novembre à Décembre

je ne vois pas ce que je peux faire de plus.

J'ai l'impression que ton problème n'est pas PowerQuery mais que tu n'arrives pas à clairement analyser et poser le problème.
 

bibbip35

XLDnaute Occasionnel
Merci

Mais bon objectif est d’éclater mois par mois en fonction de la valeur de cellule qui renomme les onglets
Pour être plus clair , je souhaite fonctionner avec 12 onglets qui se mettront à jour selon mois
et qui se ré nommerons automatiquement via une macro
Sub RenameSheet()
Dim rs As Worksheet
For Each rs In Sheets
rs.Name = rs.Range("Ao1")
Next rs
End Sub
 

chris

XLDnaute Barbatruc
Re
Et bien chaque mois,
  • duplique l'onglet Analyse Mois en cours après l'actualisation
  • casse la liaison du duplicata avec la requête Tout
  • renomme l'onglet
A noter que le poids de cet historique sur 12 mois risque de rendre le classeur difficilement gérable...
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 796
Membres
101 817
dernier inscrit
carvajal