Comment tester la présence d'un PivotField dans un tcd ?

Sebast

XLDnaute Impliqué
Bonjour à toutes et à tous,

dans des tcd, j'ai besoin de tester la présence éventuelle d'un champ (ici, le champ trim)
Quand le tcd ne présente QUE ce champ, ça marche, mais quand j'ai une combinaison, le test échoue
Par combinaison, j'entends que l'étiquette de colonnes contient plus d'un champ (ici trimestre et mois)

Ca foire quelque soit l'odre dans lequel apparaîssent les champs (trimestre puis champ ou champ puis trimestre)

Y a-t-il une instruction permettant d'identifier la présence d'un champ, quelque soit le nombre de champs ?
Autrement dit, si le champ trimestre existe, même parmi n autres champs …

En pièce jointe un petit fichier qui permettra de mieux comprendre
Ci-dessous le code

Code:
Sub PivotField_Existe()

Dim pt As PivotTable, pf As PivotField
Set pt = ActiveSheet.PivotTables(1)
For Each pf In pt.ColumnFields
    If pf.Name = "Trim" Then
               MsgBox "il y a bien un champ trimestre"
               ' instructions suivent mais pas l'objet de ce fil ...
               
     Else
               MsgBox "désolé, champ trimestre absent"
                ' instructions suivent mais pas l'objet de ce fil ...
                
    Exit For
    End If
Next pf

End Sub



Merci d'avance pour vos lumières
 

Sebast

XLDnaute Impliqué
Re : Comment tester la présence d'un PivotField dans un tcd ?

Re,

j'ai essayé à nouveau sur le fichier joint hier, dans l'onglet où il n'y a pas le champ Trim et je ne remonte pas de message.
Mais autant utiliser le code dont tu es certain.

Encore merci
 

Pierrot93

XLDnaute Barbatruc
Re : Comment tester la présence d'un PivotField dans un tcd ?

Re,

test avec "bidon"
Code:
Option Explicit
Sub test_Pierrot()
If champExiste("BIDON") Is Nothing Then MsgBox "champ existe et visible"
End Sub
Function champExiste(p As String) As PivotField
On Error Resume Next
Set champExiste = ActiveSheet.PivotTables(1).HiddenFields(p)
End Function
 

Statistiques des forums

Discussions
312 322
Messages
2 087 284
Membres
103 507
dernier inscrit
tapis23