Impression auto. selon liste déroulante type TCD

Bonjour,

Je cherche à automatiser l'impression d'un onglet à partir d'une liste déroulante.

Cette liste déroulante correspond au filtre du rapport d'un TCD.

J'ai donc essayé avec mon petit niveau sur la VBA de créer cette macro.

Il me renvoi un message d'erreur lors du lancement.

Etant donné qu'il ne s'agit pas d'une liste déroulante standard, le code que j'ai appliqué ne doit être adapté pour un TCD...

Pourriez-vous m'aider ?

Quel code appliquer dans ce cas ?

Petit détail complémentaire :

  • l'impression doit se faire selon la mise en forme que j'aurais appliqué au préalable.
  • l'impression doit se lancer automatiquement sur l'imprimante par défaut paramétré sur l'ordinateur de l’exécutant de la macro.

En PJ, une synthèse de mon fichier type avec ma macro (qui ne fonctionne pas donc)

Cordialement,

Etienne

Bonjour,

Une proposition à adapter.

Cdlt.

Private Sub Impression()
Dim pt As PivotTable, _
    pf As PivotField, _
    pi As PivotItem

    Application.ScreenUpdating = False
    Set pt = ActiveSheet.PivotTables(1)
    Set pf = pt.PageFields("Nom employé")
    pf.ClearAllFilters
    For Each pi In pf.PivotItems
        pf.CurrentPage = pi.Name
        pt.TableRange2.PrintOut preview:=True
    Next pi
    pf.ClearAllFilters

    Set pf = Nothing: Set pt = Nothing

End Sub

Bonjour Jean Eric,

Je te remercie pour ton retour.

Je ne suis pas très doué en VBA.

j'ai donc copier le code que tu m'as proposés.

Cependant, au lieu de me générer directement les impressions sur mon imprimante par défaut, une nouvelle fenêtre EXCEL s'active qui ressemble à une fenêtre de présentation de l'impression avant impression.

et le tout 1 par 1...

je vous joint le document après intégration de votre code.

Cordialement,

Bonjour,

Pour imprimer directement :

pt.TableRange2.PrintOut

au lieu de :

pt.TableRange2.PrintOut preview:=True

Super cela fonctionne !

Merci Jean-Eric.

Juste petit ajustement de dernière minute : sous le TCD j'ai des cases qui sont assez loin pour ne pas être écrasé quand on filtre sur 1 seul nom.

Par contre, quand on retire tout les filtres des nom, ces cases sont écrasées.

Comment éviter que ces cases soit écrasées avec ton code ?

Bonjour,

Essaie ainsi et adapte la plage à imprimer si besoin.

Cdlt.

Option Explicit

Private Sub Impression()
Dim ws As Worksheet
Dim pt As PivotTable, _
    pf As PivotField, _
    pi As PivotItem
Dim lastCol As Long, _
    lastRow As Long
Dim Rng As Range

    Application.ScreenUpdating = False

    Set ws = ActiveSheet
    Set pt = ws.PivotTables(1)
    Set pf = pt.PageFields("Nom employé")
    For Each pi In pf.PivotItems
        pf.CurrentPage = pi.Name
        lastCol = pt.TableRange1.Columns.Count
        With ws
            lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
            Set Rng = pt.TableRange2.Cells(1).Resize(lastRow, lastCol)
            Rng.PrintOut preview:=True
        End With
    Next pi

    pf.ClearAllFilters

    Set Rng = Nothing
    Set pf = Nothing: Set pt = Nothing
    Set ws = Nothing

End Sub

Bonjour Jean-Eric,

je viens de tester ce code.

je ne sais pas pourquoi mais il ne se passe rien...

je te renvoie le fichier

Bonjour,

Ton tableau de validation doit être placé correctement sous le TCD.

Mais c'est une mauvaise idée que de le placer sous le TCD, qui est de longueur variable.

Tu le places au dessus ou à droite du TCD.

Cdlt.

C'est ce que je comptais faire au pire si la solution était trop compliqué.

Est-ce normal malgré tout que quand j’essaie ton 2ème code, il ne se passe rien ?

Re,

Attribue les bonnes procédures aux boutons.

Cdlt.

Bonjour,

Je reviens sur mon sujet !

J'ai réussi à lancer les impressions automatiquement comme demandé.

Petite évolution : Je souhaite les imprimer en PDF.

j'ai donc sélectionner par défaut l'imprimante "PDF Créator". Quand je lance l'impression cela fonctionne également.

Cependant, on vu du nombre d'impression que je génère, le nom des fichiers généré est inexploitable pour moi.

Je souhaiterais qu'automatiquement le nom du PDF soit celui du nom de la personne (comme dans l'exemple EXCEL que j'ai joint dans un message précédent).

Je peux vous préparer un fichier EXCEL avec la macro que j'ai faite, mais avant de m'y coller, je souhaite m'assurer auprès de vous que ma demande est possible.

Par avance merci.

Bonjour,

Merci d'ouvrir un nouveau sujet et de joindre un fichier à ta demande.

Tu apporteras un complément d'informations, tel que l'emplacement des fichiers à enregistrer.

Il n'est pas nécessaire de passer par PDF Creator (Excel 2010+).

Cdlt.

Rechercher des sujets similaires à "impression auto liste deroulante type tcd"