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

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,

Tu nous demandes donc de créer un classeur ?

Cdlt.

non pas vraiment, je demande de l'aide sur le code vba permettant de réaliser ce que je souhaite

mais bon voici un tableau lambda qui peut servir de support

14demo-2.xlsx (13.29 Ko)

merci

Re,

Un exemple à étudier.

Cdlt.

22xlp-benjy555.xlsm (29.65 Ko)
Option Explicit

Public Sub PrintPI()
Dim pt As PivotTable, pf As PivotField, pi As PivotItem
    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.PageFields("GenCode")
    pf.ClearAllFilters
    For Each pi In pf.PivotItems
        pf.CurrentPage = pi.Name
        ActiveSheet.PrintOut preview:=True
    Next pi
    pf.CurrentPage = "(All)"
End Sub

Bonjour à tous

Encore un multi post sur n forums... sans le préciser et des réponses aussi ailleurs

Re,

Un exemple à étudier.

Cdlt.

xlp - Benjy555.xlsm

Option Explicit

Public Sub PrintPI()
Dim pt As PivotTable, pf As PivotField, pi As PivotItem
    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.PageFields("GenCode")
    pf.ClearAllFilters
    For Each pi In pf.PivotItems
        pf.CurrentPage = pi.Name
        ActiveSheet.PrintOut preview:=True
    Next pi
    pf.CurrentPage = "(All)"
End Sub

bonjour Jean Eric

Merci cela fonctionne je vais juste adapter à mon cas et je pense y arriver tout seul grâce à toi.

2 questions :

à quoi sert "Option Explicit" ? placé dans le module et dans les feuilles ?

- comment faire pour que toutes les pages s'impriment à la suite sans qu'il y ait besoin de valider les aperçu un par un ?

merci d'avance

voici la proposition que j'ai obtenu dans un autre forum si cela peut aider

merci

34111.xlsm (21.49 Ko)

Bonjour,

Option Explicit en début de module force la déclaration des variables.

Toute variable non déclarée renverra un message d'erreur (voir avec notre ami commun Google).

Pour imprimer directement, tu supprimes Preview:=True.

Mais un double clic sur PrintOut et F1 t'aurait donné la réponse.

Ce petit geste aurait peut-être évité des multi postes.

Cdlt.

Bonjour,

Option Explicit en début de module force la déclaration des variables.

Toute variable non déclarée renverra un message d'erreur (voir avec notre ami commun Google).

Pour imprimer directement, tu supprimes Preview:=True.

Mais un double clic sur PrintOut et F1 t'aurait donné la réponse.

Ce petit geste aurait peut-être évité des multi postes.

Cdlt.

bonjour

je n'arrive malheureusement pas à adapter à mon cas

j'ai donc refait un fichier démo qui reprends ce que je dois obtenir concrètement en y mettant ta fonction et en remplacement le nom du champs qui sert de filtre (ici "Colis")

j'obtiens une première page qui s'imprime avec le filtre sur la première valeur qui est "vide" (donc rien) mais ensuite la macro plante et ne passe plus à toutes les autres valeurs.

Alors je suis reconnaissant à quiconque aura l'amabilité de me soutenir sur ce petit bout de code.

merci a nouveau

Rechercher des sujets similaires à "macro afficher valeur tcd impression separee"