Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.
  • Initiateur de la discussion Initiateur de la discussion Ophé
  • 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 !

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 :

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é
 
Re : TCD par macro

re,

Quelques commentaires en bonus
et en rouge la ligne ajoutee pour les champs de donnees.
Pour la mise en page, je ne sais pas, je n'ai pas 2007.

Code:
Option Explicit

Sub TCD()
    Dim ShtSrc As Worksheet, ShtDst As Worksheet
    
    Application.ScreenUpdating = False
        Set ShtSrc = ActiveSheet ' "Memorisation" de la feuille active
        
        If ShtSrc.Range("A65536").End(xlUp).Row > 1 Then ' Verification qu'il y a des donnees dans la feuille active
            ' Suppression de l'ancien TCD pour le mois, si il existe deja
            On Error Resume Next
                Application.DisplayAlerts = False
                ThisWorkbook.Sheets("TCD " & ShtSrc.Name).Delete
                Application.DisplayAlerts = True
            On Error GoTo 0
            
            Set ShtDst = Sheets.Add ' Ajout d'une feuille pour le TCD
            ShtDst.Name = "TCD " & ShtSrc.Name ' Nommage de la feuille en ajoutant le mois
            
            'Creation du TCD
            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)
                .PivotFields("Stat ").Orientation = xlRowField ' mise en ligne du champ Stat
                
                 ' ajout des champs de donnees
                .AddDataField .PivotFields("Ventes        "), "Somme de Ventes", xlSum
                .AddDataField .PivotFields("LivrÚe       "), "Somme de Livrée", xlSum
                [COLOR=Red].DataPivotField.Orientation = xlColumnField[/COLOR] ' mise en colonne des champs de donnees
            End With
            
            ThisWorkbook.ShowPivotTableFieldList = False ' fermeture de la fenetre de selection de champs
            
            Set ShtDst = Nothing
        End If
        Set ShtSrc = Nothing
    Application.ScreenUpdating = True
End Sub
++
Minick

EDIT: pour la mise en page je viens de voir que tu avais regle le probleme.
 
- 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

Discussions similaires

Réponses
1
Affichages
730
Réponses
1
Affichages
2 K
Compte Supprimé 979
C
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…