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 SubD'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 SubBonjour,
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