A voir également:
- VBA - Date dans un tcd en vba vs date dans un tcd manuel
- Tcd excel - Guide
- Comment ouvrir un fichier dat - Guide
- Manuel d'utilisation - Guide
- Find vba - Astuces et Solutions
5 réponses
danielc0
Messages postés
1352
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 décembre 2024
155
16 oct. 2024 à 21:08
16 oct. 2024 à 21:08
Bonjour,
Peux-tu partager le classeur en anonymisant les données confidentielles
Pour le partager, clique sur :
https://www.cjoint.com/
Clique sur le bouton "parcourir". Choisis le fichier à partager. Dans le bas de la page, clique sur le bouton "Créer le lien cjoint". Copie le lien affiché et colle-le dans ta réponse.
Daniel
danielc0
Messages postés
1352
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 décembre 2024
155
17 oct. 2024 à 18:01
17 oct. 2024 à 18:01
... Plus simple :
PivField.AutoGroup
Daniel
Bonjour,
Bien sûr et merci du temps consacré:
En suivi(2) le résultat que j'obtiens en le faisant manuellement en sachant que normalement je retirerais trimestre
Il s'agit de la macro CreerTCDsuivi
https://www.cjoint.com/c/NJqucYq4RK2
Merciiiiiiiiiiiiii beaucoup
danielc0
Messages postés
1352
Date d'inscription
mardi 5 juin 2018
Statut
Membre
Dernière intervention
25 décembre 2024
155
17 oct. 2024 à 12:59
17 oct. 2024 à 12:59
Bonjour,
Essaie :
Sub CreerTCDSuivi() Dim wsSuivi As Worksheet Dim wsIEP As Worksheet Dim DerniereLigne As Long Dim DerniereColonne As Long Dim PlageTCD As Range Dim PTCache As PivotCache Dim PT As PivotTable Dim PivField As PivotField ' Définir les feuilles Set wsSuivi = Worksheets("suivi") Set wsIEP = Worksheets("IEP") ' Trouver la dernière ligne et la dernière colonne remplie dans la feuille IEP DerniereLigne = wsIEP.Cells(wsIEP.Rows.Count, 1).End(xlUp).Row DerniereColonne = wsIEP.Cells(1, wsIEP.Columns.Count).End(xlToLeft).Column ' Définir la plage de données pour le TCD Set PlageTCD = wsIEP.Range(wsIEP.Cells(1, 1), wsIEP.Cells(DerniereLigne, DerniereColonne)) ' Effacer tout TCD existant sur la feuille "suivi" wsSuivi.Cells.Clear ' Créer le cache de pivot table Set PTCache = ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:=PlageTCD) ' Créer le tableau croisé dynamique dans la cellule A1 de la feuille "suivi" Set PT = PTCache.CreatePivotTable(TableDestination:=wsSuivi.Cells(1, 1), TableName:="TCDSuivi") ' Ajouter le champ "Gestionnaire" aux lignes et filtrer pour exclure "(vide)" Set PivField = PT.PivotFields("Gestionnaire") PivField.Orientation = xlRowField ' Ajouter le champ "Etat de la facturation" aux lignes et appliquer les filtres Set PivField = PT.PivotFields("Etat de la facturation") PivField.Orientation = xlRowField With PivField .PivotItems("Complètement facturé : pas de nouvelles séances").Visible = False .PivotItems("Totalement facturé mais bloqué en P").Visible = False .PivotItems("Reste des séances à facturer").Visible = False End With ' Ajouter "Date Entrée - Venue/Passage dd/mm/yyyy" aux colonnes Set PivField = PT.PivotFields("Date Entrée - Venue/Passage dd/mm/yyyy") PivField.Orientation = xlColumnField PivField.DataRange.Cells(1).Group Start:=True, End:=True, Periods:=Array(False, False, False, _ False, False, False, True) ' Désactiver les formats automatiques (comme le trimestre) On Error Resume Next PivField.ClearAllFilters On Error GoTo 0 ' Vérifier si le champ est de type date et activer le groupement par années et mois If IsDate(wsIEP.Range("A2").Value) Then PivField.PivotItems.Group Start:=True, End:=True, Periods:=Array(False, False, False, True, True) ' Année et Mois End If ' Ajouter "IEP - Venue/Passage" dans les valeurs et paramétrer comme Nombre Set PivField = PT.PivotFields("IEP - Venue/Passage") PivField.Orientation = xlDataField PivField.Function = xlCount ' Nombre de "IEP - Venue/Passage" PivField.NumberFormat = "#,##0" ' Format du nombre End Sub
J'ai ajouté :
PivField.DataRange.Cells(1).Group Start:=True, End:=True, Periods:=Array(False, False, False, _ False, False, False, True)
Après :
Set PivField = PT.PivotFields("Date Entrée - Venue/Passage dd/mm/yyyy") PivField.Orientation = xlColumnField
Daniel
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question