VBA Personnaliser TCD

Bonjour,

Sur le même classeur, je veux réaliser un TCD avec Macro VBA, mais j'ai ces deux contraintes :

Le nom de la feuille de destination pour insérer le TCD change à chaque fois.

Le nom de la feuille source du TCD change à chaque fois.

J'ai essayé avec NomFeuille mais ça ne marche pas.

Comment modifier la Macro pour avoir une simple formule indépendamment du nom de la feuille d'insertion et du nom de feuille source?

Sub TCD()

Dim NomFeuille As String    'Feuille source qui peut changer

    NomFeuille = "Test_" & "*"

    Sheets.Add 

ThisWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
        "'" & NomFeuille & "'!R1C1:R1000C3", Version:=6).CreatePivotTable _
        TableDestination:="Feuil2!R3C1", TableName:="TCD Test", _                'Feuille d'insertion qui peut changer
        DefaultVersion:=6
Sheets("Feuil2").Select
Cells(3, 1).Select
'
'
'
End Sub

Merci par avance pour votre retour.

Bonjour,
Un peu confus !?
Pour le principe :

Sub Creer_TCD()
Dim wb As Workbook
Dim wsData As Worksheet, wsPT As Worksheet
Dim rngData As Range
Dim PTCache As PivotCache, PT As PivotTable

    Set wb = ThisWorkbook

    Set wsData = wb.Worksheets("Feuil1")
    Set rngData = wsData.Cells(1).CurrentRegion

    Set wsPT = wb.Worksheets.Add
    wsPT.Name = "TCD xxx"

    Set PTCache = wb.PivotCaches.Create(xlDatabase, rngData)
    Set PT = PTCache.CreatePivotTable(wsPT.Cells(1, 3), "TCD_1")

    With PT
        '...
        '...
    End With

End Sub

Bonjour,

Je vous remercie pour votre réponse.

Mais c'est un peu compliqué à mettre en place.

Merci.

Bonjour,
Quelles sont les difficultés ?
Joins un fichier pour une aide adaptée.
Cdlt.

Bonjour,

Ci-attaché mon fichier Excel test.

En faite pour n'importe quel TCD effectué, ce qui est important pour moi sont deux points :

Le nom de la feuille sur laquelle y aura le TCD n'est pas toujours le même donc peut changer

Le nom de la feuille du tableau source n'est pas toujours le même donc peut changer

SVP j'ai besoin donc d'un code standard de déclaration TCD et ceci quelque soit le nom des deux feuilles.

Merci par avance pour votre retour.

25tcd-test.xlsx (64.06 Ko)

Bonjour,
Une nouvelle proposition !?
A te relire.
Cdlt.

12tcd-test.xlsm (71.41 Ko)
Option Explicit

' Création TCD à partir de la feuille active.'
' Touche de raccourci du clavier: Ctrl+m

Public Sub Create_PT()
'Declaration des variables
Dim wb As Workbook
Dim wsSource As Worksheet, rngSource As Range
Dim wsPT As Worksheet
Dim nmSource As String, nmPT As String
Dim PTCache As PivotCache, PT As PivotTable

    'Initialisation des variables
    '--------------------------------------------------------------------
    'Nom classeur actif
    Set wb = ThisWorkbook
    'Feuille active
    Set wsSource = ActiveSheet
    'Nom feuille active
    nmSource = wsSource.Name
    'Source du tableau croisé dynamique à créer
    Set rngSource = wsSource.Cells(1).CurrentRegion
    '--------------------------------------------------------------------
    'Création du cache du tableau croisé dynamique
    Set PTCache = wb.PivotCaches.Create(xlDatabase, rngSource)
    'Ajout nouvelle feuille
    Set wsPT = wb.Worksheets.Add
    'Nom nouvelle feuille et du tableau croisé dynamique ?
    wsPT.Name = "PT " & nmSource
    'Creation tableau croisé dynamique
    Set PT = PTCache.CreatePivotTable(wsPT.Cells(3, 1), wsPT.Name)

End Sub

Bonjour,

C'est ok

J'ai modifié un peu le code pour minimiser les variables

Je vous remercie infiniment pour vos réponses

Cordialement.

Rechercher des sujets similaires à "vba personnaliser tcd"