Problème création TCD VBA

Bonjour,

Je me permets de vous solliciter car j'ai un problème avec la création d'un TCD.

Je suis parti de l'enregistreur de macro. J'ai adapté le code pour que la sélection soit dynamique mais...rien à faire...

Je commence à me tirer les cheveux ...

Voici mon code, si un compère aurait une idée de mon erreur...je suis preneur ...

Sub Macro3()
'
' Macro3 Macro
'

'
'Annule toutes les alertes Excel
    'Application.DisplayAlerts = False
    'Workbooks.Add
    'ActiveWorkbook.SaveAs Filename:="D:\Profile\JeJEAUNET.000\Desktop\Documents présents sur le bureau\Statistique_apprentissage\Traitements effectifs conventionnés\Sorties\UL\BASEULdate.xls" _
        , FileFormat:=xlExcel8, Password:="", WriteResPassword:=""
    'Windows("test.xml").Activate
    'Range("A1").CurrentRegion.Select
    'Selection.Copy
    'Windows("BASEULdate").Activate
    'Range("A1").Select
    'ActiveSheet.Paste
    'Application.CutCopyMode = False
    'Windows("test.xml").Activate
    'ActiveWorkbook.Close False

    Sheets(1).Name = "apprentis_placesconv"
    Sheets(2).Name = "apprentis_en_lycee"
    Sheets(3).Name = "taux remplissage"

    Range("A1").Select
    ActiveWorkbook.Names.Add "TABLE_TCD", Range("A1").CurrentRegion
    Selection.CurrentRegion.Select
    ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "TABLE_TCD", Version:=xlPivotTableVersion10).CreatePivotTable _
        TableDestination:="apprentis_en_lycee!R1C1", TableName:= _
        "TCD", DefaultVersion:=xlPivotTableVersion10
    Sheets("apprentis_en_lycee").Select
    Cells(1, 1).Select

End Sub

D'avance merci.

Bonne soirée.

Bonjour,

pourquoi dynamique par macro ?

Si tu sélectionnes les colonnes entières il prend toutes lignes.

Et si tu ne peux pas, tu peux faire ton TCD en utilisant des noms dynamiques.

Il a quoi de spécial ton TCD pour ne pas pouvoir utiliser une de ces 2 méthodes ?

Mettre un code qui ne fait pas du tout ce que tu veux n'aide pas beaucoup à comprendre ton besoin...

eric

Bonjour,

Sans grande conviction. A tester.

La procédure doit être lancée de la feuille comportant les données.

Cdlt.

Public Sub DEMO()
Dim wsData As Worksheet, wsPT As Worksheet
Dim rngData As Range
Dim ptCache As PivotCache
Dim pt As PivotTable

    Application.ScreenUpdating = False

    Set wsData = ActiveSheet
    Set wsPT = Worksheets("apprentis_en_lycee")

    Set rngData = wsData.Range("A1").CurrentRegion

    Set ptCache = ActiveWorkbook.PivotCaches.Create(xlDatabase, rngData, 2)
    Set pt = ptCache.CreatePivotTable(wsPT.Cells(1), "TCD", , 2)
    pt.ManualUpdate = True
    ' ton code
    '
    '
    pt.ManualUpdate = False

    With wsPT
        .Activate
        .[A1].Select
    End With

    Set pt = Nothing
    Set ptCache = Nothing
    Set rngData = Nothing
    Set wsPT = Nothing: Set wsData = Nothing

End Sub

Bonjour,

Je souhaite que la sélection soit dynamique puisque c'est une base semestrielle, qui évolue. J'automatise une partie des traitements sous SAS et je finis en VBA. Je vais effectivement regarder en prenant l'ensemble des colonnes dans la sélection pour voir ce que cela donne.

Je vais également jeter un petit coup d’œil au bout de code.

Je vous remercie tous les deux pour vos différents apports.

Bonjour,

ça devrait le faire, sinon tu as les noms dynamiques où tu définis tes plages par formule.

eric

Rechercher des sujets similaires à "probleme creation tcd vba"