Calcul dans TCD

Bonsoir,

j'ai une question concernant un TCD que je fais pour calculer :

par département : DITC,...

par critères : Yes, In progress, No et vide

par type d'activités : le nombre de de Yes, de No, de In progress

je joins le fichier et le TCD que j'ai déjà fait. Les calculs de Yes, No , ... ne sont pas bons

Merci pour votre aide.

Frédérique

Bonjour Frédérique,

Ton problème est très très intéressant ...

Reste à savoir si j'ai correctement compris les questions que tu te poses ...

Compte tenu de ta base de données en Feuil2, le TCD que tu as en Feuil3 ne peut te produire qu'un décompte général ...

Du coup, à partir de ta Feuil2, je t'ai reconstruit une autre base de données en Feuil4 ... qui, elle même va servir à produire en Feuil5 ... le TCD qui me semble être ... celui dont tu aurais besoin

Dis-moi ce que tu en penses ...

Bonjour,

Un début de réponse à méditer (et à finaliser).

Création de TCDs à la volée.

A te relire peut-être.

Bonne année.

Cdlt.

Option Explicit
Option Private Module
Public Sub Creer_TCDs()
Dim wb As Workbook
Dim wsS As Worksheet, wsPT As Worksheet
Dim PTCache As PivotCache
Dim pt As PivotTable
Dim ItemName As String
Dim Row As Long, Col As Long, i As Long

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    On Error Resume Next
    Sheets("Synthèse").Delete
    On Error GoTo 0

    Application.DisplayAlerts = True

    Set wb = ActiveWorkbook
    Set wsS = Worksheets("Données")
    Set wsPT = Worksheets.Add
    ActiveSheet.Name = "Synthèse"

    Set PTCache = wb.PivotCaches.Create( _
                  SourceType:=xlDatabase, _
                  SourceData:=wsS.Range("A1").CurrentRegion)

    Row = 1
    Col = 2

    For i = 1 To 5 '(5 TCDs)

        ItemName = wsS.Cells(1, Col)

        With Cells(Row, 1)
            .Value = ItemName
            .Font.Size = 14
        End With

        Set pt = ActiveSheet.PivotTables.Add( _
                 PivotCache:=PTCache, _
                 TableDestination:=wsPT.Cells(Row + 1, 1))

        With pt.PivotFields(ItemName)
            .Orientation = xlDataField
            .Name = "Fréquence"
            .Function = xlCount
        End With

        pt.PivotFields(ItemName).Orientation = xlRowField
        pt.PivotFields(ItemName).ShowAllItems = True
        pt.PivotFields("Département").Orientation = xlColumnField
        pt.TableStyle2 = "PivotStyleMedium2"
        pt.DisplayFieldCaptions = False

        Row = Cells(Rows.Count, 1).End(xlUp).Row + 2
        Col = Col + 1

    Next i

    With Range("A:A")
        .Replace "1", "no"
        .Replace "2", "yes"
        .Replace "3", "in progres"
        .Replace "4", "undocumented"
    End With

    Set pt = Nothing
    Set PTCache = Nothing
    Set wsPT = Nothing: Set wsS = Nothing
    Set wb = Nothing

End Sub
Rechercher des sujets similaires à "calcul tcd"