TCD plusieurs onglets

Bonjour à tous,

Chaque jour, j'intègre dans mon fichier les remontées d'alarmes de mes magasins.

1 onglet par jour avec pour chacun d'eux une colonne magasin, une colonne alarme et une date. (Pour certaines raisons, je ne peux pas compiler ces données sous un même onglet).

Je souhaite faire un TCD "RECAP" afin de visualiser sur la durée les magasins qui me remontent le plus souvent des alarmes.

Je reussi a faire une mise en forme correcte pour une journée (1onglet), mais quand j'ajoute les données des autres onglets c'est la cata !

Je vous joint un fichier exemple, avec mon essaie TCD ... et une mise en forme souhaitée

Est ce que vous avez idée de comment je devrais procéder ?

merci par avance

Bonjour,

Un début de réponse à étudier.

Cdlt.

Bonjour Jean-Eric,

Je te remercie pour ton retour.

Ça correspond a ce que je recherche. Je trouve l'idée bonne de consolider toutes les données des différents onglets dans un même tableau pour après ensuite faire le TCD. Comment a tu as fais ? faut il utiliser des macros ? A ton avis, cela posera t-il un problème si tous les jours je crée un nouvel onglet ?

Merci beaucoup

Re,

Tu as 2 procédures VBA.

Pour les visualiser : ALT F11 et voir Module1.

Pour résumer, on boucle sut toutes les feuilles du classeur (sauf la feuille RCAP) et on colle les données journalières dans un tableau unique. L'ajout d'une nouvelle feuille (sur le modèle des autres) sera donc pris en compte.

On pourrait (pour optimiser) se limiter aux nouvelles dates pour la mise à jour.

Et travailler avec de vraies dates pour le TCD (et ainsi pouvoir regrouper celles ci par mois, trimestres, etc...)

A te relire.

Nota : Les données sont toutes mises sous forme de tableau !...

Public Sub Consolidate_data()
Dim ws As Worksheet, wsData As Worksheet
Dim loData As ListObject
Dim rCell As Range
Dim n As Long

    Application.ScreenUpdating = False

    Set wsData = Worksheets("RECAP")
    Set loData = wsData.ListObjects(1)

    With loData
        If Not .DataBodyRange Is Nothing Then .DataBodyRange.Delete
        Set rCell = .InsertRowRange.Cells(2)
    End With

    For Each ws In ActiveWorkbook.Worksheets
        If ws.Name <> wsData.Name Then
            n = ws.ListObjects(1).ListRows.Count
            ws.ListObjects(1).DataBodyRange.Copy Destination:=rCell
            rCell.Offset(, -1).Resize(n) = ws.Name
            Set rCell = loData.HeaderRowRange.Cells(2).Offset(loData.ListRows.Count + 1)
        End If
    Next

    wsData.PivotTables(1).PivotCache.Refresh

End Sub
Rechercher des sujets similaires à "tcd onglets"