Je viens de m'initier à VBA sur Excel et je voudrais me faire la main sur une
idée de procédure : il s'agirait de convertir un tableau croisé dynamique en
tableau simple, pour récupérer les données sous ACCESS dans une table. Donc,
l'objectif c'est de transformer les intitulés de colonnes de mon tableau
croisé, en champs d'une nouvelle colonne.
Ex: tableau croisé avec les dépenses (le croisement) des établissements (en
ligne) et les années (en colonne). Moi je voudrais supprimer le croisement
pour obtenir une colonne avec le nom des établissements, une colonne avec
l'année, une colonne avec la dépense.
Quelle architecture pour la procédure, les grandes étapes ? Si quelqu'un
avait le code tout prêt, ce serait encore mieux !
C'est peut être ambitieux mon projet, mais on avance jamais autant que
lorsqu'on a un projet.
merci.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Trirème
Bonjour kolele
Tu peux t'inspirer de ce code trouvé dans Excelabo (Étiquettes persistantes) : http://www.excelabo.net/xl/tcd.php#vieillesetiquettes
--- début de citation Pour tenir compte des champs calculés ne pas oublier de rafraîchir le TCD avant de savoir s'il faut détruire. ' '===================== Sub DeleteOldItemsWB() 'gets rid of unused items in PivotTable ' based on MSKB (202232) Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim i As Integer
On Error Resume Next For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables pt.RefreshTable For Each pf In pt.PivotFields For Each pi In pf.PivotItems If pi.RecordCount = 0 And _ Not pi.IsCalculated Then pi.Delete End If Next Next Next Next End Sub
--- fin de citation
Il parcourt tous les TCD de toutes les feuilles, mais les boucles les plus internes peuvent t'inspirer pour collecter chaque item de chaque champ dans une liste. Liste que tu exploiteras par la suite.
Bonne continuation pour le projet. Cordialement Trirème
Je viens de m'initier à VBA sur Excel et je voudrais me faire la main sur une idée de procédure : il s'agirait de convertir un tableau croisé dynamique en tableau simple, pour récupérer les données sous ACCESS dans une table. Donc, l'objectif c'est de transformer les intitulés de colonnes de mon tableau croisé, en champs d'une nouvelle colonne. Ex: tableau croisé avec les dépenses (le croisement) des établissements (en ligne) et les années (en colonne). Moi je voudrais supprimer le croisement pour obtenir une colonne avec le nom des établissements, une colonne avec l'année, une colonne avec la dépense. Quelle architecture pour la procédure, les grandes étapes ? Si quelqu'un avait le code tout prêt, ce serait encore mieux ! C'est peut être ambitieux mon projet, mais on avance jamais autant que lorsqu'on a un projet. merci.
Bonjour kolele
Tu peux t'inspirer de ce code trouvé dans Excelabo (Étiquettes
persistantes) :
http://www.excelabo.net/xl/tcd.php#vieillesetiquettes
--- début de citation
Pour tenir compte des champs calculés ne pas oublier de rafraîchir le
TCD avant de savoir s'il
faut détruire.
'
'===================== Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable
' based on MSKB (202232)
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer
On Error Resume Next
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
pt.RefreshTable
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
If pi.RecordCount = 0 And _
Not pi.IsCalculated Then
pi.Delete
End If
Next
Next
Next
Next
End Sub
--- fin de citation
Il parcourt tous les TCD de toutes les feuilles, mais les boucles les
plus internes peuvent t'inspirer pour collecter chaque item de chaque
champ dans une liste. Liste que tu exploiteras par la suite.
Bonne continuation pour le projet.
Cordialement
Trirème
Je viens de m'initier à VBA sur Excel et je voudrais me faire la main sur une
idée de procédure : il s'agirait de convertir un tableau croisé dynamique en
tableau simple, pour récupérer les données sous ACCESS dans une table. Donc,
l'objectif c'est de transformer les intitulés de colonnes de mon tableau
croisé, en champs d'une nouvelle colonne.
Ex: tableau croisé avec les dépenses (le croisement) des établissements (en
ligne) et les années (en colonne). Moi je voudrais supprimer le croisement
pour obtenir une colonne avec le nom des établissements, une colonne avec
l'année, une colonne avec la dépense.
Quelle architecture pour la procédure, les grandes étapes ? Si quelqu'un
avait le code tout prêt, ce serait encore mieux !
C'est peut être ambitieux mon projet, mais on avance jamais autant que
lorsqu'on a un projet.
merci.
Tu peux t'inspirer de ce code trouvé dans Excelabo (Étiquettes persistantes) : http://www.excelabo.net/xl/tcd.php#vieillesetiquettes
--- début de citation Pour tenir compte des champs calculés ne pas oublier de rafraîchir le TCD avant de savoir s'il faut détruire. ' '===================== Sub DeleteOldItemsWB() 'gets rid of unused items in PivotTable ' based on MSKB (202232) Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim i As Integer
On Error Resume Next For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables pt.RefreshTable For Each pf In pt.PivotFields For Each pi In pf.PivotItems If pi.RecordCount = 0 And _ Not pi.IsCalculated Then pi.Delete End If Next Next Next Next End Sub
--- fin de citation
Il parcourt tous les TCD de toutes les feuilles, mais les boucles les plus internes peuvent t'inspirer pour collecter chaque item de chaque champ dans une liste. Liste que tu exploiteras par la suite.
Bonne continuation pour le projet. Cordialement Trirème
Je viens de m'initier à VBA sur Excel et je voudrais me faire la main sur une idée de procédure : il s'agirait de convertir un tableau croisé dynamique en tableau simple, pour récupérer les données sous ACCESS dans une table. Donc, l'objectif c'est de transformer les intitulés de colonnes de mon tableau croisé, en champs d'une nouvelle colonne. Ex: tableau croisé avec les dépenses (le croisement) des établissements (en ligne) et les années (en colonne). Moi je voudrais supprimer le croisement pour obtenir une colonne avec le nom des établissements, une colonne avec l'année, une colonne avec la dépense. Quelle architecture pour la procédure, les grandes étapes ? Si quelqu'un avait le code tout prêt, ce serait encore mieux ! C'est peut être ambitieux mon projet, mais on avance jamais autant que lorsqu'on a un projet. merci.