TCD avec plage variable

  • Initiateur de la discussion Initiateur de la discussion bubus31
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

B

bubus31

Guest
Bonjour,

j'essaie de faire une macro pour créer un tableau croisé dynamique avec une plage de données variable. Voici ma macro qui ne fonctionne pas:
Sub macro()
Sheets("Liste pièces").Select
Dim lignefin As Integer
Dim colfin As Integer
Dim lignedep As Integer
Dim coldep As Integer
lignefin = Cells(1, 1).CurrentRegion.Rows.Count
colfin = Cells(1, 1).CurrentRegion.Columns.Count
lignedep = 7
coldep = 2
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
"'Liste pièces'!R" & lignedep & "C" & coldep & ":R" & lignefin & "C" & colfin).CreatePivotTable TableDestination:="", _
TableName:="Tableau croisé dynamique1"
ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
ActiveSheet.Cells(3, 1).Select
ActiveSheet.PivotTables("Tableau croisé dynamique1").SmallGrid = False

End Sub


Quelqu'un pourrait m'aider a determiner ce qui cloche??
merci beaucoup!!

Bubus
 
Re : TCD avec plage variable

Bonjour,
Avec les TCD, je procède comme suit :
Je nomme ma plage BD avant la création pour mettre ce nom à pour SourceData et je donne un nom TCD au lieu de "Tableau croisé dynamique1" pour TableName

Code:
 Range("A1").CurrentRegion.Select
    ActiveWorkbook.Names.Add Name:="BD", RefersToR1C1:=Selection
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
                                   "BD").CreatePivotTable _
                                   TableDestination:="", TableName:="TCD", _
                                   DefaultVersion:=xlPivotTableVersion10
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
 
Re : TCD avec plage variable

Bonjour,

merci pour la reponse!
mais je ne comprend pas vraiment en fait...si par exemple je rajoute une ligne ou plusieurs à mon tableau, est ce qu'il va automatiquement le detecter et les inserer ou je vais devoir lui definir les limites de ma plage?

merci bien,


Bubus
 
Re : TCD avec plage variable

Rebonjour Eric,

en fait ta macro correspond tout a fait a ce que je recherche. Par contre elle ne reconnait pas "DefaultVersion:=xlPivotTableVersion10", là elle me met un message d'erreur...

Tu ne sais pas pourquoi?

Merci d'avance,

cordialement,


Bubus
 
Re : TCD avec plage variable

Bonjour,
C'est vrai que sous XL 2000 c'est différent.
Voici en exemple avec 3 colonnes
Code:
Sub ConstruitTCD()
Range("A1").CurrentRegion.Select
ActiveWorkbook.Names.Add "BD", RefersToR1C1:=Selection
    ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
        "BD").CreatePivotTable TableDestination:="", TableName:= _
        "TCD"
    ActiveSheet.PivotTableWizard TableDestination:=ActiveSheet.Cells(3, 1)
     ActiveSheet.Cells(3, 1).Select
        ActiveSheet.PivotTables("TCD").AddFields RowFields:="A" _
        , ColumnFields:="B"
    ActiveSheet.PivotTables("TCD").PivotFields("C"). _
        Orientation = xlDataField
End Sub
 
Re : TCD avec plage variable

Bonjour, j'ai suivi le script que vous fournissez mais j'aarive au message d'erreur suivant (voir photo)
Pouvez-vous m'aider ?

Capture.PNG
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    44.7 KB · Affichages: 238
  • Capture.PNG
    Capture.PNG
    44.7 KB · Affichages: 223
Re : TCD avec plage variable

Bonjour

Il est mieux de commencer une nouvelle conversation plutot que de continuer un fil datant de 2007 !
Quelle est la version d'excel ?
Si tu as une version 2007 ou plus, il te suffit de mettre le tableau de données source du TCD (la base) sous forme d'un vrai tableau excel (onglet accueil/style/mettre sous forme de tableau). Toute donnée ajoutée juste en dessous du tableau s'y ajoute automatiquement. Il te suffit alors d'actualiser le TCD, manuellement ou par macro. C'est tout et c'est ultr simple.
 
Re : TCD avec plage variable

Bonjour,

En réalité je dois créer une macro générant un tcd qui peut fonctionner
Pour chaque feuille de mon classeur.
Dans chaque feuille, le tableau de données n'est jamais le même, il n'a pas la même longueur, d'où la création d'une
Plage de sélection (ou la tentative...)..

Le début de mon script ressemble à la photo postée précédemment et ça ne fonctionne pas..
Je suis sur excel 2010!
D'avance merci!
 
Re : TCD avec plage variable

Les tableaux portent un nom. Tu peux les nommer en référence à la feuille si ça t'arrange. Par exemple sur la feuille 1 tu appelles ton tableau base de données BDD1. Dans ton code il te suffit alors de récupérer le nom de la feuille et de créer ton TCD1 en utilisant le nom BDD1 comme source. L'avantage est double : 1) même si tes bdd n'ont pas le même nombr de lignes ou de colonnes cela fonctionne.
2) une fois créé avec ce tableau ton TCD prendra en compte les modifs de ce la base.
plus d'infos sur le tableaux
Ce lien n'existe plus

Par ailleurs, si tu avais posé ta question dans un nouveau fil tu aurais eu l'occasion de lire qu'ici il est fortement conseillé de joindre un petit classeur exemple (et pas une image) pour illustrer ta question et permettre aux répondeurs éventuels de tester.
 
Re : TCD avec plage variable

Bonjour à tous,

Dans le même ordre d'idée j'ai essayé de modifier le code exécuté à partir de l'enregistrement d'une macro mais là bernic !

Dans un bon de livraison dont je ne connais pas le nb de ligne, Je souhaite effectuer un TCD avant que ma macro ne fasse des sous totaux.
Mais à chaque fois, la macro insère des lignes alors que je voudrais qq ch de plus simple tenant sur 5 lignes. mouh ....😛.

Une piste, un petit coup de main serait le bienvenu cela permettrait de le mettre à dispo de mes collègues de la "prod"
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

D
  • Question Question
Réponses
1
Affichages
743
M
Réponses
2
Affichages
3 K
C
Réponses
23
Affichages
4 K
Charles78
C
V
Réponses
69
Affichages
9 K
V
Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Retour