Génération de fichiers a partir d'un TCD

Bonjour,

Je fais appel a votre savoir aujourd'hui afin de me faire facilement économiser 10 heure de travail par mois...

Je dois faire des comptes rendu mensuels de prestations à des clients.

Mes données brutes sont extraites d'une base de données avec un seul fichier xlsx pour plus de 150 clients et environ 1000 lignes par mois ( je précise car c'est ce qui rend fastidieuse cette tache).

Je traite les données brutes via un TCD (comme indiqué en PJ).

Ma volonté est :

Créer à partir du TCD un fichier par société (dans mon exemple 3 fichiers ( société 1; société 2 & société 3).

Le fichier devra porter le nom de la société comporter 2 onglets. Le premier le tcd de la société concerné, l'autres les données brutes.

L'idée étant d'envoyer par mail à chaque société son compte rendu mensuel sans voir les données des autres sociétés.

Je ne sais pas si cela est possible, mais je demande quand même...

Merci par avance

Bonne journée

7exemple-1.xlsx (19.31 Ko)

Bonjour,

regarde si cela te conviens :

https://www.cjoint.com/doc/17_03/GCdn3pojtmI_Exemple-1.xlsm

Je t'ai ajouté un bouton avec une macros créant un fichier par Société et l'enregistrant à l'endroit où est enregistré le fichier "mère".

Tout fonctionne chez moi, confirme moi si ça te convient et si ça fonctionne

Bonne continuation,

RemBabar

Bonjour,

Une proposition à étudier.

Cdlt.

Option Explicit

Private Sub cmdCreateBooksByCustomer_Click()
Dim sPath As String, sFilename As String
Const sFileExt As String = ".xlsx"
Dim wb As Workbook
Dim wsPT As Worksheet
Dim pt As PivotTable, pt2 As PivotTable
Dim pf As PivotField, pf2 As PivotField
Dim pi As PivotItem
Dim rCell As Range
Dim lo As ListObject

    Application.ScreenUpdating = False

    Set wb = ThisWorkbook
    sPath = wb.Path & Application.PathSeparator
    Set wsPT = wb.Worksheets("TCD Collecte")
    Set pt = wsPT.PivotTables(1)
    Set pf = pt.PivotFields("Prestation")
    Set pf2 = pt.PivotFields("Code société")

    With pt
        With .PivotCache
            .Refresh
            .MissingItemsLimit = xlMissingItemsNone
        End With
        .ClearAllFilters
    End With

    pf.CurrentPage = "Collecte"

    For Each pi In pf2.PivotItems
        pf2.CurrentPage = pi.Name
        sFilename = pi.Name
        pt.TableRange2.Copy
        Workbooks.Add.Worksheets(1).Paste
        Application.CutCopyMode = False
        With ActiveWorkbook
            With Worksheets(1)
                .Name = pi.Name
                Set pt2 = .PivotTables(1)
                Set rCell = .Cells.SpecialCells(11)
                rCell.ShowDetail = True
            End With
            With ActiveSheet
                .Name = "Données"
                Set lo = .ListObjects(1)
                With lo
                    .TableStyle = "TableStyleLight1"
                    .ShowTableStyleRowStripes = False
                End With
            End With
            pt2.ChangePivotCache ActiveWorkbook.PivotCaches.Create(xlDatabase, lo.Range)
            .SaveAs Filename:=sPath & sFilename & sFileExt, FileFormat:=51
            .Close savechanges:=False
        End With
    Next pi

End Sub

Bonjour,

Merci pour vos réponses, et je m'excuse pour cette réponse tardive...

Pour le premier fichier celui de RemBabar , j'ai un soucis qui semblerai être à cet endroit du code :

        Wb.Sheets("TCD Collecte").PivotTables("Tableau croisé dynamique2").ChangePivotCache _
            ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
            "BDD!A:G", Version:=6)

Le message est : Erreur d'exécution 5 :

Argument ou appel de procédure incorrect

J'avoue être assez novice et ne pas comprendre pourquoi le plantage se situe a cet endroit...

Pour le fichier de Jean-Eric, cela fonctionne très bien.

La génération des fichiers se fait correctement. J'ai cependant oublié de demander si il était possible de copier les toutes les données concernant les société lors de la création des classeurs et non pas seulement les données de "Collecte".

Encore merci pour votre travail vous allez me faire gagné énormément de temps

Bonjour,

A tester.

Cdlt.

Merci Beaucoup

En modifiant légèrement la 1er Version, j'ai réussi à obtenir parfaitement ce que je voulais.

Encore merci pour votre aide

Bonjour,

Pense à clore le sujet.

Cdlt.

Rechercher des sujets similaires à "generation fichiers partir tcd"