macro afficher valeur TCD une après l'autre pour impression separée

  • Initiateur de la discussion Initiateur de la discussion benjy555
  • 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 !

benjy555

XLDnaute Junior
Bonjour

Je cherche une macro qui permettrait d'afficher toutes les valeurs d'un TCD mais une après l'autre et entre chaque étape imprimer le TCD.

je m'explique :
Imaginons que sur mon TCD il y ait 10 lignes donc 10 valeurs affichées (sans aucun filtre en place).
Sur mon filtre de champs j'aurais donc 10 cases que je peux décocher ou cocher suivant l'affichage que je veux.
Je commence par cocher la première valeur uniquement donc les 9 autres se masquent.
A ce moment je veux imprimer le résultat obtenu sur le TCD

Puis, il faudrait que automatiquement le filtre passe à la valeurs suivante et imprime le résultat aussi

etc jusqu’à la dernière valeur du TCD

une idée ?

Je ne fais pas de fichier témoin car le concept s'applique à n'importe quelle base de donnée de plusieurs lignes ou on appliquerait un TCD
merci
 
Bonjour benjy,

voir fichier joint

à+
Philippe
bonjour

merci cela marche parfaitement
mais une question : quand il est écrit
For i = 1 To 10

Le 10 correspond à quoi ? au nombre de fois ou la manipulation doit etre reproduite ? car dans mon cas il y aura suivant les fois un nombre totalement variable de lignes dans le TCD et peu importe le nombre il faudra a chaque fois que toutes les lignes s'impriment une par une...

(désolé si c'est une question bête..)
 
Re-bonjour

mais une question : quand il est écrit
For i = 1 To 10

Le 10 correspond à quoi ?


c'est parce que la question initiale était:


Imaginons que sur mon TCD il y ait 10 lignes donc 10 valeurs affichées (sans aucun filtre en place).


avec ceci, il peut y avoir n'importe quel nombre de ligne
Code:
For i = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count

à+
Philippe
 

Pièces jointes

Re-bonjour




c'est parce que la question initiale était:





avec ceci, il peut y avoir n'importe quel nombre de ligne
Code:
For i = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count

à+
Philippe
ok en effet je n'ai pas été assez précis

en fait à chaque utilisation je n'aurais jamais le meme nombre de ligne donc je dois utilisation le fameux "count"

du coup j'imagine que pour le
For k = 1 To 10 j
e dois remplacer aussi par
For k = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count
 
Re,

du coup j'imagine que pour le
For k = 1 To 10 j
je dois remplacer aussi par
For k = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count

Bien vu, ma réponse a été faite dans la précipitation (deux petits-fils à la maison, ce n'est pas facile de concilier Excel, Papy gâteau et agent de police)

voici le code complet:
Code:
Sub Macro2()
Application.ScreenUpdating = False
' réactualisation du TCD avant impression
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotCache.Refresh

For i = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count
ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems(i).Visible = True
For k = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count
If k <> i Then
   ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems(k).Visible = False
End If
Next k
' impression
Range("H14:M17").PrintOut ' zone d'impression à adapter

' réaffichage
For k = 1 To ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems.Count
    With ActiveSheet.PivotTables("Tableau croisé dynamique1").PivotFields("MOMS").PivotItems(k).Visible = True
    End With
Next k
Application.ScreenUpdating = True
Range("H1").Select
End Sub

à+
Philippe
 
Je comprend tout à fait pas évident tout cela... quand vous aurez du temps j'ai malheureusement d'autres questions

J'ai tenté d'adapter à mon cas concret votre code mais la je bloque pour de bon alors je vous place en pj mon vrai fichier dans lequel vous trouverez votre code ajusté en module5

Quand je lance la macro j'ai bien 1 sortie d'impression par ligne mais une fois que tout est sorti il y a un bug de macro en clic sur debogage cela surligne en jaune le passage ou il y a le count....
je ne sais pas comment faire ou à quoi cela est du

merci pour votre aide préciseuse
 

Pièces jointes

nop .. (j'ai bien remplacé l'un par l'autre a chaque fois que PivotFields("Colis") est présent dans le code )

là il ne se passe plus rien

message d'erreur :

impossible de definir la propiete visible de la classe PivoItem

(j'ai bien remplacé l'un par l'autre a chaque fois)
 
- 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

Retour