Problème mise à jour date en filtre de rapport de plusieurs TCD

  • Initiateur de la discussion Initiateur de la discussion scarlisse
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

scarlisse

XLDnaute Nouveau
Bonjour à tous

Pour les besoins de la production de mon entreprise nous avons conçu plusieurs tableaux croisé dynamique à partir de données rentrées tous les jours.

Tous ces tableaux sont triés par date à l'aide d'un filtre de rapport.
J'ai environ 20 tableaux par feuille et j'aurai voulu changer la date d'un seul de mes tableaux pour que tous les tableaux de la même feuille se mettent à jour en même temps.

Je ne connait pas assez bien Visual Basic pour trouver la solution mais j'ai commencé à rentrer quelques codes que j'ai trouver dans ce forum sans jamais pouvoir faire fonctionner ceci.

Je vous laisse un fichier essai qui représente le genre de tableaux que j'ai sur le fichier d'origine.

J'espère trouver de l'aide, merci d'avance.
 

Pièces jointes

Re : Problème mise à jour date en filtre de rapport de plusieurs TCD

J'ai trouvé la solution le bon code est celui-ci :
Code:
Private Sub Worksheet_PivotTableUpdate(ByVal Target As PivotTable)
	Dim wsMain As Worksheet
	Dim ws As Worksheet
	Dim ptMain As PivotTable
	Dim pt As PivotTable
	Dim pfMain As PivotField
	Dim pf As PivotField
	Dim pi As PivotItem
	Dim bMI As Boolean
 
	On Error Resume Next
	Set wsMain = ActiveSheet
	Set ptMain = Target
 
	Application.EnableEvents = False
	Application.ScreenUpdating = False
 
	For Each pfMain In ptMain.PageFields
		bMI = pfMain.EnableMultiplePageItems
		For Each ws In ThisWorkbook.Worksheets
			For Each pt In ws.PivotTables
				If ws.Name & "_" & pt <> wsMain.Name & "_" & ptMain Then
					pt.ManualUpdate = True
					Set pf = pt.PivotFields(pfMain.Name)
					bMI = pfMain.EnableMultiplePageItems
					With pf
						.ClearAllFilters
						Select Case bMI
							Case False
								.CurrentPage = pfMain.CurrentPage.Value
							Case True
								.CurrentPage = "(All)"
								For Each pi In pfMain.PivotItems
									.PivotItems(pi.Name).Visible = pi.Visible
								Next pi
								.EnableMultiplePageItems = bMI
						End Select
					End With
					bMI = False
					Set pf = Nothing
					pt.ManualUpdate = False
				End If
			Next pt
		Next ws
	Next pfMain
 
	Application.EnableEvents = True
	Application.ScreenUpdating = True
End Sub
Il suffit juste de remplacer le nom du premier TCD de notre feuille sur la ligne 22 ("_") et le nom de la cellule sur la ligne 32 ("A11") ou le filtre choisit intervient.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
6
Affichages
159
Réponses
6
Affichages
303
Réponses
16
Affichages
846
Retour