Traitement de données de plusieurs fichiers Excel dans un répertoire

Bonjour,

Je vous explique mon objectif.

J'ai un export automatique et quotidien au format Excel qui représente l'état d'un stock pour plusieurs articles. Tous ces fichiers sont ajoutés chaque jour dans un même répertoire. Tous les fichiers ont un nom avec préfixe suivi de la date et de l'heure de l'export, à savoir "SG74-2020-07-30-02-45-10.xlsx".

A partir de tous ces fichiers, je souhaite réaliser un graphique qui représente l'évolution de stock pour chaque article au fil du temps. A savoir que le stock net est l'addition des colonnes H (stock neuf net) et M (stock remodel net).

Pour l'exemple ici je n'ai mis que 5 fichiers mais en réalité j'ai un fichier par jour depuis 3 mois.

J'ai essayé d'avancer avec Power Query, j'ai réussi à créer un tableau avec toutes les entrées de tous les fichiers. J'ai ensuite créer une colonne supplémentaire qui fait la somme de H et M. J'ai aussi pu extraire la date de chaque fichier avec Power Query. Mais maintenant je bloque sur la transposition des dates et des valeurs du stock pour chaque référence à chaque date correspondante.

Je vous joins les fichiers source du dossier et le fichier Excel où je bloque.

Je vous remercie pour votre aide.

15analysesg74bis.xlsx (56.13 Ko)

Bonjour,

tu peux utiliser cet outil https://www.excel-pratique.com/fr/telechargements/utilitaires/dispatcher-compiler-excel-no466 pour la partie compilation et réaliser ensuite TCD et graphes

Option Explicit

Sub collecter()
Dim wbk1 As Workbook, wbk2 As Workbook, ws1 As Worksheet
Dim MonRepertoire, Repertoire As FileDialog, monFichier$, derL%

    Set Repertoire = Application.FileDialog(msoFileDialogFolderPicker)
    Application.FileDialog(msoFileDialogFolderPicker).Title = "Choix du répertoire de stockage des fichiers générés"
    Repertoire.Show
    If Repertoire.SelectedItems.Count = 0 Then Exit Sub
    MonRepertoire = Repertoire.SelectedItems(1) & "\"

    Set wbk1 = ThisWorkbook
    Set ws1 = wbk1.ActiveSheet
    Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Offset(1, 0).ClearContents
    monFichier = Dir(MonRepertoire & "*.xlsx")

    Do While monFichier <> ""
        ws1.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Select
        derL = ws1.Cells(Rows.Count, 1).End(xlUp).Row + 1
        Set wbk2 = Workbooks.Open(MonRepertoire & monFichier)
        wbk2.ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(-2, 0).CurrentRegion.Cells.Copy
        ws1.Paste
        Application.DisplayAlerts = False
            wbk2.Close False
        Application.DisplayAlerts = True
        Rows(derL).Delete Shift:=xlUp
        Rows(derL).Delete Shift:=xlUp
        monFichier = Dir
    Loop

    Cells(Rows.Count, 1).End(xlUp).CurrentRegion.Cells(1, 1).Select

End Sub
7compiler.xlsm (20.47 Ko)

Bonjour,

Une proposition !?

Grouper par Référence et date et effectuer la somme du stock.

Tu modifieras les chemins d'accès. Vois Feuil2.

Le résultat (exemple) est sous forme de TCD (tableau croisé dynamique).

Cdlt.

Bonjour à tous

J'ai corrigé les requêtes (il y avait un problème sur l'en-tête et sur le pied de fichier)

Il n'est pas utile de récupérer le résultat dans un onglet car l'analyse peut directement être faite pat TCD/GCD mais je l'ai laissé.
Chemin à adapter avant d'actualiser

plus de 230 références sur plus de 60 dates nécessite de cibler sinon le graphique sera illisible...

12analysesg74-2.xlsx (91.63 Ko)

Bonjour Jean-Eric et Chris

Vous travaillez en parfait binôme ! https://forum.excel-pratique.com/excel/remplacer-power-query-par-une-formule-144884#p890575

Bonjour Jean-Eric et Chris

Vous travaillez en parfait binôme ! https://forum.excel-pratique.com/excel/remplacer-power-query-par-une-formule-144884#p890575

Arf j'avais même pas vu que Jean-Eric avait encore tiré plus vite que mon ombre

Bonjour à tous,

Merci pour vos différentes solutions et votre travail d'équipe 78chris et Jean-Eric.

C'est pil poil ce qu'il me fallait :)

Bonne continuation

Rechercher des sujets similaires à "traitement donnees fichiers repertoire"