Actualiser TCD a la derniere date saisie

Myst

XLDnaute Occasionnel
Bonjour, le forum
J'aurais besoin d'aide pour la mise a jour de TCD a la dernière date saisie ,actuellement je saisie des données dans une base de donnée qui ce trouve dans la feuil1 puis j’ouvre la feuil2 qui actualise automatiquement les TCD quelle contient
code :
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
Dim oPivotTable As PivotTable
If Sh.Type = XlSheetType.xlWorksheet Then
For Each oPivotTable In Sh.PivotTables
oPivotTable.RefreshTable
Next oPivotTable
End If
End Sub

mais je suis quand même obligé de sélectionner dans le filtre de rapport la dernière date saisie précédemment
comment avoir la dernière date cocher et seulement celle la automatiquement
merci
 

Pièces jointes

  • Myst V10.xlsm
    20.5 KB · Affichages: 17
  • Myst V10.xlsm
    20.5 KB · Affichages: 23
  • Myst V10.xlsm
    20.5 KB · Affichages: 22

chris

XLDnaute Barbatruc
Re : Actualiser TCD a la derniere date saisie

Bonjour

Soit tu le recherches en VBA puis ton change le filtre toujours par VBA,
soit tu ajoutes une colonne à la source avec une formule =SI(A2=MAX(A:A);1;0) et tu ajoutes ce champ en zone de filtre du TCD positionné sur 1 et ce sera alors automatique.
 

JCGL

XLDnaute Barbatruc
Re : Actualiser TCD a la derniere date saisie

Bonjour à tous,
Salut Chris,

Peux-tu essayer dans le module de la feuille :

VB:
Option Explicit


Private Sub Worksheet_Activate()
 Dim Maxi As Date
 ActiveWorkbook.RefreshAll
    Maxi = Application.WorksheetFunction.Max(Feuil1.Columns(1))
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("date")
        .ClearAllFilters
        .EnableMultiplePageItems = False
        .CurrentPage = Maxi
    End With
End Sub

Bises à Chris
A+ à tous
 
Dernière édition:

Myst

XLDnaute Occasionnel
Re : Actualiser TCD a la derniere date saisie

Bonsoir, chris ,JCGL
Comme ma base de donnée comporte des dizaines de formule je préfère la solution de JCGL cela m'évite de tous recalculer
Le code fonctionne nickel ,c'est exactement ça
Par contre si je rajoute d'autre TCD dans la même feuil je suppose que je dois les positionner sur la même colonne et modifier le code comme ci-dessous ?

Private Sub Worksheet_Activate()
Dim Maxi As Date
ActiveWorkbook.RefreshAll
Maxi = Application.WorksheetFunction.Max(Feuil1.Columns(1))

'TCD NUMERO 1
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("date")
.ClearAllFilters
.EnableMultiplePageItems = False
.CurrentPage = Maxi
End With

'TCD NUMERO 2
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("date")
.ClearAllFilters
.EnableMultiplePageItems = False
.CurrentPage = Maxi
End With

End Sub

Merci
 

Discussions similaires

Statistiques des forums

Discussions
312 174
Messages
2 085 942
Membres
103 053
dernier inscrit
Beubax