Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA TCD Masquer des items

danielco

XLDnaute Accro
Bonjour,

Je souhaite masquer certaines dates pour lesquelles il n'y a pas de mouvements bancaires :

J'ai écrit :

VB:
Sub test()
  Dim Pt As PivotItem, C As Range
  Application.ScreenUpdating = False
  inCalculationMode = Application.Calculation
  Application.Calculation = xlCalculationManual
  With Sheets("Cpts bancaires").PivotTables(1)
    .ManualUpdate = True
    On Error Resume Next
    .PivotFields("Date").ClearAllFilters
    On Error GoTo 0
    For Each Pt In .PivotFields("Date").PivotItems
      For Each C In Pt.DataRange
        If C.Column = 7 Then
          If C.Row = 20 Then Stop
          If C = "" And C.Offset(, 1) = "" Then
            Pt.Visible = False
            ctr = ctr + 1
            Debug.Print ctr
          End If
        End If
      Next C
    Next Pt
    .ManualUpdate = False
  End With
  Application.Calculation = inCalculationMode
End Sub

Mais la macro est lente et souvent, je suis obligé de tuer Excel. Je vous mets une copie d'écran, et, dès que je pourrai, je posterai le classeur.

Le but est de masquer les éléments comme 2020-02-02 qui n'ont pas d'écriture.

Je vous remercie par avance.

Daniel
 

chris

XLDnaute Barbatruc
Bonjour

J'ai commencé par renommer le tableau de l'onglet BD : Donnees au lieu de Tableau27

Puis, depuis une cellule de ce tableau, selon ta version onglet PowerQuery ou bien Données : A partir d'un tableau
Cela ouvre Powerquery.
A gauche on retrouve une requête portant le nom du tableau au centre les données, à droite les étapes de la requête
Les deux première étapes, Source et Type modifié sont automatiques.
Dans certains cas on modifie les types choisis par PQ si ce n'est pas les bons (sélectionner la colonne et onglet Accueil, Type de données)

J'ai ensuite :
  • Filtré les données, comme dans Excel en haut de la colonne Type, pour ne garder que Entrée et Sortie
  • Regroupé par (onglet Transformer) Mois, Date, Compte, Type, et fait la somme de Montant
  • sélectionné la colonne Type, puis onglet Transformer, Colonne de tableau croisé dynamique (ou Pivoter selon version), choisi la colonne Montant en Valeurs, sans agréger. Cela ventile Entrée et Sortie sur 2 colonnes.
  • ajouté une colonne : onglet, Ajouter une colonne, Colonne personnalisée, l'ai nommée Solde avec comme formule
    (if [Entrée]=null then 0 else [Entrée])-(if [Sortie]=null then 0 else [Sortie])
On sort par Fermer et charger dans, TCD et on bâtit le TCD.
 

danielco

XLDnaute Accro
Génial ! Ca m'ouvre des perspectives énormes ! Merci infiniment. Je vais mettre ça de côté pendant une semaine et je vais essayer de le refaire tout seul. (Pour info, j'avais essayé de comprendre en commençant par la dernière étape.)

Daniel
 

Discussions similaires

Réponses
7
Affichages
334
Réponses
14
Affichages
355
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…