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.
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.
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..
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...
Tu n'as sans doute jamais utilisé des bases de données (Access, SQL server...) : 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...
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?
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.
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
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...
- 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.
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
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(2))), 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
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...