XL 2010 Condenser les données d'un tableau

FCMLE44

XLDnaute Impliqué
Supporter XLD
Bonjour

Etape 2 de mon projet

Les onglets se créant automatiquement en fonction des données de la feuille DSN, je souhaite, pour chaque onglet créé condenser les données obtenues.

Feuille TC :
En ligne 4 colonne AN, je souhaite condenser les données se trouvant en colonne AD à AK (cf exemple fichier joint).

Lors de la mise à jour de chaque onglet via macro Balaye1, il se mettrait à jour automatiquement

Cordialement
 

Pièces jointes

  • DSN ESSAI.xls
    94 KB · Affichages: 51

Dranreb

XLDnaute Barbatruc
Non !!! Dedans !
VB:
LRc = LRc + 1: For C = 1 To 8: TRc(LRc, C) = Choose(C, NomFeui, "Brut SS", "SS Plaf", _
         "Base CSG", "Net Imposable", "Cice", "Chômage", "Apprentis"): Next C
      With FRécap.Cells(LRc, 1).Resize(, 8): .Font.Bold = True: .Interior.Color = RGB(255, 240, 186): End With
      With FRécap.Cells(LRc, 1).Resize(4):   .Font.Bold = True: .Interior.Color = RGB(255, 240, 186): End With
 

FCMLE44

XLDnaute Impliqué
Supporter XLD
Merci

Hier soir et afin de m'entrainer à la macro, avec l'aide du générateur, j'ai fait cette macro pour qu'en J1 sur la feuille récap j'ai un TCD automatique qui me donne les données en pièce jointe.

VB:
Sub TCDAT()
'
' TCDAT Macro
'
 
'
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "DSN!R1C1:R6000C38", Version:=xlPivotTableVersion14).CreatePivotTable _
        TableDestination:="Récapitulatif!R1C10", TableName:= _
        "Tableau croisé dynamique1", DefaultVersion:=xlPivotTableVersion14
    Sheets("Récapitulatif").Select
    Cells(1, 10).Select
    ActiveWorkbook.ShowPivotTableFieldList = True
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "CODE_DE_SIRET")
        .Orientation = xlRowField
        .Position = 1
    End With
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "TX_AT_TRANS_23_003")
        .Orientation = xlRowField
        .Position = 2
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique1").AddDataField ActiveSheet. _
        PivotTables("Tableau croisé dynamique1").PivotFields("M_ASSIETTE_23_004"), _
        "Nombre de M_ASSIETTE_23_004", xlCount
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "Nombre de M_ASSIETTE_23_004")
        .Caption = "Somme de M_ASSIETTE_23_004"
        .Function = xlSum
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "CODE_DE_SIRET").Orientation = xlHidden
    ActiveWorkbook.ShowPivotTableFieldList = False
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields( _
        "TX_AT_TRANS_23_003")
        .PivotItems("0").Visible = False
    End With
    ActiveSheet.PivotTables("Tableau croisé dynamique1").RowAxisLayout xlTabularRow
    ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotSelect _
        "TX_AT_TRANS_23_003[All]", xlLabelOnly, True
    Columns("J:K").Select
    Selection.Copy
    Range("L1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Columns("J:K").Select
    Range("K1").Activate
    Application.CutCopyMode = False
    Selection.Delete Shift:=xlToLeft
    Columns("J:K").EntireColumn.AutoFit
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$L$2"), , xlYes).Name = _
        "Tableau2"
    Range("Tableau2[[#All],[Colonne1]]").Select
    ActiveSheet.ListObjects("Tableau2").TableStyle = "TableStyleLight9"
    Columns("J:K").Select
    ActiveSheet.ListObjects.Add(xlSrcRange, Range("$J:$K"), , xlYes).Name = _
        "Tableau3"
    Columns("J:K").Select
    ActiveSheet.ListObjects("Tableau3").TableStyle = "TableStyleMedium19"
    Columns("L:L").Select
    Selection.Delete Shift:=xlToLeft
    Range("L1").Select
    ActiveCell.FormulaR1C1 = "DADS"
    Range("M1").Select
    ActiveCell.FormulaR1C1 = "Ecart"
    Range("M2").Select
    ActiveCell.FormulaR1C1 = "=+[@[Somme de M_ASSIETTE_23_004]]-[@DADS]"
    Range("Tableau3[[#Headers],[TX_AT_TRANS_23_003]]").Select
End Sub

Je dois faire CTRL f pour le lancer, n'y a t il pas un moyen pour qu'on l'est en même temps que les autres éléments. sI réactive les onglets ca bugge en disant qu'il y a deja un tcd

Avez vous une idée ?
 

Pièces jointes

  • TCD.xlsx
    9.6 KB · Affichages: 35

Dranreb

XLDnaute Barbatruc
Déjà il faut vérifier si la seule collection jusqu'à présent utilisée, fabriquée par cette fonction, ne convient pas déjà. Elle convient si l'ordre de classement et les regroupements nécessaires pour de votre nouveau rapport sont les mêmes. Alors il est possible d'écrire au fur et à mesure ce qu'on rencontre dans un tableau supplémentaire, en même temps qu'on fait le reste.
Sinon pour fabriquer une nouvelle collection, lisez les commentaires guides d'utilisation dans le module MGigogne
 

FCMLE44

XLDnaute Impliqué
Supporter XLD
Bonjour

Lorsque je mets mes données réelles, j'obtiens le message suivant

Erreur excéution 1004
Vous avez tapé un nom de feuille ou de graphique non valide

Il crée bien les feuilles mais ne mets pas à jour le récapitulatif

Morceau du code où se trouve l'erreur
VB:
F = F + 1: Set FDest = .Item(F): FDest.Name = NomFeui: End With

Sauriez vous d'où ça peut venir
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 904
Membres
101 834
dernier inscrit
Jeremy06510