A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: D020BBAB-8820-488A-99BB-D08D2A2F74DF@microsoft.com...
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonsour® René
je suppose que tu parles des items qui ne se trouvent plus dans ta base de
données
plus connus sous le termes d'items "fantomes" ...
toutes les solutions là :
http://www.contextures.com/xlPivot04.html
les explications officielles là :
http://support.microsoft.com/default.aspx?scid=kb;en-us;202232
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042
Bonsour® René
je suppose que tu parles des items qui ne se trouvent plus dans ta base de
données
plus connus sous le termes d'items "fantomes" ...
toutes les solutions là :
http://www.contextures.com/xlPivot04.html
les explications officielles là :
http://support.microsoft.com/default.aspx?scid=kb;en-us;202232
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042
Bonsour® René
je suppose que tu parles des items qui ne se trouvent plus dans ta base de
données
plus connus sous le termes d'items "fantomes" ...
toutes les solutions là :
http://www.contextures.com/xlPivot04.html
les explications officielles là :
http://support.microsoft.com/default.aspx?scid=kb;en-us;202232
--
n'oubliez pas les FAQ :
http://www.excelabo.net http://dj.joss.free.fr/faq.htm
http://www.faqoe.com http://faqword.free.fr
--
Feed Back
http://viadresse.com/?94912042
../.. mais je ne veux en faire apparaître que 2 dans mon TCD.
PS :
Je n'ai pas très bien compris (dans un post précédent - ascenseur ->
César, forum)
c'est un détournement de la citation :
../.. mais je ne veux en faire apparaître que 2 dans mon TCD.
PS :
Je n'ai pas très bien compris (dans un post précédent - ascenseur ->
César, forum)
c'est un détournement de la citation :
../.. mais je ne veux en faire apparaître que 2 dans mon TCD.
PS :
Je n'ai pas très bien compris (dans un post précédent - ascenseur ->
César, forum)
c'est un détournement de la citation :
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: D020BBAB-8820-488A-99BB-D08D2A2F74DF@microsoft.com...
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: 39545D29-DD40-42BC-8265-29E6FFFE499F@microsoft.com...
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) sur
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René Delcourt
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: D020BBAB-8820-488A-99BB-D08D2A2F74DF@microsoft.com...
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: 39545D29-DD40-42BC-8265-29E6FFFE499F@microsoft.com...
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) sur
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René Delcourt
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: D020BBAB-8820-488A-99BB-D08D2A2F74DF@microsoft.com...
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: 39545D29-DD40-42BC-8265-29E6FFFE499F@microsoft.com...
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) sur
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René Delcourt
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: D020BBAB-8820-488A-99BB-D08D2A2F74DF@microsoft.com...
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
Certains usagers ont déjà énoncé sur ce forum que WorksheetFunction et Match ne faisait pas bon ménage à l'occasion.
Et si tu remplaçais WorksheetFunction.Match(....) par Application.Match(....) est-ce que cela solutionnerait ton problème ?
Salutations!
"René Delcourt" a écrit dans le message de news:
Le message d'erreur reste le même et bloque sur le Match
Voici le code que j'utilise
PS : Modeste te fait confiance (voir post)...et moi aussi
Sub test2()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("Offre", "Formation", "Présentation nouveautés", "Sujet",
"Coaching", "Présentation convention", "Signature convention", "Courtoisie",
"Gestion de sinistre")
With Feuil2 ' à déterminer
Set Pt = .PivotTables("Tableau croisé dynamique1") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("Pourquoi?") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
--
René DelcourtBonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
Certains usagers ont déjà énoncé sur ce forum que WorksheetFunction et Match ne faisait pas bon ménage à l'occasion.
Et si tu remplaçais WorksheetFunction.Match(....) par Application.Match(....) est-ce que cela solutionnerait ton problème ?
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: F7A188C0-95DC-4E65-97A0-7FFBF4A3E815@microsoft.com...
Le message d'erreur reste le même et bloque sur le Match
Voici le code que j'utilise
PS : Modeste te fait confiance (voir post)...et moi aussi
Sub test2()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("Offre", "Formation", "Présentation nouveautés", "Sujet",
"Coaching", "Présentation convention", "Signature convention", "Courtoisie",
"Gestion de sinistre")
With Feuil2 ' à déterminer
Set Pt = .PivotTables("Tableau croisé dynamique1") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("Pourquoi?") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
--
René Delcourt
Bonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: 39545D29-DD40-42BC-8265-29E6FFFE499F@microsoft.com...
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) sur
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René Delcourt
Bonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" <rdelcourt@Bluewin.ch> a écrit dans le message de news: D020BBAB-8820-488A-99BB-D08D2A2F74DF@microsoft.com...
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt
Bonjour René,
Certains usagers ont déjà énoncé sur ce forum que WorksheetFunction et Match ne faisait pas bon ménage à l'occasion.
Et si tu remplaçais WorksheetFunction.Match(....) par Application.Match(....) est-ce que cela solutionnerait ton problème ?
Salutations!
"René Delcourt" a écrit dans le message de news:
Le message d'erreur reste le même et bloque sur le Match
Voici le code que j'utilise
PS : Modeste te fait confiance (voir post)...et moi aussi
Sub test2()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("Offre", "Formation", "Présentation nouveautés", "Sujet",
"Coaching", "Présentation convention", "Signature convention", "Courtoisie",
"Gestion de sinistre")
With Feuil2 ' à déterminer
Set Pt = .PivotTables("Tableau croisé dynamique1") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("Pourquoi?") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
--
René DelcourtBonjour René,
essaie ceci : Cela devrait fonctionner !
Attention, je ne crois pas que cela s'applique à toutes les versions "excel" en particulier pour la version 97 !
'---------------------------------
Sub Test()
Dim Pt As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("DIVERS", "61.2")
With Sheets("Feuil1") ' à déterminer
Set Pt = .PivotTables("NomDuPivotField") 'à déterminer
End With
Pt.ManualUpdate = True
Set Pf = Pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In Pf.PivotItems
If IsError(WorksheetFunction.Match(Pi.Name, Arr, 0)) Then
Err = 0
Else
If Pi.Visible <> False Then
Pi.Visible = False
End If
End If
Next
Pt.ManualUpdate = False
Pt.Update
Set Pt = Nothing: Set Pf = Nothing: Set Pi = Nothing
End Sub
'---------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour Miche (ou Denis)
Tu as très bien compris la question et ton code m'a laissé beaucoup d'espoir.
Cependant, il bloque (erreur 1004 : impossible de lire la propriété Match) surA = WorksheetFunction.Match(Pi.Name, Arr, 0)
J'y a ajouté A = Application.WorksheetFunction.Match(Pi.Name, Arr, 0)
mais rien n'y fait.
Je pense que tu es sur la bonne voie...
J'espère que tu persévéreras.
A+
--
René DelcourtBonjour René,
En supposant que j'ai compris ta question :
Adpate le nom des objets selon ton application.
Procédure non testée !
'------------------------------
Sub Test()
Dim pt As PivotTable
Dim pf As PivotField
Dim Pi As PivotItem
Dim Arr(), A As Variant
''liste indésirable que tu veux rendre invisible
Arr = Array("toto", "titi", "tutu")
With Worksheets("Feuil1") ' à déterminer
Set pt = .PivotTables("SonNom") 'ou index
End With
Set pf = pt.PivotFields("NomDuPivotField") 'à déterminer
On Error Resume Next
For Each Pi In pf.PivotItems
A = WorksheetFunction.Match(Pi.Name, Arr, 0)
If Not IsError(A) Then
Pi.Visible = False
Else
Err = 0
End If
Next
End Sub
'----------------------------------
Salutations!
"René Delcourt" a écrit dans le message de news:
Bonjour,
Dans un TCD, il y a moyen de décocher les items que l'on ne veut pas voir.
Comment traduit-on cette commande en VBA sachant que certains items
(indésirables) ne seront là qu'en fonction de l'alimentation de la base de
données.
J'ai essayé ceci sans succès :
If PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible = True Then
ActiveSheet.PivotTables("TCD ").PivotFields(T40).PivotItem("T" & X).Visible
= False
Merci
--
René Delcourt