Actualiser un TCD comprenant une ligne vide

  • Initiateur de la discussion Initiateur de la discussion Amilo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Amilo

XLDnaute Accro
Bonsoir le forum,

J'ai dans mon fichier ci-joint un tableau en A1:B25 qui comprend une ligne vide et une plage de saisie en A3:B25,

La plage de saisie est variable et au maximum en A25,

A chaque nouvelle saisie j'actualise mon TCD à l'aide du bouton(j'ai créé un nom défini pour la plage dynamique),

Mon problème, c'est que j'ai une ligne vide en A2 que j'ai désactivée dans mon TCD,
j'ai décoché simplement la sélection (Vide) dans mon filtre du TCD,

Et donc le souci, c'est que lorsque je saisie une nouvelle valeur ou Article dans ma plage, cette nouvelle donnée n'est pas prise en compte après actualisation du TCD.....!!!

Je dois aller dans le filtre du TCD et cocher manuellement le nom du nouvel article pour qu'il se mette à jour....!!!

Je ne peux pas faire autrement avec ma ligne vide en ligne 2 et sans laquelle je n'aurais pas eu ce problème,

Avez-vous svp une solution à ce problème ??

Merci d'avance

Cordialement
 

Pièces jointes

Re : Actualiser un TCD comprenant une ligne vide

Bonsoir,
essaie comme cela :
Code:
Sub ActualiserTCD()
If Range("SourceTCD").Rows.Count > 1 Then
    With ActiveSheet.PivotTables("Tableau croisé dynamique1")
        .PivotFields("Article").PivotItems("(blank)").Visible = True
        .PivotCache.Refresh
        .PivotFields("Article").PivotItems("(blank)").Visible = False
    End With
End If
End Sub
A+
 
Dernière édition:
Re : Actualiser un TCD comprenant une ligne vide

Bonsoir,
Bonsoir david84,

Ton code fonctionne pour gérer la ligne vide, mais il ne gère pas les ajouts d'items.

Je n'ai pas testé pour la suppression d'items.
Bizarre...testé chez moi sans problème concernant l'ajout ou la suppression de données dans la plage située en colonnes A et B.
A+
 
Re : Actualiser un TCD comprenant une ligne vide

Bonsoir,

Ci-joint une solution qui semble fontionner.
 

Pièces jointes

Re : Actualiser un TCD comprenant une ligne vide

Bonsoir

David84 : les éléments s'effacent mais aucun ne s'ajoute.

Gareth : si on supprime les éléments dans les colonnes A et B, elles restent dans le filtres, elles ne sont que décochées

Merci vos propositions.


G
 
Re : Actualiser un TCD comprenant une ligne vide

Bonsoir,

J'aime beaucoup le code de Gareth.

Pour l'agrémenter, si on veux faire effacer les items obsolètes, il suffit d'ajouter au début :
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.MissingItemsLimit = xlMissingItemsNone

Merci


G
 

Pièces jointes

Re : Actualiser un TCD comprenant une ligne vide

Bonsoir david84,

Après avoir ajouté la ligne du début de ton code :
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.MissingItemsLimit = xlMissingItemsNone

Tout fonctionne bien.

Tout à l'heure, ce devait être ma machine qui était mêlée. J'ai pris le temps de la redémarrer.



Merci


G
 
Re : Actualiser un TCD comprenant une ligne vide

Bonsoir Gelinotte,

Merci pour l'astuce, je ne connaissais pas.
Je me demande si cette propriété existait dans la version Excel XP ?

Je n'ai pas grand mérite ... c'est mon ami Google qui m'a soufflé cela à l'oreille 🙄

J'ai testé sour Excel 2002 (Excel XP), ce code ne fonctionne pas du tout.


G
 
Dernière édition:
Re : Actualiser un TCD comprenant une ligne vide

Re,

Le code devient alors !
Code:
Sub Test()
Application.ScreenUpdating = False
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.MissingItemsLimit = xlMissingItemsNone
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("Article")
    For Each X In .PivotItems
        X.Visible = True
    Next
    .PivotItems("(blank)").Visible = False
End With
Application.ScreenUpdating = True
End Sub
 

Pièces jointes

Dernière édition:
Re : Actualiser un TCD comprenant une ligne vide

Bonjour

Re,

Les champs conservés, il s'agit d'un vieux "bug" avec les TCD.

Voir la solutions dans le fichier joint et les posts ci-dessous.

https://www.excel-downloads.com/threads/tcd-bug-lors-de-mise-a-jour.114233/
https://www.excel-downloads.com/threads/purger-historique-tcd.96518/

Concernant ce "bug", en fait non réinitialisation du cube (cache) du TCD, depuis la version 2007 on peut aussi le régler sans code : il suffit, dans les options du TCD, onglet Données, Nombre d’éléments à retenir par champs, de sélectionner "aucun" et d'actualiser pour régénérer un cube propre.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Champs calculé TCD
Réponses
5
Affichages
157
Réponses
4
Affichages
223
Retour