Bonjour,
La partie Power query :
1 - préambule :
Power query ne permet pas de mettre à jour un tableau avec uniquement des données nouvelles de la source de départ.
2 - objectif : rajouter au tableau T_Factures de la feuille "Résumé des factures", les données des nouveaux fichiers factures du dossier source.
3 - moyen :
3.1 - créer une requête "FacturesDossiers" qui liste les fichiers factures du dossier source et transforme en ligne de résumé grâce à la fonction "fnRécupérationDonnées". Les lignes de résumé sont chargées dans un tableau nommé automatiquement "FacturesDossier".
3.2 - les données de ce tableau sont transférées dans le tableau "T_Factures" de l feuille "Résumé"
4 - problématique :
En règle générale dans ce genre de situation, dans la requête qui liste les fichiers, sont exclus les lignes des fichiers déjà traités dans le tableau de destination finale (pour vous, T_Factures) pour ne pas créer de doublons avec les fichiers du dossier déjà traités. Pour cela il faut comparer soit les noms de fichiers qui auraient été gardés avec les résumés dans "T_Factures". Soit ouvrir tous les fichiers et comparer les contenus avec les résumés existants.
La demande ne spécifiait pas la conservation du nom de fichier d'origine.
C'est pour cette raison que je vous conseillais de mettre au moins le n° de facture dans le nom du fichier. Mais comme vous m'avait dit que vous ne conserviez pas les fichiers, inutile d'exclure les lignes qui comporteraient d'anciens fichiers. Tous les fichiers facture du dossier sont sensés être nouveaux et donc ne pas avoir été traités par la requête.
Bien entendu on peut changer ce comportement. Si vous voulez conserver les anciens fichiers traités, dites le moi. en précisant si vous mettrez ou non le numéro de facture dans leur nom (requête plus rapide)
5 - la requête "RécupérationDonnéesExemple" :
Je devrais plutôt l'appeler "RécupérationDonnéesBrouillon" car c'est un brouillon de travaille que je transforme fonction (préfixée 'fn') qui devra être appelé sur les lignes de la requête "FacturesDossier" à l'étape "Datas".
Affichez "fnRécupérationDonnées" dans l'éditeur avancé et ensuite "RécupérationDonnéesExemple" pour voir les petites différences. Ce qui varie ce sont surtout les 2 ou 3 premières lignes, l'appel ne se faisant pas de la même manière.
Si il y a un problème avec la fonction, il est plus facile de corriger une requête normale puis de modifier, quand tout est ok, la fonction correspondante.
La partie VBA :
Ce code se contente de copier les données du tableau issus de la requête pour les coller en nouvelle position de votre tableau "T_Factures".
Il me semblait avoir suffisamment commenté les lignes de codes. Et je ne sais pas quoi vous dire de plus. C'est un langage, il faut l'apprendre, mais là n'est pas le but du forum, même si on peut essayer d'être un peu didactique.
Si vous avez des questions précises sur le code, une ligne, un mot clef, posez votre question.
P.S. lorsque vous publiez un code dans vos posts, utilisez le bouton </> de la barre de menu de l'éditeur de post. Sinon c'est quasi imbuvable à la lecture.