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

XL 2016 création tableau croisé dynamique aprés filtre en VBA

manar

XLDnaute Nouveau
bonjour

je m'explique
je travaille sur user form pour la création d'un TCD , j'ai réussi à créer le tableau croisé dynamique , mais le problème c'est que j'ai des filtres avant , je saisie un intervalle de date avec textbox et j'ai des filtres dans combobox
lorsque je lance TCD , il ne prend pas en considération les filtres de date et des combobox que j'ai dans user form , il m'affiche TCD du tableau complet

je ne sais pas comment résoudre ce problème , je vous remercie par avance pour votre aide
 

manar

XLDnaute Nouveau
merci chris
mais j'arrive pas à faire l'extrait comme source , car dans mon tableau croisé dynamique j'ai comme source "tablo" c'est le nom du tableau complet , j'ai essayer à copier l'extrait et le coller dans une autre feuille mais je me suis bloqué comment je vais nommé le nouvel tableau , puisque le tableau va s'ajouter mais je vais pas connaitre son nom pour le mettre dans la source , c'est ce détail là que j'arrive pas à coder
 

chris

XLDnaute Barbatruc
RE
Dans ton code :
après collage, tu peux récupérer le nom du tableau ou le changer (Tablo2 par exemple) ce qui permettra que le TCD ait toujours la même source

Plus simple : tu crées un tableau structuré vide source du TCD et tu le vides et remplis à chaque fois par VBA.
 

manar

XLDnaute Nouveau
voilà mon code
merci d'avance

'sélectionner et copier les cellules après filtre et les coller dans une autre feuille

Range("Tablo[#All]").Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste

'tableau croisé dynamique

Sheets.Add After:=Sheets(Sheets.Count)
ActiveSheet.Name = "TCD" & Format(Sheets.Count - 1, "00")
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Tablo", Version:=xlPivotTableVersion15).CreatePivotTable _
TableDestination:=ActiveSheet.Cells(1, 1), TableName:="TCD", _
DefaultVersion:=xlPivotTableVersion15
With ActiveSheet.PivotTables("TCD").PivotFields("SEMAC")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("TCD").AddDataField ActiveSheet. _
PivotTables("TCD").PivotFields("SEQTS"), _
"Somme de SEQTS", xlSum
With ActiveSheet.PivotTables("TCD").PivotFields( _
"Somme de SEQTS")
.Caption = " quantit?"
.NumberFormat = "# ##0,00"
End With
 

chris

XLDnaute Barbatruc
RE

Pourquoi créer un TCD par VBA ?

Comme dit plus haut :
Tu crées un tableau structuré vide et tu le nommes Tablo2
Tu crées le TCD à partir de Tablo2 et tu le nomme TCD1

Dans ton programme : pour copier la sélection de Tablo versTablo2

Nom des feuilles à adapter

VB:
   Sheets("Feuil2").Activate
    With Sheets("Feuil2").ListObjects("Tablo2")
        .DataBodyRange.Delete
        .ListColumns(1).Range.Cells(2, 1).Select
        Range("Tablo").SpecialCells(xlCellTypeVisible).Copy
        ActiveSheet.Paste
    End With
    Sheets("Feuil4").PivotTables("TCD1").PivotCache.Refresh
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…