Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 29/10/2006, 13h23   #1 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Question Détruire anciennes étiquettes dans TCD

Bonjours le forum,

avant toute chose je tiens à préciser que j'ai essayer une méthode proposer dans les WIKI page 9 de MichelXld et dont l'auteur de la macro est Debra Dalgleish.

Citation:
Détruire les anciennes étiquettes dans un TCD


Suite à des modifications des étiquettes dans la base de données, le TCD ne s'actualise pas et les étiquettes de colonne persistent dans les filtres des champs.
Pour les supprimer , utilisez cette macro de Debra Dalgleish ,à placer dans un module de la feuille


Sub deleteOldItemsWB()
'gets rid of unused items in pivotTable
'Debra Dalgleish - based on MSKB (202232)
Dim ws As Worksheet
Dim pt As pivotTable
Dim pf As pivotField
Dim pi As pivotItem
Dim i As Integer
On Error Resume Next
For Each ws In activeWorkbook.Worksheets
For Each pt In ws.pivotTables
pt.refreshTable
For Each pf In pt.pivotFields
For Each pi In pf.pivotItems
If pi.recordCount = 0 And _
Not pi.isCalculated Then
pi.Delete
End If
Next
Next
Next
Next
End Sub


Et un autre solution , à partir d'excel 2002 uniquement :


Sub deleteMissingItems2002()
'prevents unused items in XL 2002 pivotTable
Dim pt As pivotTable
Set pt = activeSheet.pivotTables.Item(1)
pt.pivotCache.missingItemsLimit = xlMissingItemsNone
End Sub

malheureusement cela ne fonctionne pas, j'ai mis la macro (la deuxieme dans la citation) dans les feuilles ou il y a les TCD, et même dans un module de feuille comme c'était préciser dans le WIKI page9 (tan pis pour la redondance) mais néant, j'ai même pas un plantage, faut il que j'ajoute un bouton de commande dans les feuilles ou il y a les TCD?

merci pour votre aide.
__________________
p@cm@n est déconnecté   Réponse avec citation
ANNONCES
Vieux 29/10/2006, 14h13   #2 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : Détruire anciennes étiquettes dans TCD

Bonjour,

Mets cette macro dans un module puis tu l'exécutes par menu/outils/macro/macro.

Attention toutefois à ta version d'excel. La prenière macro est pour excel 97 à 2000 tandis que la seconde est pour excel 2002.

A te lire
Dan est déconnecté   Réponse avec citation
Vieux 29/10/2006, 20h11   #3 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Par défaut Re : Détruire anciennes étiquettes dans TCD

Bonjour Dan,

merci, mais cela ne fonctionne pas! j'ai bien installé la bonne version (2002) mais mon excel est un 2003, cela pourrait il être la cause du problème?
__________________
p@cm@n est déconnecté   Réponse avec citation
Vieux 29/10/2006, 22h56   #4 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : Détruire anciennes étiquettes dans TCD

Re,

Oui. Je n'ai malheureusement pas Excel 2003.
Le mieux serait de construire ton TCD par macro mais là je dois voir ton fichier.
Si tu peux le placer ici avec données non confidentielles je veux bien regarder cela.

A te lire
Dan est déconnecté   Réponse avec citation
Vieux 30/10/2006, 23h07   #5 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Par défaut Re : Détruire anciennes étiquettes dans TCD

Bonsoir le forum, salut Dan

je te prépare une version allégé de mon fichier, de façon à pouvoir te le transmettre sur le forum, par contre cela m'arrange pas de construire le TCD via le VBA, car déja lorsque j'ai toute les données saisie 800 à 900 lignes(donc fichier intégrale) la taille est importante entre 800 et 900Ko (c'est pas si gros, mais bon), avec tout le tableau passant par le VBA cela risque de l'alourdir, de plus je m'en sert comme lien dans un autre classeur.

donc si c'est possible, de corriger le code actuel, sans devoir refaire le TCD par VBA, ce serait mieux. si c'est pas possible j'aviserai.

en tous cas merci de ton aide.

@+ avec le fichier
__________________
p@cm@n est déconnecté   Réponse avec citation
Vieux 30/10/2006, 23h40   #6 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Exclamation Re : Détruire anciennes étiquettes dans TCD

Bonsoir le forum, salut Dan


je venais d'écrire ma réponse, et j'ai fait une mauvaise manip j'ai tout effacé.

alors pour résumé, j'essai de te préparer un fichier "light" pour que tu visualise la chose, quand je dis light c'est vraiment léger car j'ai pas encore réussi atteindre la bonne taille pour le mettre sur le forum, et pourtant j'en ai supprimer des choses (y a plus que deux onglet sur 5, 1 TCD sur 3, et pas mal de ligne de données supprimer) malheureusement pour le moment j'en suis à 56,9Ko compressé en ZIP je crois que c'est encore trop gros, il faut 50Ko.

d'autre part, je suis pas trop partisant de refaire les tableaux en VBA, car déja lorsque j'ai le fichier complet je suis entre 800 et 900 lignes de données, et une taille de fichier avoisinant les 1Mo, avec les trois TCD et le graph. si à cela il y a un code VBA pour réaliser les tableau, cela risque d'alourdir le classeur, tu crois pas?

donc si c'est possible, de corriger seulement le code pour détruire les anciennes étiquettes du ou des TCD, cela m'arrangerai bien, dans le cas contraire, j'aviserai.

en tous cas merci de me venir en aide.

@+ avec le fichier à la bonne taille.
__________________
p@cm@n est déconnecté   Réponse avec citation
Vieux 30/10/2006, 23h42   #7 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Par défaut Re : Détruire anciennes étiquettes dans TCD

oups! il semblerai que mon precedent message n'ai pas été effacer comme je le croyait. tan mieux, ou tan pis
__________________
p@cm@n est déconnecté   Réponse avec citation
Vieux 30/10/2006, 23h48   #8 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : Détruire anciennes étiquettes dans TCD

Bonsoir,

Pour supprimer ton message, tu fais Editer puis tu vas dans "aller mode avance" et tu supprimes.

a te lire
Dan est déconnecté   Réponse avec citation
Vieux 31/10/2006, 00h02   #9 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Angry Re : Détruire anciennes étiquettes dans TCD

impossible de réduire à 50Ko, sinon y a plus de données, donc quelle intéret que je t'envoi un fichier, si il y a pas les données qui vont avec le TCD.

de 900 lignes de données je suis passer à 19, je fais quoi je met que 3 lignes, mais est ce que cela sera suffisant pour que tu comprennes le classeur.

je laisse tomber l'envoi, car à force de diminuer les données, et bien du coup les étiquettes dans le seul TCD qui reste ne sont pas en doublon, donc tu ne pourra pas voir le problème, et cela me met le bourdon.

merci quand même d'avoir essayer de m'aider. si je trouve une autre soluce pour t'envoyer un fichier qui soit parlant, je manquerai pas de le faire.

@+ sur le forum
__________________
p@cm@n est déconnecté   Réponse avec citation
Vieux 31/10/2006, 00h27   #10 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Smile Re : Détruire anciennes étiquettes dans TCD

Dan,

J'ai coupé mon fichier en deux, il suffit de remettre les données dans le classeur Tableau, sans oublier de mettre à jour le TCD, car j'ai fais faire un régime au classeur des données.

aller j'envoi les deux classeurs
__________________

Dernière modification par p@cm@n ; 10/11/2006 à 01h33.
p@cm@n est déconnecté   Réponse avec citation
Vieux 01/11/2006, 12h21   #11 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : Détruire anciennes étiquettes dans TCD

Bonjour,

Ok j'ai bien reçu tes deux fichiers.
Je n'ai pas considéré les liaisons car il sembe que tu fasses appel à une base de données externe pour importer les valeurs dans ton fichier. A titre d'information, sache que tu peux aussi créer un TCD en reprenant les champs de ta base de données.

Pour ce qui est de ta macro Sub deleteMissingItems2002(), je pense qu'elle ne fonctionne pas parce que non adaptée à ton pb. C'est la définition "ITEM(1)" dans le code qui est en cause. Cela correspond au champ 1 du TCD et tandis que tes items à éliminer ne sont probablement pas dans ce champ.

Compte tenu de cela j'ai un peu modifié la macro de D. Dalgleish. Essaie celle adaptée à ton fichier selon les cas ci-après :

1. Si tu as le(s) TCD sont sur une seule feuille
Code:
Sub deleteolditem()
'Macro de Debra Dalgleish adaptée par DAN pour p@cm@n le 31/10/06
'http://www.excel-downloads.com/forum/69453-detruire-anciennes-etiquettes-dans-tcd.html
Dim pt As PivotTable
For Each pt In ActiveSheet.PivotTables
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
pt.PivotCache.Refresh
Next pt
End Sub
2. si tu as plusieurs TCD répartis sur plusieures feuilles
Code:
Sub deleteolditem()
'Macro de Debra Dalgleish adaptée par DAN pour p@cm@n le 31/10/06
'http://www.excel-downloads.com/forum/69453-detruire-anciennes-etiquettes-dans-tcd.html
Dim pt As PivotTable
Dim sh As Worksheet
For Each sh In Worksheets
For Each pt In sh.PivotTables
pt.PivotCache.MissingItemsLimit = xlMissingItemsNone
pt.PivotCache.Refresh
Next pt
Next sh
End Sub
Fais moi savoir si cela fonctionne car, n'ayant pas Excel 2003 à la maison et au boulot, je n'ai malheureusement pas pu les tester.

A te lire
Dan est déconnecté   Réponse avec citation
Vieux 01/11/2006, 13h37   #12 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Thumbs up Re : Détruire anciennes étiquettes dans TCD

Bonjour Dan , le forum

avec tes explications cela devient beaucoup plus clair,
pour ma part j'utilise le deuxieme code, qui correspond à mon classeur, et cela fonctionne parfaitement, j'ai quand même testé le 1er code, qui fonctionne aussi mais avec la différence qu'il faut effectivement avoir tous les TCD sur la même feuille.

dans la page WIKY n°9 dans la macro de D.Dalgleish la subtilité n'est pas expliqué, mais la base est présente.

Citation:
Envoyé par Dan
A titre d'information, sache que tu peux aussi créer un TCD en reprenant les champs de ta base de données.
n'est ce pas ce que j'ai fait? ou alors je comprend pas ce que tu veux dire.

grand merci pour l'aide que tu m'as apporté.
__________________
p@cm@n est déconnecté   Réponse avec citation
Vieux 01/11/2006, 14h27   #13 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : Détruire anciennes étiquettes dans TCD

Re,

Citation:
A titre d'information, sache que tu peux aussi créer un TCD en reprenant les champs de ta base de données.

n'est ce pas ce que j'ai fait? ou alors je comprend pas ce que tu veux dire.
Je pense que tu as lié la base de données avec Excel. ce que je voulais dire c'est que à l'étape 1 de la construction du TCD, je ne pense que tu as choisi "souce de données" mais bien "base de données excel".
Là tu pourais essayer avec "source de données" pour construire le TCD à aprtir de la base de données en direct.

A te lire
Dan est déconnecté   Réponse avec citation
Vieux 01/11/2006, 15h57   #14 (permalink)
XLDnaute Junior
 
Avatar de p@cm@n
 
Date d'inscription: août 2005
Localisation: Beaumont sur Oise
Version Excel : Excel 2003 (PC)
Messages: 81
Par défaut Re : Détruire anciennes étiquettes dans TCD

effectivement j'ai crée le TCD avec "Base de données Execel" mais qu'est ce que cela m'apporterai de le faire avec "Sources de données externe" je pensais que mon raisonnement était logique.

explique moi les avantages d'utiliser ce que tu préconise.

sachant que ce que j'utilise de la base de données n'est qu'un complément d'information concernant les codes Cies, pour alimenter mon classeur. il n'y a que ca dans le classeur DataBase Cie, alors que pour le TCD j'utilise plusieurs colonnes différentes qui n'existe pas dans le fichier Excel DATABASE.
@+
__________________

Dernière modification par p@cm@n ; 01/11/2006 à 16h03.
p@cm@n est déconnecté   Réponse avec citation
Vieux 01/11/2006, 16h19   #15 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : Détruire anciennes étiquettes dans TCD

Re,

Au vu de ce que tu expliques ta manière est correcte. Je pensais simplement que toutes les données provenaient d'une source externe; raison pour laquelle je t'ai parlé de cela.
Ta méthode est bonne alors.

A bientôt
Dan est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Etiquettes de données dans légende SKOBLAR Forum Excel 0 25/07/2006 15h33
auto-détruire un fichier dorothée Forum Excel 3 02/06/2006 13h19
Anciennes données sources dans tabl cr dyn Excel Sabine Forum Excel 6 13/02/2006 14h17
pb liaison a detruire jlouis Forum Excel 10 25/08/2005 19h30
detruire feuille existante dIDIER 2 Forum Excel Downloads - Archives 1 21/02/2003 23h57


Fuseau horaire GMT +2. Il est actuellement 01h17.


(C) 2006 Excel Downloads