Impression automatique sur base d'un tableau croisé dynamique avec filtre

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

fredo917

XLDnaute Nouveau
Bonjour à tous,

Je souhaite imprimer automatiquement une liste de données sur base d'un TCD.

J'ai donc une liste d'étudiants classée par Nom, prénom.

Je souhaiterais à l'aide d'un bouton pouvoir imprimer automatiquement avec aperçu avant impression, les données de chaque étudiant comme si j'avais coché manuellement chaque étudiant un à un dans le filtre du TCD.

Lorsque je travaille avec une liste déroulante, cela fonctionne.

Par contre lorsque je me base sur un filtre d'un TCD, cela ne fonctionne pas.

Voici le fichier, feuille de travail intitulée, "Détail par étudiant".

Autre question, visiblement, pour pouvoir visualiser le code associé au bouton, je dois ouvrir un autre fichier.

Car j'ai le message d'erreur "Référence non valide" lorsque je souhaite visualiser le code.

Pour avis.

Merci pour votre aide.
 

Pièces jointes

Re : Impression automatique sur base d'un tableau croisé dynamique avec filtre

J'ai réussi à recopier le code associé au bouton situé dans le fichier factures2013-002

Sub Bouton38_Clic()
Dim Lig As Long, DerLig As Long
Dim ShtD As Worksheet, ShtF As Worksheet
' Attribue chaque feuille à une variable
Set ShtD = Sheets("LISTING")
Set ShtF = Sheets("POPSY")
' Récupère la dernière ligne du tableau des données
DerLig = ShtD.Range("A65536").End(xlUp).Row
' Pour chaque ligne du tableau
For Lig = 2 To DerLig
'Inscrit le nom sur la facture
ShtF.Range("b5") = ShtD.Range("A" & Lig)
'Imprime la facture avec aperçu
Application.Dialogs(xlDialogPrintPreview).Show
Next
End Sub
 
Re : Impression automatique sur base d'un tableau croisé dynamique avec filtre

Bonjour

Dans le module de la feuille Détail par étudiant
Code:
Sub printFact()
    Dim Etudiant As Long, x as long 'Nombre d'étudiants
    With PivotTables(1).PivotFields("Nom, Prénom")
        x = .PivotItems.Count
      'Initialisation 
     .ClearAllFilters
        For i = 2 To x
            .PivotItems(i).Visible = False
        Next i
        '1er étudiant
        If .PivotItems(1).Value <> "0" Then Call impression
        'Etudiants suivants
        For Etudiant = 2 To x
            .PivotItems(Etudiant).Visible = True
            .PivotItems(Etudiant - 1).Visible = False
            If .PivotItems(Etudiant).Value <> "0" Then Call impression
        Next Etudiant
        
    End With
End Sub

Sub impression()
    PrintPreview
End Sub
 
Re : Impression automatique sur base d'un tableau croisé dynamique avec filtre

Merci Chris pour ton aide.

Tu as compris que je ne suis pas informaticien donc j'ai essayé d'associé ton code au bouton n° 39 dans mon classeur.
J'ai le message d'erreur suivant copie d'écran ci-joint.
J'ai cru comprendre qu'il est possible d'imprimer sur base d'un filtre plutôt que sur base d'une liste déroulante.

Erreur de compilation.jpg.

Si tu peux m'aider avec ça, voici le fichier excel également.

Merci.
 

Pièces jointes

Re : Impression automatique sur base d'un tableau croisé dynamique avec filtre

Re

Tu n'avais pas mis le code dans le module de la feuille mais dans le module standard (Il faut dans l'éditeur de VBA afficher la fenêtre explorateur de projets, puis douvle cliqer sur le nom de la feuille pour afficher son code).

J'ai remplacé ton bouton de formulaire par un bouton de type contrôle activeX et dans son code il appelle la fonction printFact.
J'ai mis tes propres codes du module 1 en commentaires car il y a des problèmes de compilation dessus.

Pas sûr que de visualiser une à une les factures avant de cliquer sur "imprimer" soit l'idéal...
 

Pièces jointes

- 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

Réponses
16
Affichages
846
  • Question Question
Microsoft 365 recherche idée
Réponses
6
Affichages
779
Retour