Bonjour à tous et à toutes ,
Sur un même fichier , j'ai une base de données et mon TCD que j'ai crée par le biais d'une macro intitulé "EchangesCP" (cette macro contient la variable lastrow qui definie la derniere ligne de ma base de données).

Ma base de données se trouve sur l'onglet "donnees hermes" et mon TCD se trouve sur l'onglet "feuil1".

Chaque jour, de nouvelle ligne viennent se rajouter à ma base de données.
Mon soucis c'est que je ne sais pas actualiser automatiquement (par le bais d'une macro) mon tableau.
Actuellement, pour palier à ce problème, chaque jour, j'execute ma macro ("EchangeCP") pour creer un nouveau TCD : ce qui n'est pas franchement agréable car cela m'oblige a effacer l'ancien TCD car à chaque fois que je crée un nouveau TCD, il se rajoute sur une nouvelle feuille intitulé "Feuil2" ou se trouve le nouveau TCD.

Merci de votre aide

Vous trouverez ci dessous ma macro

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
56
57
58
59
60
61
62
63
64
65
Sub EchangesCP()
 
' Macro2 Macro
' Macro enregistrée le 05/11/2008 par IDCO1
'
Application.ScreenUpdating = False 'désactive la mise à jour de l'écran
 
Dim lastrow
lastrow = Range("A2").End(xlDown).Row
 
Cells.Select
On Error Resume Next
ActiveSheet.ShowAllData
 
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "'donnees hermes'!R2C1:R" & lastrow & "C24").CreatePivotTable TableDestination:="", _
        TableName:="Tableau croisé dynamique2", DefaultVersion:= _
        xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
    ActiveSheet.Cells(3, 1).Select
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Code liaison")
        .Orientation = xlPageField
        .Position = 1
    End With
 
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Transporteur")
        .Orientation = xlPageField
        .Position = 1
    End With
 
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("ligne")
        .Orientation = xlRowField
        .Position = 1
    End With
 
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("date")
        .Orientation = xlRowField
        .Position = 2
    End With
 
    Range("B5").Select
    Selection.Group Start:=True, End:=True, Periods:=Array(False, False, False, _
        False, True, False, False)
 
    With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("quai")
        .Orientation = xlRowField
        .Position = 3
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique2").PivotFields( _
        "CP TOTAL (pleins + vides)"), "Somme de CP TOTAL (pleins + vides)", xlSum
    Columns("D:D").Select
    Selection.NumberFormat = "#,##0"
    Columns("D:D").EntireColumn.AutoFit
    Range("A4").Select
    ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields( _
        "Somme de CP TOTAL (pleins + vides)").Caption = " CP TOTAL (pleins + vides)"
    Columns("A:A").EntireColumn.AutoFit
 
Application.ScreenUpdating = True 'rétablit la mise à jour de l'écran
 
 
End Sub