Bonjour à tous,
Après 3 enregistrements ratés, je pense que ce dernier est le bon ! Je suis certain que l'on peut encore améliorer, mais cette approche devrait énormément vous aider dans les liaisons entre vos bases externes et Excel.
Objectif : connecter une requête PowerQuery à une base externe, puis, dans Excel, ajouter des colonnes stockant des valeurs et des formules, pour finalement conserver la correspondance de ces données lors de l'actualisation.
Cela permet de compléter une base de données existantes en stockant les données qui vous sont propres en local sur votre fichier. Puis, au final, à proposer une solution quasiment clef en main au service IT pour améliorer vos bases de données et intégrer vos changements.
Ces trois vidéos font suite à plusieurs autres posts (idée originelle en Anglais, puis en Français, ici, ici et là) et résolvent le problème de l'ajout de nouvelles colonnes tout en conservant les formules.
[Edit] : suite au commentaire de Stefano, il faut aussi au préalable gérer cette option : Ouvrir PowerQuery (ALT+F12), puis dans Fichier, Options, Options de requêtes, Confidentialité, cocher Toujours ignorer…
Voici les fichiers utilisés
Vidéo expliquant la mise en place du fichier en 3 étapes
Explication du fichier en 10 minutes
Construction intégrale en 45 minutes
En bas à droite de la vidéo, vous pouvez agrandir (recommandé), gérer un menu et la vitesse.
Ce que j'ai appris depuis la vidéo (intégré dans le modèle)
- Il existe une fonction ESTFORMULE. Ca simplifie considérablement ma formule dans les paramètres.
- Il existe une fonction en M qui renvoit automatiquement le nom des colonnes d'une table. le résultat est une liste, donc pratique :
Table.ColumnNames(Nom_Table)
tres interessant, merci
Avec plaisir, Nadine
Bonjour Gaetan,
Merci pour ce tuto sur PowerQuery. Tout fonctionne très bien sur mon fichier à part la première partie à savoir le chemin du fichier CSV dans l'onglet Parametres. Lorsque que je modifie dans la premiere étape de PowerQuery le chemin du fichier par T_CheminComplet cela m'affiche le message suivant :
Formula.Firewall : Requête « T_Contacts » (étape « Source ») référence d'autres requêtes ou étapes et ne peut donc pas accéder directement à une source de données.
Peut-être une sécurité de Windows ou d'Excel à désactiver ?
Auriez-vous une idée sur cette erreur ?
Je vous remercie.
Stéphane.
Bonjour Stefano,
Oui, il faut aller dans PowerQuery, puis dans Fichier - Options. Options de requetes, confidentialité, Toujours ignorer...
Evidemment, cela impacte les niveaux de confidentialité, donc voir les impacts en terme d'organisation interne.
Merci Gaetan, cela fonctionne maintenant.
Top !
J'ai mis à jour le post avec cette précision
Bonjour, Merci pour toutes les explications détaillés. J'ai réussi à réaliser le cas pratique avec vos données (export CSV et fonction avec les villes) mais quand je le réalise pour mon besoin cela ne fonctionne plus.. J'ai déjà un problème avec le chemin d'accès malgré "confidentialité, Toujours ignorer…", il m'indique qu'il ne trouve pas le fichier (alors que bien présent dans mon dossier et le chemin d'accès semble correcte). je pense avoir solutionné cette problématique en injectant via "Web" puisque je suis via le OneDrive de l'entreprise. Le plus gros problème et que je n'arrive pas à appliquer la fonctionnalité de lier ma source externe et interne, lors de l'ajout de colonne, fusion, ect.. je fini par me rendre compte qu'il place mes données comme bon lui semble dans mon fichier et j'ai aussi l'impossibilité de supprimer les colonnes qu'il ajoute (commentaire2), dès que j'actualise elles réapparaissent. Savez-vous d'où peut venir le problème ? mon fichier est bien plus important cela peut poser problème ? (j'ai essayé à de nombreuse reprise mais rien n'y fait). Cordialement
Bonjour Vincent,
Pour l'ordre des colonnes, ca pose effectivement des problèmes. Je n'ai pas de solution pour le moment. J'en parle dans l'une des vidéos. En principe, commentaire2 doit pouvoir être supprimé facilement en supprimant la colonne au complet. Je vous contacte par email pour voir si on peut regarder le fichier ensemble.