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.
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 SubCela 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.
