IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modification TCD en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Par défaut Modification TCD en VBA
    Bonjour à tous,

    Je bloque sur un point, et avant d'envoyer le pc par la fenêtre je vais tenter ma chance ici

    J'aimerais modifier le filtre d'une étiquette de colonne dans un TCD

    J'utilise ce code ci mais impossible d'utiliser la propriété visible alors que la propiété name marche.
    Au final je repére bien les valeurs que je souhaite afficher ou non mais vba bloque sur la commande.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Dim Pvt As PivotItem
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("DATE")
        For i = 1 To .PivotItems.Count
            If .PivotItems(i).Name <> Sheets("Onglet1").Cells(6, 9) And .PivotItems(i).Name <> DateAdd("m", -3, Sheets("Onglet1").Cells(6, 9)) Then
                MsgBox "masque" & vbCrLf & .PivotItems(i).Name
                .PivotItems(i).Visible = False
    If .PivotItems(i).Visible Then MsgBox "visible" Else MsgBox "pas visible"
            End If
         Next i
     
        For i = 1 To .PivotItems.Count
            If .PivotItems(i).Name = Sheets("Onglet1").Cells(6, 9) Or .PivotItems(i).Name = DateAdd("m", -3, Sheets("Onglet1").Cells(6, 9)) Then
                MsgBox "affiche" & vbCrLf & .PivotItems(i).Name
                .PivotItems(i).Visible = True
            End If
        Next
    End With
    il y a peut-être qqchose qui m'échappe

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Quelle est la ligne en erreur ? Précise quelle est ta version d'Excel, c'est particulièrement important pour les TCD.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Par défaut
    la ligne en erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .PivotItems(i).Visible = False
    je suis sous excel 2007 mais le fichier avait été crée au format 97-2003.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Il y a deux choses.
    1. il faut qu'au moins un élément(PivotItem) soit visible
    2. Puisque le CD a été créé avec XL2003, tu dois travailler avec XL2007 en mode compatibilité (c'est à dire que le format d'enregistrement doit être 97 - 2003 par défaut avant que tu ouvres le classeur.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 21
    Par défaut
    Il y aura toujours deux éléments visibles.
    Petite omission de ma part, j'ai enregistré le fichier de base en .xlsm

    Cela marche en convertissant la date en format texte
    il doit pourtant bien avoir un moyen de le faire avec la date en format date

  6. #6
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    La propriété PivotItem.Name est de type string. Tu peux essayer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CDate(.PivotItems(i).Name)
    pour tes comparaisons.

Discussions similaires

  1. [XL-2010] Modification source existante d'un TCD en vba
    Par pej54 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 04/08/2011, 07h45
  2. Modification d'un VBA
    Par arno21600 dans le forum VBA Word
    Réponses: 2
    Dernier message: 16/07/2008, 12h32
  3. TCD sous VBA
    Par davyvba dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2008, 16h38
  4. Bug Excel lors d'une tentative de modif de code VBA
    Par aerodynamique dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 27/11/2007, 11h28
  5. Changer le format d'un champ d'un TCD en vba
    Par patate5555 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/07/2007, 06h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo