Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cocher "Afficher tout" dans un TCD

11 réponses
Avatar
coco74
Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco

10 réponses

1 2
Avatar
Daniel
Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco


Avatar
coco74
Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco







Avatar
MichDenis
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco







Avatar
Daniel
Salut Denis.
Pour mon info personnelle, quelle est la différence entre ton code et le
mien ?
Daniel
"MichDenis" a écrit dans le message de news:
uqV5JP$
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de
news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de
news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco











Avatar
MichDenis
A ) Un titre à ma procédure
B ) Utilisation de variables et déclaration de ces dernières.
C ) Absence dans mon code de : Var = pf.Name
D ) Utilisation de seulement un Next : Next Pi, Pf
au lieu de 2

C'est déjà pas mal ;-)))

Si les 2 procédures se plantent (attendons la réponse du demandeur)
le problème est ailleurs !

;-)




"Daniel" a écrit dans le message de news:
uw1CoW$
Salut Denis.
Pour mon info personnelle, quelle est la différence entre ton code et le
mien ?
Daniel
"MichDenis" a écrit dans le message de news:
uqV5JP$
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de
news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de
news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco











Avatar
coco74
Merci MichDenis

Le traitement est beaucoup trop long dû sans doute au trop grand nombre de
données à traiter ! Je vais donc devoir changer d'idée.
Je vais interdire l'enregistrement du classeur. Je sais quitter sans
enregistrer, mais comment interdire l'utilisation de la commande (et/ou du
bouton) Enregistrer ?

Merci d'avance
--
coco



Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco












Avatar
coco74
Effectivement le code plante aussi ici : Pi.Visible = True

Je ne vois pas ou celà peut coincer !

Dans un autre post que je viens d'envoyer, j'explique que le traitement est
trop long et que je pense qu'il vaut mieux interdire l'enregistrement du
classeur pour éviter de garder des infos décochées et de ne pas s'en
apercevoir lors d'une consulation ultérieure.


--
coco



A ) Un titre à ma procédure
B ) Utilisation de variables et déclaration de ces dernières.
C ) Absence dans mon code de : Var = pf.Name
D ) Utilisation de seulement un Next : Next Pi, Pf
au lieu de 2

C'est déjà pas mal ;-)))

Si les 2 procédures se plantent (attendons la réponse du demandeur)
le problème est ailleurs !

;-)




"Daniel" a écrit dans le message de news:
uw1CoW$
Salut Denis.
Pour mon info personnelle, quelle est la différence entre ton code et le
mien ?
Daniel
"MichDenis" a écrit dans le message de news:
uqV5JP$
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de
news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de
news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco

















Avatar
MichDenis
Est-ce possible de mettre ton fichier (seulement la feuille contenant ton tdc et quelques données)
sur cjoint.com et de publier l'adresse ici ...



"coco74" a écrit dans le message de news:

Effectivement le code plante aussi ici : Pi.Visible = True

Je ne vois pas ou celà peut coincer !

Dans un autre post que je viens d'envoyer, j'explique que le traitement est
trop long et que je pense qu'il vaut mieux interdire l'enregistrement du
classeur pour éviter de garder des infos décochées et de ne pas s'en
apercevoir lors d'une consulation ultérieure.


--
coco



A ) Un titre à ma procédure
B ) Utilisation de variables et déclaration de ces dernières.
C ) Absence dans mon code de : Var = pf.Name
D ) Utilisation de seulement un Next : Next Pi, Pf
au lieu de 2

C'est déjà pas mal ;-)))

Si les 2 procédures se plantent (attendons la réponse du demandeur)
le problème est ailleurs !

;-)




"Daniel" a écrit dans le message de news:
uw1CoW$
Salut Denis.
Pour mon info personnelle, quelle est la différence entre ton code et le
mien ?
Daniel
"MichDenis" a écrit dans le message de news:
uqV5JP$
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de
news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de
news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco

















Avatar
coco74
Difficile avec une source de données sur un serveur SQL. Par contre, jai deux
champs dynamiques en ligne, peut être est-ce la cause du problème.
De toute façon, j'abandonne cette idée et reste sur l'otion lecture seule du
fichier qui empêchera tout enregistrement d'éventuels décochages de données
des champs dynamiques en ligne. A ce sujet, je suis toujours preneur d'une
ligne code qui permetrait de rendre inopétante la fonction "Enregistrer".

Merci encore.

Cordialement
--
coco



Est-ce possible de mettre ton fichier (seulement la feuille contenant ton tdc et quelques données)
sur cjoint.com et de publier l'adresse ici ...



"coco74" a écrit dans le message de news:

Effectivement le code plante aussi ici : Pi.Visible = True

Je ne vois pas ou celà peut coincer !

Dans un autre post que je viens d'envoyer, j'explique que le traitement est
trop long et que je pense qu'il vaut mieux interdire l'enregistrement du
classeur pour éviter de garder des infos décochées et de ne pas s'en
apercevoir lors d'une consulation ultérieure.


--
coco



A ) Un titre à ma procédure
B ) Utilisation de variables et déclaration de ces dernières.
C ) Absence dans mon code de : Var = pf.Name
D ) Utilisation de seulement un Next : Next Pi, Pf
au lieu de 2

C'est déjà pas mal ;-)))

Si les 2 procédures se plantent (attendons la réponse du demandeur)
le problème est ailleurs !

;-)




"Daniel" a écrit dans le message de news:
uw1CoW$
Salut Denis.
Pour mon info personnelle, quelle est la différence entre ton code et le
mien ?
Daniel
"MichDenis" a écrit dans le message de news:
uqV5JP$
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de
news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de
news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco






















Avatar
MichDenis
Si tu as quelques instants, essaie ceci :

'-------------------------------
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem
Dim ModeCalcul As String

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
ModeCalcul = Application.Calculation
Application.Calculation = xlCalculationManual
PT.ManualUpdate = True
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
Application.Calculation = ModeCalcul
PT.ManualUpdate = False
PT.RefreshTable

End Sub
'-------------------------------


"coco74" a écrit dans le message de news:

Difficile avec une source de données sur un serveur SQL. Par contre, jai deux
champs dynamiques en ligne, peut être est-ce la cause du problème.
De toute façon, j'abandonne cette idée et reste sur l'otion lecture seule du
fichier qui empêchera tout enregistrement d'éventuels décochages de données
des champs dynamiques en ligne. A ce sujet, je suis toujours preneur d'une
ligne code qui permetrait de rendre inopétante la fonction "Enregistrer".

Merci encore.

Cordialement
--
coco



Est-ce possible de mettre ton fichier (seulement la feuille contenant ton tdc et quelques données)
sur cjoint.com et de publier l'adresse ici ...



"coco74" a écrit dans le message de news:

Effectivement le code plante aussi ici : Pi.Visible = True

Je ne vois pas ou celà peut coincer !

Dans un autre post que je viens d'envoyer, j'explique que le traitement est
trop long et que je pense qu'il vaut mieux interdire l'enregistrement du
classeur pour éviter de garder des infos décochées et de ne pas s'en
apercevoir lors d'une consulation ultérieure.


--
coco



A ) Un titre à ma procédure
B ) Utilisation de variables et déclaration de ces dernières.
C ) Absence dans mon code de : Var = pf.Name
D ) Utilisation de seulement un Next : Next Pi, Pf
au lieu de 2

C'est déjà pas mal ;-)))

Si les 2 procédures se plantent (attendons la réponse du demandeur)
le problème est ailleurs !

;-)




"Daniel" a écrit dans le message de news:
uw1CoW$
Salut Denis.
Pour mon info personnelle, quelle est la différence entre ton code et le
mien ?
Daniel
"MichDenis" a écrit dans le message de news:
uqV5JP$
Sub AffichetTout()
Dim PT As PivotTable
Dim Pf As PivotField
Dim Pi As PivotItem

Set PT = ActiveSheet.PivotTables(1)
Application.ScreenUpdating = False
For Each Pf In PT.PivotFields
For Each Pi In Pf.PivotItems
Pi.Visible = True
Next Pi, Pf
PT.RefreshTable

End Sub





"coco74" a écrit dans le message de
news:

Merci Daniel,

Le code commence à fonctionner puis plante sur "Item.Visible = True"

Une idée ?
--
coco



Bonjour.
Essaie et adapte à ton tableau, selon le nom du ou ds champs :

With ActiveSheet.PivotTables("NomDuTableau")
For Each pf In .PivotFields
Var = pf.Name
For Each Item In pf.PivotItems
Item.Visible = True
Next Item
Next pf
End With

Cordialement.
Daniel

"coco74" a écrit dans le message de
news:

Bonjour à tous,

Je cherche à la fermeture du classeur à cocher "Afficher tout" dans les
différents champs en ligne de mon TCD. Si on utilise l'enregistreur de
macros, il nous liste tous les items en .visible=true.
Y-a-t'il moyen de faire plus simple sans lister les items ?

Merci de votre aide !
--
coco






















1 2