j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais
deux différents classements par macro: la macro change les données affichées
de "somme de" à "nombre de", change le titre et classe les éléments par ordre
décroissant.
Seulement, je ne voudrais faire apparaitre que les 100 premiers du
classement, toujours dans ma macro, sachant que ce ne sont pas forcément les
mêmes selon si on veut par somme ou par nombre.
j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code
lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas
effacer de données d'un tcd...
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
michdenis
Bonjour Rags,
Pour Rafraîchir ton TDC si tu modifies l'allure de ton tableau source ...
cette macro fut publié par Published by Debra Dalgleish 21 Juin 2003 et améliorer par Daniel Maher.
'------------------------------------------------- Sub DeleteOldItemsWB() 'gets rid of unused items in PivotTable based on MSKB (Q202232) 'had to go through procedure twice to clear items (for i= 1 to 2) ' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro) Application.ScreenUpdating = False ' Désactiver le calcul automatique Application.Calculation = xlManual Application.CalculateBeforeSave = False ' Déclarer les variables Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim i As Integer ' Supprimer les éléments de tous les champs, 'de tous les tableaux croisés dynamiques On Error Resume Next For i = 1 To 2 For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables For Each pf In pt.PivotFields For Each pi In pf.PivotItems pi.Delete Next Next pt.RefreshTable Next Next Next ' Activer l'actualisation de l'écran Application.ScreenUpdating = True ' Activer le calcul automatique Application.Calculation = xlAutomatic Application.CalculateBeforeSave = True Msg = Msg & "La macro est terminée !" MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes d'un tableau croisé dynamique" End Sub '-------------------------------------------------
Salutations!
"Rags" a écrit dans le message de news: bonjour,
j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais deux différents classements par macro: la macro change les données affichées de "somme de" à "nombre de", change le titre et classe les éléments par ordre décroissant. Seulement, je ne voudrais faire apparaitre que les 100 premiers du classement, toujours dans ma macro, sachant que ce ne sont pas forcément les mêmes selon si on veut par somme ou par nombre. j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas effacer de données d'un tcd...
Quelqu'un aurait-il une solution?
Merci d'avance
Bonjour Rags,
Pour Rafraîchir ton TDC si tu modifies l'allure de ton tableau source ...
cette macro fut publié par
Published by Debra Dalgleish 21 Juin 2003
et améliorer par Daniel Maher.
'-------------------------------------------------
Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable based on MSKB (Q202232)
'had to go through procedure twice to clear items (for i= 1 to 2)
' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro)
Application.ScreenUpdating = False
' Désactiver le calcul automatique
Application.Calculation = xlManual
Application.CalculateBeforeSave = False
' Déclarer les variables
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer
' Supprimer les éléments de tous les champs,
'de tous les tableaux croisés dynamiques
On Error Resume Next
For i = 1 To 2
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
pi.Delete
Next
Next
pt.RefreshTable
Next
Next
Next
' Activer l'actualisation de l'écran
Application.ScreenUpdating = True
' Activer le calcul automatique
Application.Calculation = xlAutomatic
Application.CalculateBeforeSave = True
Msg = Msg & "La macro est terminée !"
MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes d'un tableau croisé dynamique"
End Sub
'-------------------------------------------------
Salutations!
"Rags" <Rags@discussions.microsoft.com> a écrit dans le message de news: 37D31BB7-E1A8-481C-B989-A93766FF4516@microsoft.com...
bonjour,
j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais
deux différents classements par macro: la macro change les données affichées
de "somme de" à "nombre de", change le titre et classe les éléments par ordre
décroissant.
Seulement, je ne voudrais faire apparaitre que les 100 premiers du
classement, toujours dans ma macro, sachant que ce ne sont pas forcément les
mêmes selon si on veut par somme ou par nombre.
j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code
lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas
effacer de données d'un tcd...
Pour Rafraîchir ton TDC si tu modifies l'allure de ton tableau source ...
cette macro fut publié par Published by Debra Dalgleish 21 Juin 2003 et améliorer par Daniel Maher.
'------------------------------------------------- Sub DeleteOldItemsWB() 'gets rid of unused items in PivotTable based on MSKB (Q202232) 'had to go through procedure twice to clear items (for i= 1 to 2) ' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro) Application.ScreenUpdating = False ' Désactiver le calcul automatique Application.Calculation = xlManual Application.CalculateBeforeSave = False ' Déclarer les variables Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim i As Integer ' Supprimer les éléments de tous les champs, 'de tous les tableaux croisés dynamiques On Error Resume Next For i = 1 To 2 For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables For Each pf In pt.PivotFields For Each pi In pf.PivotItems pi.Delete Next Next pt.RefreshTable Next Next Next ' Activer l'actualisation de l'écran Application.ScreenUpdating = True ' Activer le calcul automatique Application.Calculation = xlAutomatic Application.CalculateBeforeSave = True Msg = Msg & "La macro est terminée !" MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes d'un tableau croisé dynamique" End Sub '-------------------------------------------------
Salutations!
"Rags" a écrit dans le message de news: bonjour,
j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais deux différents classements par macro: la macro change les données affichées de "somme de" à "nombre de", change le titre et classe les éléments par ordre décroissant. Seulement, je ne voudrais faire apparaitre que les 100 premiers du classement, toujours dans ma macro, sachant que ce ne sont pas forcément les mêmes selon si on veut par somme ou par nombre. j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas effacer de données d'un tcd...
Quelqu'un aurait-il une solution?
Merci d'avance
Rags
merci michdenis, mais en fait je crois que j'ai mal expliqué mon soucis: pour faire au plus simple, je voudrais juste afficher les 100 premiers éléments d'un tcd qui compte plus de lignes que ça. y a-t-il une fonction qui permette de choisir ce qu'on veut afficher sur un tcd? le nombre de lignes en l'occurence?
merci! (j'espère que mon explication est plus compréhensible ce coup ci!)
Bonjour Rags,
Pour Rafraîchir ton TDC si tu modifies l'allure de ton tableau source ...
cette macro fut publié par Published by Debra Dalgleish 21 Juin 2003 et améliorer par Daniel Maher.
'------------------------------------------------- Sub DeleteOldItemsWB() 'gets rid of unused items in PivotTable based on MSKB (Q202232) 'had to go through procedure twice to clear items (for i= 1 to 2) ' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro) Application.ScreenUpdating = False ' Désactiver le calcul automatique Application.Calculation = xlManual Application.CalculateBeforeSave = False ' Déclarer les variables Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim i As Integer ' Supprimer les éléments de tous les champs, 'de tous les tableaux croisés dynamiques On Error Resume Next For i = 1 To 2 For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables For Each pf In pt.PivotFields For Each pi In pf.PivotItems pi.Delete Next Next pt.RefreshTable Next Next Next ' Activer l'actualisation de l'écran Application.ScreenUpdating = True ' Activer le calcul automatique Application.Calculation = xlAutomatic Application.CalculateBeforeSave = True Msg = Msg & "La macro est terminée !" MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes d'un tableau croisé dynamique" End Sub '-------------------------------------------------
Salutations!
"Rags" a écrit dans le message de news: bonjour,
j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais deux différents classements par macro: la macro change les données affichées de "somme de" à "nombre de", change le titre et classe les éléments par ordre décroissant. Seulement, je ne voudrais faire apparaitre que les 100 premiers du classement, toujours dans ma macro, sachant que ce ne sont pas forcément les mêmes selon si on veut par somme ou par nombre. j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas effacer de données d'un tcd...
Quelqu'un aurait-il une solution?
Merci d'avance
merci michdenis, mais en fait je crois que j'ai mal expliqué mon soucis:
pour faire au plus simple, je voudrais juste afficher les 100 premiers
éléments d'un tcd qui compte plus de lignes que ça.
y a-t-il une fonction qui permette de choisir ce qu'on veut afficher sur un
tcd? le nombre de lignes en l'occurence?
merci! (j'espère que mon explication est plus compréhensible ce coup ci!)
Bonjour Rags,
Pour Rafraîchir ton TDC si tu modifies l'allure de ton tableau source ...
cette macro fut publié par
Published by Debra Dalgleish 21 Juin 2003
et améliorer par Daniel Maher.
'-------------------------------------------------
Sub DeleteOldItemsWB()
'gets rid of unused items in PivotTable based on MSKB (Q202232)
'had to go through procedure twice to clear items (for i= 1 to 2)
' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro)
Application.ScreenUpdating = False
' Désactiver le calcul automatique
Application.Calculation = xlManual
Application.CalculateBeforeSave = False
' Déclarer les variables
Dim ws As Worksheet
Dim pt As PivotTable
Dim pf As PivotField
Dim pi As PivotItem
Dim i As Integer
' Supprimer les éléments de tous les champs,
'de tous les tableaux croisés dynamiques
On Error Resume Next
For i = 1 To 2
For Each ws In ActiveWorkbook.Worksheets
For Each pt In ws.PivotTables
For Each pf In pt.PivotFields
For Each pi In pf.PivotItems
pi.Delete
Next
Next
pt.RefreshTable
Next
Next
Next
' Activer l'actualisation de l'écran
Application.ScreenUpdating = True
' Activer le calcul automatique
Application.Calculation = xlAutomatic
Application.CalculateBeforeSave = True
Msg = Msg & "La macro est terminée !"
MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes d'un tableau croisé dynamique"
End Sub
'-------------------------------------------------
Salutations!
"Rags" <Rags@discussions.microsoft.com> a écrit dans le message de news: 37D31BB7-E1A8-481C-B989-A93766FF4516@microsoft.com...
bonjour,
j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais
deux différents classements par macro: la macro change les données affichées
de "somme de" à "nombre de", change le titre et classe les éléments par ordre
décroissant.
Seulement, je ne voudrais faire apparaitre que les 100 premiers du
classement, toujours dans ma macro, sachant que ce ne sont pas forcément les
mêmes selon si on veut par somme ou par nombre.
j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code
lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas
effacer de données d'un tcd...
merci michdenis, mais en fait je crois que j'ai mal expliqué mon soucis: pour faire au plus simple, je voudrais juste afficher les 100 premiers éléments d'un tcd qui compte plus de lignes que ça. y a-t-il une fonction qui permette de choisir ce qu'on veut afficher sur un tcd? le nombre de lignes en l'occurence?
merci! (j'espère que mon explication est plus compréhensible ce coup ci!)
Bonjour Rags,
Pour Rafraîchir ton TDC si tu modifies l'allure de ton tableau source ...
cette macro fut publié par Published by Debra Dalgleish 21 Juin 2003 et améliorer par Daniel Maher.
'------------------------------------------------- Sub DeleteOldItemsWB() 'gets rid of unused items in PivotTable based on MSKB (Q202232) 'had to go through procedure twice to clear items (for i= 1 to 2) ' Désactiver l'actualisation de l'écran (exécution plus rapide de la macro) Application.ScreenUpdating = False ' Désactiver le calcul automatique Application.Calculation = xlManual Application.CalculateBeforeSave = False ' Déclarer les variables Dim ws As Worksheet Dim pt As PivotTable Dim pf As PivotField Dim pi As PivotItem Dim i As Integer ' Supprimer les éléments de tous les champs, 'de tous les tableaux croisés dynamiques On Error Resume Next For i = 1 To 2 For Each ws In ActiveWorkbook.Worksheets For Each pt In ws.PivotTables For Each pf In pt.PivotFields For Each pi In pf.PivotItems pi.Delete Next Next pt.RefreshTable Next Next Next ' Activer l'actualisation de l'écran Application.ScreenUpdating = True ' Activer le calcul automatique Application.Calculation = xlAutomatic Application.CalculateBeforeSave = True Msg = Msg & "La macro est terminée !" MsgBox Msg, vbInformatin, "Rafraîchir les listes déroulantes d'un tableau croisé dynamique" End Sub '-------------------------------------------------
Salutations!
"Rags" a écrit dans le message de news: bonjour,
j'ai une base de données d'au moins 200 lignes à partir de laquelle je fais deux différents classements par macro: la macro change les données affichées de "somme de" à "nombre de", change le titre et classe les éléments par ordre décroissant. Seulement, je ne voudrais faire apparaitre que les 100 premiers du classement, toujours dans ma macro, sachant que ce ne sont pas forcément les mêmes selon si on veut par somme ou par nombre. j'ai essayé avec l'enregistreur de macro, mais ça me donne le même code lorsque je fais "masquer" ou "del", ce qui ne marche pas car on ne peut pas effacer de données d'un tcd...