Problème VBA : décocher une case d'un TCD

Bonjour à tous, j'ai encore un petit souci !

J'ai un morceau de code (que je vais essayer de vous joindre) qui ne fonctionne pas !

L'objectif ?

Je dois exécuter une ligne de code si une case n'est pas cochée. Tout fonctionne jusqu'au moment ou ma macro est censée décocher la case de mon TCD...

Sheets("Par etab - par filiere").Select
ActiveSheet.PivotTables("Pareta").PivotFields( _
"Ayant formulé au moins 1 vœu de L1 ou PACES").Orientation = xlHidden

Si ça peut aider, je vous joint le message d'erreur :

capture

Merci à celui qui pourra m'aider

Bonjour,

Apparemment ton champ n'existe pas !...

Cdlt.

Je dois bien admettre que je ne sais pas du tout le pourquoi du comment, je te met un fichier de test !

Je souhaite enlever la colonne "PT" de mon TCD. La macro que j'ai obtenue, je l'ai eu en enregistrant, donc elle devrait être utilisable. Or, ce n'est pas le cas.

Si quelqu'un a la moindre idée du pourquoi du comment, je suis preneur

Désolé pour l'autre post; je n'avais pas du tout vu que tu avais répondu ici !

11probleme.xlsm (17.70 Ko)

Bonjour,

essaie ainsi :

ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields("Somme de PT") _
        .Orientation = xlHidden

Bonjour,

essaie ainsi :

ActiveSheet.PivotTables("Tableau croisé dynamique6").PivotFields("Somme de PT") _
        .Orientation = xlHidden

J'ai aussi essayer d'enregistrer la macro, malheureusement, je n'en ai retiré aucun résultat :/

J'ai peut être trouver quelque chose de correct, alors je le post ici, au cas ou quelqu'un aurait le même type de problème

Sub Macro2()
'Permet d'enlever le champs
' Macro2 Macro
'

'
    Dim oWS As Worksheet
    Dim oPT As PivotTable
    Dim oPF As PivotField
    Dim oPI As PivotItem

    Set oWS = ActiveSheet
    Set oPT = oWS.PivotTables(1)

    For Each oPF In oPT.DataFields
        If oPF.SourceName = "PT" Then
            'Stop
            Exit For
        End If
    Next

    Set oPI = oPF.DataRange.Cells(1, 1).PivotItem
    'oPI.DataRange.Select
    oPI.Visible = False
End Sub

Bonjour

Ta question est très ambiguë

Rendre invisible ou d'orientation xlHidden un champ de valeur équivaut à purement et simplement le supprimer du TCD !

Donc soit ton exemple n'est pas représentatif soit tu cherches un char d’assaut pour écraser une mouche...

Bonjour

Ta question est très ambiguë

Rendre invisible ou d'orientation xlHidden un champ de valeur équivaut à purement et simplement le supprimer du TCD !

Donc soit ton exemple n'est pas représentatif soit tu cherches un char d’assaut pour écraser une mouche...

J'ai beaucoup aimé l'allégorie du char et de la mouche

Grosso modo c'est ça, je veux l'enlever du TCD et le remettre quand j'en ai besoin

J'ai près plusieurs heures de taf intensif, réussi, mais le code me parait très (très) sale pour un aussi petit résultat...

Merci en tout cas, pour votre aide à tous

Bonjour,

Il suffisait de préciser ta demande avec un petit fichier.

Cdlt.

Bonjour,

Il suffisait de préciser ta demande avec un petit fichier.

Cdlt.

Yes, je met ici le fichier que j'ai obtenu afin que tous puisse voir mon code

S'il marche, c'est cadeau

Merci pour tout !

33probleme.xlsm (25.54 Ko)

Bonjour,

Pour commencer l'ajout et la suppression d'un champ de valeurs.

Pour la suite, tu reformules ce que tu souhaites faire.

Cdlt.

Option Explicit

Public Sub Delete_DataField()
Dim ws As Worksheet, pt As PivotTable, pf As PivotField
    Set ws = ActiveSheet
    Set pt = ws.PivotTables(1)
    For Each pf In pt.DataFields
        If pf.SourceName = "PT" Then pf.Orientation = xlHidden
    Next pf
End Sub

Public Sub Add_DataField()
Dim ws As Worksheet, pt As PivotTable, pf As PivotField
    Set ws = ActiveSheet
    Set pt = ws.PivotTables(1)
    On Error Resume Next
    Set pf = pt.pivofields("PT ")
    If Not pf Is Nothing Then Exit Sub
    pt.AddDataField pt.PivotFields("PT"), "PT ", xlSum
End Sub
Rechercher des sujets similaires à "probleme vba decocher case tcd"