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