Afficher les feuilles des données des lignes d'un tableau croisé dynamique

Bonjour,

Je souhaite afficher les feuilles des données qui correspondent à chaque ligne (E13 à E20) d'un tableau croisé dynamique

Sub Macro4()

Dim lign As Integer

For lign = 13 To 20

Range("E" & lign & ":E20").Select

Selection.ShowDetail = True

lign = lign + 1

Next lign

End Sub

Avez-vous une idée de pourquoi ça ne fonctionnent pas ? svp

Merci pour votre temps.

Bonjour,

Pas certain de bien comprendre, un petit fichier bidon (donc sans données confidentielles) mais qui présente les mêmes caractéristiques que votre fichier réel, nous aiderait pour pouvoir donner une réponse.

Cdlt

Bonjour à tous

Parce que dès le 1er ShowDetail , ta feuille active n'est plus celle du TCD et comme tu a omis de préciser la feuille à laquelle appartient Range("E" & lign & ":E20")...

Bonjour,

Arturo83 je te mets le fichier

Merci beaucoup 78chris, effectivement j'ai ajouté une ligne pour retourner dans la feuille où il y a le tcd et ça a marché.

Maintenant pour chaque feuille de donnée qui c'est ouverte, j'essaye de créer un tableau croisé dynamique de ces données dans une nouvelle feuille et ça ne marche pas. Est-ce que vous avez une idée pourquoi?

Ci-dessous le code :

Sub Macro1()
'
' Macro1 Macro
'

'
Dim i As Integer

For i = 13 To 20
Range("E" & i).Select
Selection.ShowDetail = True
ActiveSheet.Name = Sheets("Synthese").Cells(i, 4).Value



Cells.Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"Not departed - No Scan!R1C1:R1048576C45", Version:=6).CreatePivotTable _
TableDestination:="Feuil"&i-11&!R3C1", TableName:="Tableau croisé dynamique1",
DefaultVersion:=6
Sheets("Feuil"&i-11&!R3C1").Select
Cells(3, 1).Select
With ActiveSheet.PivotTables("Tableau croisé dynamique1")
.ColumnGrand = True
.HasAutoFormat = True
.DisplayErrorString = False
.DisplayNullString = True
.EnableDrilldown = True
.ErrorString = ""
.MergeLabels = False
.NullString = ""
.PageFieldOrder = 2
.PageFieldWrapCount = 0
.PreserveFormatting = True
.RowGrand = True
.SaveData = True
.PrintTitles = False
.RepeatItemsOnEachPrintedPage = True
.TotalsAnnotation = False
.CompactRowIndent = 1
.InGridDropZones = False
.DisplayFieldCaptions = True
.DisplayMemberPropertyTooltips = False
.DisplayContextTooltips = True
.ShowDrillIndicators = True
.PrintDrillIndicators = False
.AllowMultipleFilters = False
.SortUsingCustomLists = True
.FieldListSortAscending = False
.ShowValuesRow = False
.CalculatedMembersInFilters = False
.RowAxisLayout xlCompactRow
End With
With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache
.RefreshOnFileOpen = False
.MissingItemsLimit = xlMissingItemsDefault
End With
ActiveSheet.PivotTables("Tableau croisé dynamique1").RepeatAllLabels _
xlRepeatLabels








Sheets("Synthese").Select

Next i
End Sub

Mon tcd se trouve à la ligne 13, colonne 3 de mafeuille " Synthese"

Pour l'instant si je fais marché le code sans la partie pour créer le tableau croisé dynamique, ça m'ouvre bien une feuille pour chaque ligne de ce tcd

D'avance merci pour votre aide précieuse.

9test.xlsm (252.37 Ko)
10test.xlsm (252.37 Ko)

Bonjour

Ton code paramètre les options du TCD mais n'y place aucun champ

Je pense que par méconnaissance Excel, tu es en train de construire une usine à gaz

En plus tu travailles avec des colonnes entières en TCD au lieu d'utiliser un tableau structuré : c'est la règle depuis19 ans...

Pour démultiplier un TCD avec une colonne ob_node et le nombre de amazon barcodes pour tous les bucket choisis, il suffit de placer bucket en zone de page (filtre) et un clic suffit à générer toutes les copies de TCD chacun pour un des bucket ce qui correspond à un code d'une ligne

Sub TCDs()
    Worksheets("Synthese").PivotTables("Tableau croisé dynamique3").ShowPages PageField:="bucket"
End Sub

Cela permet aussi de ne pas démultiplier les sources et les caches qui alourdissent le classeur.

Bonjour,

j'ai essayé, ça m'indique une erreur quand je lance la maccro.

Enfaites le code ci-dessous ouvre une page de donnée pour chaque ligne de mon tcd (en feuille "Synthese" de la ligne 13 à 20 de la colonne E).

J'aimerai ajouter une ligne dans la boucle du i qui me permets de creer un tcd dans une nouvelle feuille pour chaque feuille de donnée ouverte.

Sub Macro1()
Dim i As Integer

For i = 13 To 20
Range("E" & i).Select
Selection.ShowDetail = True
ActiveSheet.Name = Sheets("Synthese").Cells(i, 4).Value

Sheets("Synthese").Select

Next i
End Sub

Merci beaucoup pour tes reponses.

9cpt-type-copie.zip (462.29 Ko)

RE

J'avais bien compris.

Et tu ne m'as pu attentivement en indiquant que cela ne fonctionne pas

...Pour démultiplier un TCD avec une colonne ob_node et le nombre de amazon barcodes pour tous les bucket choisis, il suffit de placer bucket en zone de page (filtre)

ce que tu n'as pas fait...

image
Rechercher des sujets similaires à "afficher feuilles donnees lignes tableau croise dynamique"