Imprimer les onglets sélectionnés en VBA

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

tchaz26

XLDnaute Nouveau
Bonjour à tous,

dans le cadre de mon travail, je me retrouve à avoir à faire une "petite" macro qui filtre les onglets avant d'imprimer ceux qui doivent l'être.

pour ce faire, j'ai fait une macro qui me cache les onglets indésirables et qui sélectionne les onglets visible.(si vous la voulez, demandez la moi, mais c'est un peu du bricolage 😉 )

toute la macro marche jusqu'au moment d'imprimer ma sélection d'onglets.
mais un code vaux mieux que de grandes phrases, donc le voici:

Code:
Sub imp()
    'début de ma macro qui cache les onglets à ne pas imprimer et qui fonctionne bien ^^
    'sélection des onglets visibles
        For Each ws In Worksheets
            If ws.Visible = xlSheetVisible Then ws.Select Replace:=False
        Next ws
'les onglets que je veux imprimer sont sélectionnés
'
'et la je n'arrive pas à trouver la syntaxe pour imprimer les onglets sélectionnés

End Sub


est-ce que quelqu'un aurai une idée à me proposer? (en plus je suis sur que c'est tout bête^^)
A savoir que la finalité est d'automatiser la création d'un document PDF unique, c'est pour cela que je fait une sélection, sinon imprimer feuille par feuille je sais faire 😉.


merci d'avance.
 
Re : Imprimer les onglets sélectionnés en VBA

bonjour tchaz, et bienvenue sur le forum

avec ce code:

Code:
Sub imprimer()
    'début de ma macro qui cache les onglets à ne pas imprimer et qui fonctionne bien ^^
    'IMPRIMER LES ONGLETS VISIBLES
        For Each ws In Worksheets
            If ws.Visible = xlSheetVisible Then ws.PrintOut
        Next ws
End Sub

à+
Philippe
 
Re : Imprimer les onglets sélectionnés en VBA

merci beaucoup pour cette réactivité.

le problème avec le code que vous me donnez, c'est qu'il fait du feuille par feuille, ce qui n'est pas gênant si je lance l'impression sur une imprimante, encore qu'il peut y avoir jusqu'à 50 feuilles à imprimer et que je préfère lancer une impression de 50 feuilles que 50 impression d'une feuille, ce qui éviterait d'avoir des feuilles de mes collègues au milieu des miennes (impression sur photocopieur en réseau).

mais comme je l'ai dit, en plus de l'impression papier,il me faut créer un seul pdf avec tous les onglets visible.
pour la partie pdf j'ai ça:

Code:
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "R:\xxx\" & Range("D3") & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
       False

mais ce code ne me fait un pdf que de l'onglet actif.

ce qu'il me faut c'est remplacer "ActiveSheet" pour qu'il prenne en compte les onglets sélectionnés et me faire ainsi un seul PDF au lieu d'un par onglet.
 
Re : Imprimer les onglets sélectionnés en VBA

Bonjour Tchaz, Philippe

Comme ceci , cela devrait fonctionner

Code:
Sub impr()
Dim Ws As Worksheet
     'début de ma macro qui cache les onglets à ne pas imprimer et qui fonctionne bien ^^
     'sélection des onglets visibles
         For Each Ws In Worksheets
             If Ws.Visible = xlSheetVisible Then Ws.Select Replace:=False
         Next Ws
 'les onglets que je veux imprimer sont sélectionnés
ActiveWindow.SelectedSheets.PrintOut
 
End Sub
 
Re : Imprimer les onglets sélectionnés en VBA

parfait camarchepas,
et comme je le disais, c'est tout bête ^^

L'impression se lance bien, par contre maintenant j'ai un soucis avec l'enregistrement pdf.

-si je marque Activewindow.SelectedSheets.ExportAsFixedFormat... ça me met "erreur de compilation: membre de méthode ou de données introuvable" donc la syntaxe est fausse.

-si je marque ActiveSheet.ExportAsFixedFormat ... ça me met "erreur d'execution '5': argument ou appel de procédure incorrect" . j'ai peut-être fait un erreur?
Code:
'je donne le chemin au début de mon code
        Dim Chemin As String
        Chemin = "R:\yoann\" & Range("G5") & ".pdf"
'et a la fin
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        Chemin, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False

je voie pas ce qui cloche...😕
 
Re : Imprimer les onglets sélectionnés en VBA

Re ,

Je viens de faire le test, comme ceci cela fonctionne .

Il faut bien sur être au minimum en Excel 2007

Code:
Sub ff()


        Dim Chemin As String
         Chemin = "c:\temp\" & "Bidon" & ".pdf"
 'et a la fin
Dim Ws As Worksheet
      'début de ma macro qui cache les onglets à ne pas imprimer et qui fonctionne bien ^^
     'sélection des onglets visibles
         For Each Ws In Worksheets
              If Ws.Visible = xlSheetVisible Then Ws.Select Replace:=False
          Next Ws
  'les onglets que je veux imprimer sont sélectionnés
 ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
         Chemin, Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
         OpenAfterPublish:=False

End Sub
 
- 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
3
Affichages
202
Retour