TCD par macro

Ophé

XLDnaute Junior
Bonjour le forum,

une dernière demande pour un tableau croisé dynamique,
je souhaite que lorsque je me met sur une feuille par activation de la macro un tableau croisé dynamique s'effectue.

Mon code donne ça :
Sub TCD()
'
' TCD Macro
'

'
Selection.CurrentRegion.Select
Sheets.Add
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
"JANVIER!L1C1:L362C27", Version:=xlPivotTableVersion12).CreatePivotTable _
TableDestination:="Feuil2!L3C1", TableName:="Tableau croisé dynamique2", _
DefaultVersion:=xlPivotTableVersion12
Sheets("Feuil2").Select
Cells(3, 1).Select
ActiveWorkbook.ShowPivotTableFieldList = True
With ActiveSheet.PivotTables("Tableau croisé dynamique2").PivotFields("Stat ")
.Orientation = xlRowField
.Position = 1
End With
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("Ventes "), _
"Somme de Ventes ", xlSum
ActiveSheet.PivotTables("Tableau croisé dynamique2").AddDataField ActiveSheet. _
PivotTables("Tableau croisé dynamique2").PivotFields("LivrÚe "), _
"Somme de LivrÚe ", xlSum
ActiveWorkbook.ShowPivotTableFieldList = False
ActiveWindow.SmallScroll Down:=0
End Sub

Mon problème est que il n'accepte que pour une feuille donnée (données colorées), je voudrais que ce même TCD se fasse quelque soit la feuille.

Avez-vous une solution??
Merci d'avance.

Ophé
 

Ophé

XLDnaute Junior
Re : TCD par macro

Je joins un fichier pour que ce soit plus simple.

Je souhaite pouvoir effectuer un tableau croisé dynamique par mois (chaque mois étant sur une feuille), au moment où je le décide pour le mois que je choisis également.
Comment puis-je faire?

(le tableau croisé dynamique a les stat en ligne et les ventes et les livrées en valeur)

Merci d'avance.

Ophé
 

Pièces jointes

  • ex commerciaux.xls
    46.5 KB · Affichages: 61
  • ex commerciaux.xls
    46.5 KB · Affichages: 73
  • ex commerciaux.xls
    46.5 KB · Affichages: 73

Minick

XLDnaute Impliqué
Re : TCD par macro

Salut,

Essais ceci:
Code:
Option Explicit

Sub TCD()
    Dim ShtSrc As Worksheet, ShtDst As Worksheet
    
    Application.ScreenUpdating = False
        Set ShtSrc = ActiveSheet
        
        If ShtSrc.Range("A65536").End(xlUp).Row > 1 Then
            Set ShtDst = Sheets.Add
            
            On Error Resume Next
                Application.DisplayAlerts = False
                ThisWorkbook.Sheets("TCD " & ShtSrc.Name).Delete
                Application.DisplayAlerts = True
            On Error GoTo 0
            
            ShtDst.Name = "TCD " & ShtSrc.Name
            
            ThisWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
                "'" & ShtSrc.Name & "'!" & ShtSrc.UsedRange.Address).CreatePivotTable TableDestination:="'" & ShtDst.Name & "'!R1C1", TableName:="TCD " & ShtSrc.Name, DefaultVersion:=xlPivotTableVersion10
            With ShtDst.PivotTables(ShtDst.Name)
                With .PivotFields("Stat ")
                    .Orientation = xlRowField
                    .Position = 1
                End With
                
                .AddDataField .PivotFields("Ventes        "), "Somme de Ventes", xlSum
                .AddDataField .PivotFields("LivrÚe       "), "Somme de Livrée", xlSum
            End With
            
            ThisWorkbook.ShowPivotTableFieldList = False
            
            Set ShtDst = Nothing
        End If
        Set ShtSrc = Nothing
    Application.ScreenUpdating = True
End Sub

++
Minick
 

Ophé

XLDnaute Junior
Re : TCD par macro

Bonjour groota,

oui en effet cela fais partie de mon problème.

Ce fichier possède des feuilles par mois (JANVIER, FEVRIER ... etc),
le tableau est le même dans chacune des feuilles mais le nombre de lignes varient.

Je souhaite pouvoir faire un TCD sur une nouvelle feuille à chaque fois, en me mettant sur un mois voulu, et en fesant en sorte que la sélection se fassent quelque soit le nombre de lignes.

Merci !!
Cdlt

Ophé
 

groota

XLDnaute Nouveau
Re : TCD par macro

Bonjour groota,

oui en effet cela fais partie de mon problème.

Ce fichier possède des feuilles par mois (JANVIER, FEVRIER ... etc),
le tableau est le même dans chacune des feuilles mais le nombre de lignes varient.

Je souhaite pouvoir faire un TCD sur une nouvelle feuille à chaque fois, en me mettant sur un mois voulu, et en fesant en sorte que la sélection se fassent quelque soit le nombre de lignes.

Merci !!
Cdlt

Ophé


Si tu veux aller de la colonne A à la colonne P (par exemple) (peut importe le nombre de ligne), il faut que tu mette à la place de SourceData:= _
"JANVIER!L1C1:L362C27 : SourceData:= _ "JANVIER!A:p

Dis moi si ça marche
 

Ophé

XLDnaute Junior
Re : TCD par macro

Re,

désolée mais je n'aipas pu testé de suite!!

J'ai testé de changé mais ça ne fonctionne pas, ca me créer un beug.????

Et mon problème de changement de feuille selon le mois n'est pas réglé,

avez-vous une idée?

Merci d'avance

Ophé
 

Ophé

XLDnaute Junior
Re : TCD par macro

Bonjour, en effet cette macro marche parfaitement, mais comme d'habitude vous me direz j'ai encore un souci, je souhaite effectué cette macro sur 2007, d'habitude ça ne me pose pas de problème mais ici j'en ai un, il me marque erreur 400.

Faut-il modifier quelque chose dans le code??

Merci en tout cas, c'est génial !!!

Ophé
 

Ophé

XLDnaute Junior
Re : TCD par macro

Autant pour moi, ça fonctionne également sur 2007. J'avais un beug qui ne venais pas de ton code !!!

Merci à tous les 3 en tout cas !!!!

C'est parfait !!!!

Juste une petite demande mais c'est seulement si tu as le temps sinon je me débrouillerais, c'est pour commenter le code ?

Merci encore.

Ophé
 

Ophé

XLDnaute Junior
Re : TCD par macro

Re,

aïe si, j'ai un petit souci mais ce n'est pas gd chose (je pense), le tableau répète somme de livrées et de ventes, et je n'arrive pas a faire en sorte par le code de mettre les sommes de valeurs en étiquette de colonnes, comment faire???
Dans le même temps, une "mise en page" se met automatiquement sur 2007, je n'arrive pas à la mettre avec cette macro, est ce possible??

Merci encore

Ophé
 

Ophé

XLDnaute Junior
Re : TCD par macro

re,

j'ai trouvé pour le problème de la mise en page, il me reste le problème des étiquettes de données, je joins un fichier.

Merci

ophé
 

Pièces jointes

  • image.jpg
    image.jpg
    50.7 KB · Affichages: 56
  • image.jpg
    image.jpg
    50.7 KB · Affichages: 77
  • image.jpg
    image.jpg
    50.7 KB · Affichages: 70

Discussions similaires

Réponses
1
Affichages
535

Statistiques des forums

Discussions
312 490
Messages
2 088 875
Membres
103 980
dernier inscrit
grandmasterflash38