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

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

  • Suivi budgétaire - Etudiants.xlsx
    791.6 KB · Affichages: 64

chris

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

Bonjour

Effectivement le calsseur (xlsx) ne contient aucun code VBA : tu l'as stocké semble-t-il dans le classeur Factures 2013-002.xls.
 

fredo917

XLDnaute Nouveau
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
 

chris

XLDnaute Barbatruc
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
 

fredo917

XLDnaute Nouveau
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

  • Erreur de compilation.jpg
    Erreur de compilation.jpg
    46.4 KB · Affichages: 67
  • Suivi budgétaire - Cité estudiantine La Vigie V19-08-14.xlsm
    833.7 KB · Affichages: 75

chris

XLDnaute Barbatruc
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

  • Suivi budgétaire - Etudiants2.xlsm
    868.7 KB · Affichages: 90

Discussions similaires

Réponses
6
Affichages
320

Statistiques des forums

Discussions
312 202
Messages
2 086 180
Membres
103 152
dernier inscrit
Karibu