Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/11/2011, 10h27   #1
Invité de passage
 
Inscription : février 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 21
Points : 3
Points : 3
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 :
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
Tinoudu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 11h17   #2
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Bonjour,

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

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 13h17   #3
Invité de passage
 
Inscription : février 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 21
Points : 3
Points : 3
la ligne en erreur :
Code :
.PivotItems(i).Visible = False
je suis sous excel 2007 mais le fichier avait été crée au format 97-2003.
Tinoudu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 13h59   #4
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
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.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 16h53   #5
Invité de passage
 
Inscription : février 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 21
Points : 3
Points : 3
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
Tinoudu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/11/2011, 17h08   #6
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
La propriété PivotItem.Name est de type string. Tu peux essayer :

Code :
CDate(.PivotItems(i).Name)
pour tes comparaisons.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/11/2011, 18h29   #7
Invité de passage
 
Inscription : février 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 21
Points : 3
Points : 3
Les comparaisons fonctionnement, l'erreur se situe au niveau de la ligne suivante:
Code :
1
2
 
.PivotItems(i).Visible = False '(ou True)
si je n'ai aucune condition et que je souhaite tous les afficher, cela ne marche pas non plus.
Code :
1
2
3
4
 
For i = 1 To .PivotItems.Count
     .PivotItems(i).Visible = True
Next i
Tinoudu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 16h01   #8
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Est-ce que tu pourrais mettre un petit classeur de test en pièce jointe. Ce serait moins long et plus sûr que de tenter de reconstituer les données.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 16h36   #9
Invité de passage
 
Inscription : février 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 21
Points : 3
Points : 3
Dslé je ne peut pas , à moins de construire moi même un classeur de test ce qui revient finnallement au même.

le voici, il faut l'enregistrer au format ".xlsm" pour que cela soit semblableClasseur1.xls
Tinoudu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/11/2011, 17h42   #10
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Il s'agit d'une incompatibilité entre XL2003 et XL2010. J'ai refait, dans un nouveau classeur, le TCD en ayant copié les données et cela fonctionne.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 09h42   #11
Invité de passage
 
Inscription : février 2011
Messages : 21
Détails du profil
Informations forums :
Inscription : février 2011
Messages : 21
Points : 3
Points : 3
Salut
Tu veut sans doute dire 2007?
Tinoudu72 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/11/2011, 10h04   #12
Expert Confirmé Sénior
 
Homme Daniel
aucune
Inscription : septembre 2011
Messages : 2 004
Détails du profil
Informations personnelles :
Nom : Homme Daniel
Localisation : France, Seine et Marne (Île de France)

Informations professionnelles :
Activité : aucune

Informations forums :
Inscription : septembre 2011
Messages : 2 004
Points : 4 037
Points : 4 037
Oui. Effectivement XL2007. J'ai mis XL2010 parce que j'ai fait les tests avec XL2010, mais tu as raison.
__________________
Cordialement.

Daniel

Citation:
La plus perdue de toutes les journées est celle où l'on n'a pas ri.
Chamfort
Daniel.C est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h20.


 
 
 
 
Partenaires

Hébergement Web