Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Power Query Ajouter des lignes à une table existante à partir d'un autre fichier

vgendron

XLDnaute Barbatruc
Bonjour

j'ai un fichier "Cumul" qui contient une table "t_Cumul" que je souhaite alimenter avec une autre table "t_NewSource" provenant d'un autre fichier
alimenter = ajouter les nouvelles lignes

j'ai donc créé une première requete pour charger la table "t_Cumul"
puis une seconde pour charger (connexion uniquement) la t_NewSource
et ensuite, "Ajouter des requetes" Note: j'ai bien pris soin de ne PAS sélectionner l'option "Ajtouer des requetes comme étant nouvelles

je selectionne la table à ajouer

dans l'apercu, j'ai bien la table finale que je souhaite MAIS
en validant par fermer et charger.. la table est créée dans une NOUVELLE table.. au lieu de mettre à jour la table initiale t_Cumul.

d'ou la question: comment faire??

Merci pour vos éclaircissements
 

Pièces jointes

  • Fichier Cumul.xlsx
    18.7 KB · Affichages: 4
  • Fichier NewSource.xlsx
    9.3 KB · Affichages: 4

chris

XLDnaute Barbatruc
Bonjour

Je te conseille de désactiver dans PQ le chargement auto des tables

Ainsi tu décideras à chaque fois de ce que tu veux afficher dans un onglet (en général le moins possible)

Cependant il est normal que la requête crée une nouvelle table.

Elle utilise la première comme source qu'elle ajoute à l'autre source.
Elle ne peut écraser une des sources : sinon c'est comme une formule circulaire.

Tu peux éventuellement transformer le résultat en table en supprimant la requête à laquelle est attaché le tableau structuré résultant, puis supprimer l'ancien tableau structuré.

Par construction une requête ne contient pas de données : c'est juste une question qui affiche la réponse dans un TS. La réponse n'a d'existence que tant que ses sources sont disponibles.
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Hello Chris..
en gros t'es en train de me dire que ce n'est pas possible?

du coup. je ne vois pas l'intérêt de choisir "ajouter requete" plutot que "ajouter requete comme nouvelle table"...?
un truc (voire plus) qui m'échappe??
note.. autant VBA je maitrise assez que PQ.. j'en suis plutot à la découverte..
 

chris

XLDnaute Barbatruc
RE

J'ai complété ma réponse.

Tu n'as sans doute jamais utilisé des bases de données (Access, SQL server, Oracle...) : comme PQ utilise la même logique c'est plus facile à utiliser pour ceux qui ont cette expérience.

Concernant dans une nouvelle requête ou pas, c'est juste un choix d'organisation des requêtes en fonction de la suite envisagée.

Un peu, comme en VBA créer ou pas une sous-routine...
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Effectivement, access (j'avais voulu faire une BDD pour la liste de mes CD.... y a une eternité...) et SQL... ne connait que le nom..

j'ai vu le complément de ta réponse.. qui me laisse;... dubitatif...
si je charge le tableau résultat dans une autre feuille (ce qui est fait actuellement dans le fichier "cumul") et que je supprime la requette associée ainsi que la table initiale..
la prochaine fois que je veux charger un nouveau fichier.. bah.. j'aurai plus rien..??..!!??
peut etre est-ce ce qui est décrit dans ce lien?
 

merinos

XLDnaute Accro
Bonjour @vgendron ,

si je simplifie: tu as une table que nous appelerons SOURCE

et tu désire ajouter a SOURCE des lignes via PQ.... impossible

Si SOURCE était le résultat d'un query, ce serait facile.

Il reste une piste : tu crées un query qui crée Sources a partir de source ET de PQ ... mais alors tu dois filtrer les lignes existantes .
Tu peux t'inspirer de ce fichier qui conserve des annotations.
 

Pièces jointes

  • PD Conserve annotations.xlsx
    17.8 KB · Affichages: 5

chris

XLDnaute Barbatruc
RE
Pas supprimer la requête directement mais d'abord délier le tableau résultat de cette requête.

La solution de ton lien et celle de merinos utilisent ce qu'on appelle le self referencing (on revient un peu à ce que j'indiquais (calcul circulaire) qu'il faut border en contrôlant les doublons
 

vgendron

XLDnaute Barbatruc
Hello merinos

c'est effectivement ca
et du coup ca me fait dire que , puisque l'ajout de lignes se fait tous les mois, via un nouveau fichier à chaque fois (sans doute un détail oublié qui fait la différence....) .. il suffit de faire une requete qui compile TOUS les fichiers mensuels, filtre les doublons, et voila;. la table finale est générée et à jour...
 

merinos

XLDnaute Accro
Il m'est arrivé de travailler avec :

- une source de vieilles données
- des données annualisées pour des périodes suivantes
- des données mensuelles y compris pourle mois en cours.

Comment faire?

- premier query sur le vieux
- second query sur les annuelles
- création d'une fonction sur fichiers mensuels et application a tous les fihciers mensuels.

puis on assemble les données OU on crée des mesures sur les differentes tables . on additionnne des mesures par la suite.


exemple Qty old + qty yearly + qty monthly.

les tables old & yearly ne contiennent pas nécésairement les même données que le query monthy.
 

job75

XLDnaute Barbatruc
Bonjour vgendron, chris, merinos,

VBA existe toujours !

Téléchargez les fichiers joints dans le même dossier et exécutez :
VB:
Sub Ajout()
Dim dest As Range
Set dest = [t_Cumul].ListObject.Range 'tableau structuré
Set dest = dest(dest.Rows.Count + Sgn(Application.CountA(dest.Rows(dest.Rows.Count))), 1)
Application.ScreenUpdating = False
With Workbooks.Open(ThisWorkbook.Path & "\Fichier NewSource.xlsx").Sheets(1)
    .Range("t_Source").Copy dest
    .Parent.Close False
End With
End Sub
C'est très classique et très simple.

A+
 

Pièces jointes

  • Fichier Cumul.xlsm
    21 KB · Affichages: 1
  • Fichier NewSource.xlsx
    9.4 KB · Affichages: 1
Dernière édition:

vgendron

XLDnaute Barbatruc
Hello @job75
oui VBA, plus "facile", pas de souci, je suis juste en train de m'amuser de plus en plus avec PQ
outil plutot ignoré alors que très puissant quand on connait toutes les possibilités
j'ai découvert PowerBi lors de mon dernier boulot pour faire des dashboards...
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…