Bonjour,

J'ai crée un petit programme pour afficher un tableau en TCD.
Voici ce programme :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
Sub client()
 
 
Rows("1:3").Select ' selection des 3 premières lignes
Selection.Delete Shift:=xlUp 'suppression de ces 3 premières lignes
 
'supprimer la colonne A
Columns("A:A").Delete Shift:=xlToLeft
 
'suppression de la derniere colonne
With Range("A1").CurrentRegion.Columns(Range("A1").CurrentRegion.Columns.Count)
.Select
.Delete
 End With
 
Range("A1").Value = "code client"
Range("B1").Value = "nom client"
Range("C1").Value = "identifiant colis"
 
 
 
'création du TCD
 
Dim lastrow As Long
Dim dercol As Long
lastrow = Range("A1").End(xlDown).Row 'derniere ligne non vide du tableau
dercol = Range("A1").End(xlToRight).Column 'derniere colonne non vide du tableau
 
Range("A1").Select
 
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'PJ Trafic par client'!R1C1:R" & lastrow & "C" & dercol).CreatePivotTable TableDestination:="", _
 TableName:="Tableau croisé dynamique2", DefaultVersion:=xlPivotTableVersion10
 
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1) ' le curseur se place sur la cellule "A1"
ActiveSheet.Cells(3, 1).Select 'selection de la cellule "A1"
 
ActiveSheet.PivotTables("Tableau croisé dynamique2").RowGrand = False ' supprimer le total des lignes du TCD
 
 
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "code client")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "nom client")
        .Orientation = xlColumnField
        .Position = 1
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("nom client"). _
        Subtotals = Array(False, False, False, False, False, False, False, False, False, False, _
        False, False)
 
End Sub
j'aimerais compléter ce programme en y rajoutant des lignes d'enregistrements :
mon tableau comportent des dates qui font référencent a un nombre de colis flashés par jour.
Actuellement je complete mon TCD manuellement en rajouter une par une les date (6 jours)dans la rubrique "déposer données ici".
Puis je selectionne le champ "somme" dans la rubrique "parametre de champ".
Vous trouvez ci dessous ce que cela donne en vba lorsque j'enregistre cette tache.
Est il possible d'automiser cette tache.
Attention, ce sont jamais les mêmes dates


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("20/02/2012"), _
        "Nombre de 20/02/2012", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("21/02/2012"), _
        "Nombre de 21/02/2012", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("22/02/2012"), _
        "Nombre de 22/02/2012", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("23/02/2012"), _
        "Nombre de 23/02/2012", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("24/02/2012"), _
        "Nombre de 24/02/2012", xlCount
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("25/02/2012"), _
        "Nombre de 25/02/2012", xlCount
    Range("A4").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de 20/02/2012").Function = xlSum
    Range("A5").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de 21/02/2012").Function = xlSum
    Range("A6").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de 22/02/2012").Function = xlSum
    Range("A7").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de 23/02/2012").Function = xlSum
    Range("A8").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de 24/02/2012").Function = xlSum
    Range("A9").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de 25/02/2012").Function = xlSum
En resumé est il possible d'automatiser cette tache qui permettrait de


Données Total
Somme de 20/02/2012 128164
Somme de 21/02/2012 134610
Somme de 22/02/2012 98582
Somme de 23/02/2012 112240
Somme de 24/02/2012 105024
Somme de 25/02/2012 8198