Bonjour,
merci pour votre réponse.
Voici un exemple de mon fichier ou il faut s'imaginer que la liste des numéros (Colonne N°) est très longue
j'ai trouvé un bout de code qui fonctionne parfaitement avec le fichier test :
Private Sub Worksheet_Activate()
' Déclaration des variables
Dim rCell As Range
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim x As String
' Optimisation procédure (gel affichage)
Application.ScreenUpdating = False
'------------------------------------------------------
' Initialisation des variables
Set pt = Me.PivotTables("Tableau croisé dynamique2")
Set pf = pt.PivotFields("N°")
'------------------------------------------------------
' Calcul manuel
pt.ManualUpdate = True
' Eléments uniques conservés
pt.PivotCache.MissingItemsLimit = xlMissingItemsDefault
' Acualisation TCD
pt.RefreshTable
'------------------------------------------------------
' Suppression filtres existants
pf.ClearAllFilters
'------------------------------------------------------
' Filtre sur dates de la plage s.range (E3:I3)
For Each pi In pf.PivotItems
x = CStr(pi.Name)
Set rCell = [s.range].Find _
(what:=x, _
LookIn:=xlValues, _
lookat:=xlWhole)
On Error Resume Next
If rCell Is Nothing Then pi.Visible = False
On Error GoTo 0
Next pi
'------------------------------------------------------
Application.ScreenUpdating = True
With pt
' Tri
.PivotFields("N°").AutoSort _
Order:=xlAscending, _
field:="N°"
' Calcul
.ManualUpdate = False
End With
'------------------------------------------------------
' RAZ variables
Set rCell = Nothing
Set pf = Nothing: Set pt = Nothing
End Sub
Par contre dans mon fichier original qui est un cube OLAP, je rencontre une erreur :
Qui vient de cette ligne :
pt.PivotCache.MissingItemsLimit = xlMissingItemsDefault
Après quelques recherches, je pense que
MissingitemsLimit
n'est pas compatible avec les cubes OLAP
Avez-vous une idée pour contourner cette erreur ?
Merci d'avance,
Gilles