Bonjour,
j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie.
Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon tcd. Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai :
Set pt = .PivotTables("Tableau croisé dynamique3")
End With
Set pf = pt.PivotFields("CODE DU JO")
On Error Resume Next
For Each Pi In Pf.PivotItems
Set Rg = Range(selectionjournaux).Find(Pi.value)
If Not Rg Is Nothing Then Pi.Visible = True
Else
Pi.Visible = False
End With
Next
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonjour,
Je n'ai pas vraiment tout compris....
Tu dois définir dans la procédure, le nom de la feuille et ta plage variable
'-------------------------------------- Sub DeleteOldItemsWB()
Dim Pt As PivotTable Dim Pi As PivotItem Dim PlgVariable As Range, C As Range
Application.ScreenUpdating = False With Worksheets("Feuil1") Set PlgVariable = .Range("A1:A5") 'à définir Set Pt = .PivotTables("Tableau croisé dynamique3") End With For Each Pi In Pt.PivotFields("CODE DU JO").items For Each C In PlgVariable If UCase(Pi.Value) = UCase(C.Value) Then Pi.Visible = False End If Next Next Application.ScreenUpdating = True End With End Sub '-----------------------------------
"anfeus" a écrit dans le message de groupe de discussion :
Bonjour, j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie. Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon tcd. Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai : Set pt = .PivotTables("Tableau croisé dynamique3") End With Set pf = pt.PivotFields("CODE DU JO") On Error Resume Next For Each Pi In Pf.PivotItems Set Rg = Range(selectionjournaux).Find(Pi.value) If Not Rg Is Nothing Then Pi.Visible = True Else Pi.Visible = False End With Next
Bonjour,
Je n'ai pas vraiment tout compris....
Tu dois définir dans la procédure, le nom de la feuille
et ta plage variable
'--------------------------------------
Sub DeleteOldItemsWB()
Dim Pt As PivotTable
Dim Pi As PivotItem
Dim PlgVariable As Range, C As Range
Application.ScreenUpdating = False
With Worksheets("Feuil1")
Set PlgVariable = .Range("A1:A5") 'à définir
Set Pt = .PivotTables("Tableau croisé dynamique3")
End With
For Each Pi In Pt.PivotFields("CODE DU JO").items
For Each C In PlgVariable
If UCase(Pi.Value) = UCase(C.Value) Then
Pi.Visible = False
End If
Next
Next
Application.ScreenUpdating = True
End With
End Sub
'-----------------------------------
"anfeus" <anfeus@domain-xyz.in> a écrit dans le message de groupe de discussion :
kuSdnSxza7CEqRPR4p2dnAA@giganews.com...
Bonjour,
j'essaie de rendre non visible des champs de mon tcd à partir d'une plage
remplie.
Je souhaite que les données (qui correspondent à des items de mon tcd) de ma
plage variable(selectionjournaux) n'apparaissent pas dans mon tcd. Voici le bout
de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai :
Set pt = .PivotTables("Tableau croisé dynamique3")
End With
Set pf = pt.PivotFields("CODE DU JO")
On Error Resume Next
For Each Pi In Pf.PivotItems
Set Rg = Range(selectionjournaux).Find(Pi.value)
If Not Rg Is Nothing Then Pi.Visible = True
Else
Pi.Visible = False
End With
Next
Tu dois définir dans la procédure, le nom de la feuille et ta plage variable
'-------------------------------------- Sub DeleteOldItemsWB()
Dim Pt As PivotTable Dim Pi As PivotItem Dim PlgVariable As Range, C As Range
Application.ScreenUpdating = False With Worksheets("Feuil1") Set PlgVariable = .Range("A1:A5") 'à définir Set Pt = .PivotTables("Tableau croisé dynamique3") End With For Each Pi In Pt.PivotFields("CODE DU JO").items For Each C In PlgVariable If UCase(Pi.Value) = UCase(C.Value) Then Pi.Visible = False End If Next Next Application.ScreenUpdating = True End With End Sub '-----------------------------------
"anfeus" a écrit dans le message de groupe de discussion :
Bonjour, j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie. Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon tcd. Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai : Set pt = .PivotTables("Tableau croisé dynamique3") End With Set pf = pt.PivotFields("CODE DU JO") On Error Resume Next For Each Pi In Pf.PivotItems Set Rg = Range(selectionjournaux).Find(Pi.value) If Not Rg Is Nothing Then Pi.Visible = True Else Pi.Visible = False End With Next
isabelle
on peut raccourcir un peu le temps d'exécution de la macro en ne bouclant que sur les items masqués (première boucle),
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .HiddenItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 17:57, isabelle a écrit :
bonjour anfeus,
pour éviter une erreur il faut afficher tous les données du tcd avant de masquer certaines,
par exemple :
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .PivotItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 16:23, anfeus a écrit :
anfeus a écrit le 13/09/2010 à 16h24 :
Bonjour, j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie. Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon
tcd.
Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai : Set pt = .PivotTables("Tableau croisé dynamique3") End With Set pf = pt.PivotFields("CODE DU JO") On Error Resume Next For Each Pi In Pf.PivotItems Set Rg = Range(selectionjournaux).Find(Pi.value) If Not Rg Is Nothing Then Pi.Visible = True Else Pi.Visible = False End With Next
Merci pour le code mais pour le moment j'ai un blocage . Je réexplique ma requête. Sur ma feuille excel (Paramètres), j'ai une plage variable (selectionjournaux) qui correspond à une partie des champs de mon tcd. Le but est que tous les items indiqués dans ma plage variable apparaîssent en "non visible" dans mon TCD.
on peut raccourcir un peu le temps d'exécution de la macro en ne bouclant que sur les items masqués (première boucle),
Sub Filtre_TCD()
With ActiveSheet.PivotTables(1).PivotFields(1)
Dim PvIt As Object
For Each PvIt In .HiddenItems
PvIt.Visible = True
Next
For Each PvIt In .PivotItems
If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False
Next
End With
End Sub
isabelle
Le 2010-09-13 17:57, isabelle a écrit :
bonjour anfeus,
pour éviter une erreur il faut afficher tous les données du tcd avant de
masquer certaines,
par exemple :
Sub Filtre_TCD()
With ActiveSheet.PivotTables(1).PivotFields(1)
Dim PvIt As Object
For Each PvIt In .PivotItems
PvIt.Visible = True
Next
For Each PvIt In .PivotItems
If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then
PvIt.Visible = False
Next
End With
End Sub
isabelle
Le 2010-09-13 16:23, anfeus a écrit :
anfeus a écrit le 13/09/2010 à 16h24 :
Bonjour,
j'essaie de rendre non visible des champs de mon tcd à partir d'une
plage remplie.
Je souhaite que les données (qui correspondent à des items de mon
tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon
tcd.
Voici le bout de code que j'ai réalisé mais il ne marche pas.
Merci de votre aide.
1er essai :
Set pt = .PivotTables("Tableau croisé dynamique3")
End With
Set pf = pt.PivotFields("CODE DU JO")
On Error Resume Next
For Each Pi In Pf.PivotItems
Set Rg = Range(selectionjournaux).Find(Pi.value)
If Not Rg Is Nothing Then Pi.Visible = True
Else
Pi.Visible = False
End With
Next
Merci pour le code mais pour le moment j'ai un blocage . Je réexplique ma
requête.
Sur ma feuille excel (Paramètres), j'ai une plage variable
(selectionjournaux) qui correspond à une partie des champs de mon tcd.
Le but
est que tous les items indiqués dans ma plage variable apparaîssent en
"non
visible" dans mon TCD.
on peut raccourcir un peu le temps d'exécution de la macro en ne bouclant que sur les items masqués (première boucle),
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .HiddenItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 17:57, isabelle a écrit :
bonjour anfeus,
pour éviter une erreur il faut afficher tous les données du tcd avant de masquer certaines,
par exemple :
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .PivotItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 16:23, anfeus a écrit :
anfeus a écrit le 13/09/2010 à 16h24 :
Bonjour, j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie. Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon
tcd.
Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai : Set pt = .PivotTables("Tableau croisé dynamique3") End With Set pf = pt.PivotFields("CODE DU JO") On Error Resume Next For Each Pi In Pf.PivotItems Set Rg = Range(selectionjournaux).Find(Pi.value) If Not Rg Is Nothing Then Pi.Visible = True Else Pi.Visible = False End With Next
Merci pour le code mais pour le moment j'ai un blocage . Je réexplique ma requête. Sur ma feuille excel (Paramètres), j'ai une plage variable (selectionjournaux) qui correspond à une partie des champs de mon tcd. Le but est que tous les items indiqués dans ma plage variable apparaîssent en "non visible" dans mon TCD.
anfeus
isabelle a écrit le 14/09/2010 à 00h06 :
on peut raccourcir un peu le temps d'exécution de la macro en ne bouclant que sur les items masqués (première boucle),
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .HiddenItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 17:57, isabelle a écrit :
bonjour anfeus,
pour éviter une erreur il faut afficher tous les données du tcd avant de masquer certaines,
par exemple :
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .PivotItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 16:23, anfeus a écrit :
anfeus a écrit le 13/09/2010 à 16h24 :
Bonjour, j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie. Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon
tcd.
Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai : Set pt = .PivotTables("Tableau croisé dynamique3") End With Set pf = pt.PivotFields("CODE DU JO") On Error Resume Next For Each Pi In Pf.PivotItems Set Rg = Range(selectionjournaux).Find(Pi.value) If Not Rg Is Nothing Then Pi.Visible = True Else Pi.Visible = False End With Next
Merci pour le code mais pour le moment j'ai un blocage . Je réexplique ma requête. Sur ma feuille excel (Paramètres), j'ai une plage variable (selectionjournaux) qui correspond à une partie des champs de mon tcd. Le but est que tous les items indiqués dans ma plage variable apparaîssent en "non visible" dans mon TCD.
Merci pour vos contributions car elles m'ont permis de trouver mon BONHEUR. Bonne journée à vous.
isabelle a écrit le 14/09/2010 à 00h06 :
on peut raccourcir un peu le temps d'exécution de la macro en ne
bouclant que sur les items masqués (première boucle),
Sub Filtre_TCD()
With ActiveSheet.PivotTables(1).PivotFields(1)
Dim PvIt As Object
For Each PvIt In .HiddenItems
PvIt.Visible = True
Next
For Each PvIt In .PivotItems
If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then
PvIt.Visible = False
Next
End With
End Sub
isabelle
Le 2010-09-13 17:57, isabelle a écrit :
bonjour anfeus,
pour éviter une erreur il faut afficher tous les données du tcd
avant de
masquer certaines,
par exemple :
Sub Filtre_TCD()
With ActiveSheet.PivotTables(1).PivotFields(1)
Dim PvIt As Object
For Each PvIt In .PivotItems
PvIt.Visible = True
Next
For Each PvIt In .PivotItems
If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then
PvIt.Visible = False
Next
End With
End Sub
isabelle
Le 2010-09-13 16:23, anfeus a écrit :
anfeus a écrit le 13/09/2010 à 16h24 :
Bonjour,
j'essaie de rendre non visible des champs de mon tcd à partir d'une
plage remplie.
Je souhaite que les données (qui correspondent à des items de
mon
tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon
tcd.
Voici le bout de code que j'ai réalisé mais il ne marche pas.
Merci de votre aide.
1er essai :
Set pt = .PivotTables("Tableau croisé dynamique3")
End With
Set pf = pt.PivotFields("CODE DU JO")
On Error Resume Next
For Each Pi In Pf.PivotItems
Set Rg = Range(selectionjournaux).Find(Pi.value)
If Not Rg Is Nothing Then Pi.Visible = True
Else
Pi.Visible = False
End With
Next
Merci pour le code mais pour le moment j'ai un blocage . Je réexplique
ma
requête.
Sur ma feuille excel (Paramètres), j'ai une plage variable
(selectionjournaux) qui correspond à une partie des champs de mon tcd.
Le but
est que tous les items indiqués dans ma plage variable
apparaîssent en
"non
visible" dans mon TCD.
Merci pour vos contributions car elles m'ont permis de trouver mon BONHEUR. Bonne journée à vous.
on peut raccourcir un peu le temps d'exécution de la macro en ne bouclant que sur les items masqués (première boucle),
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .HiddenItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 17:57, isabelle a écrit :
bonjour anfeus,
pour éviter une erreur il faut afficher tous les données du tcd avant de masquer certaines,
par exemple :
Sub Filtre_TCD() With ActiveSheet.PivotTables(1).PivotFields(1) Dim PvIt As Object
For Each PvIt In .PivotItems PvIt.Visible = True Next
For Each PvIt In .PivotItems If Not IsError(Application.Match(PvIt.Name, [MaPlageCritère], 0)) Then PvIt.Visible = False Next
End With End Sub
isabelle
Le 2010-09-13 16:23, anfeus a écrit :
anfeus a écrit le 13/09/2010 à 16h24 :
Bonjour, j'essaie de rendre non visible des champs de mon tcd à partir d'une plage remplie. Je souhaite que les données (qui correspondent à des items de mon tcd) de ma plage variable(selectionjournaux) n'apparaissent pas dans mon
tcd.
Voici le bout de code que j'ai réalisé mais il ne marche pas. Merci de votre aide.
1er essai : Set pt = .PivotTables("Tableau croisé dynamique3") End With Set pf = pt.PivotFields("CODE DU JO") On Error Resume Next For Each Pi In Pf.PivotItems Set Rg = Range(selectionjournaux).Find(Pi.value) If Not Rg Is Nothing Then Pi.Visible = True Else Pi.Visible = False End With Next
Merci pour le code mais pour le moment j'ai un blocage . Je réexplique ma requête. Sur ma feuille excel (Paramètres), j'ai une plage variable (selectionjournaux) qui correspond à une partie des champs de mon tcd. Le but est que tous les items indiqués dans ma plage variable apparaîssent en "non visible" dans mon TCD.
Merci pour vos contributions car elles m'ont permis de trouver mon BONHEUR. Bonne journée à vous.