XL 2016 Excel VBA - Macro imprimer si cellule différente de 0

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

jrmy34

XLDnaute Nouveau
Bonjour à la communauté !

J'ai un fichier qui contient plusieurs feuilles. Su ma feuille "Accueil" qui me sert de Menu, j'ai ajouté un bouton imprimer. Il m'imprime donc ma sélection de feuille demandé.

Néanmoins, il m'imprime les feuilles qu'il y ait qqch d'écris ou non, ce qui fait du gaspillage de papier. Je souhaiterai donc pouvoir dire :

Tu imprimes uniquement les feuilles de la sélection que je t'impose dont B16 est différent de 0.

Voici mon code actuelle qui fonctionne et que je souhaiterai compléter avec ma condition :

Private Sub CommandButton1_Click()
CarryOn = MsgBox("Voulez-vous imprimer TOUS les Ateliers ?", vbYesNo, "Kutools for Excel") 'Message pour confirmer l'impression en oui/non
If CarryOn = vbYes Then 'si oui alors ...imprimer!
Worksheets(Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24", "A25")).PrintOut Copies:=1, ActivePrinter:="PDFCreator" 'Sélection des feuilles à imprimer
End If
End Sub

D'avance un tout grand merci à vous !!!
 
Bonjour Jrmy, bonjour le forum,

Essaie comme ça :

VB:
CarryOn = MsgBox("Voulez-vous imprimer TOUS les Ateliers ?", vbYesNo, "Kutools for Excel") 'Message pour confirmer l'impression en oui/non
If CarryOn = vbYes Then 'si oui alors ...imprimer!
    For Each O In Worksheets
        Select Case O.Name
            Case "A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", _
               "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24", "A25"
               If O.Range("B16") <> "" Then O.PrintOut Copies:=1, ActivePrinter:="PDFCreator" 'Sélection des feuilles à imprimer
        End Select
    Next O
End If
End Sub
 
Bonjour,

VB:
Private Sub CommandButton1_Click()
CarryOn = MsgBox("Voulez-vous imprimer TOUS les Ateliers ?", vbYesNo, "Kutools for Excel") 'Message pour confirmer l'impression en oui/non
If CarryOn = vbYes Then 'si oui alors ...imprimer!
'Worksheets(Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24", "A25")).PrintOut Copies:=1, ActivePrinter:="PDFCreator" 'Sélection des feuilles à imprimer
  For Each sh In Worksheets(Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24", "A25"))
    If sh.[B16] <> 0 Then
      sh.PrintOut Copies:=1, ActivePrinter:="PDFCreator"
    End If
  Next sh
End If
End Sub

Mais ça crée peut-être plusieurs documents ?

Cordialement.

Daniel
 
Essaie :

VB:
Private Sub CommandButton1_Click()
Dim Sh As Worksheet, Tabl() As String, Ctr As Integer
CarryOn = MsgBox("Voulez-vous imprimer TOUS les Ateliers ?", vbYesNo, "Kutools for Excel") 'Message pour confirmer l'impression en oui/non
Ctr = -1
If CarryOn = vbYes Then 'si oui alors ...imprimer!
  For Each Sh In Worksheets(Array("A1", "A2", "A3", "A4", "A5", "A6", "A7", "A8", "A9", "A10", "A11", "A12", "A13", "A14", "A15", "A16", "A17", "A18", "A19", "A20", "A21", "A22", "A23", "A24", "A25"))
    If Sh.[B16] <> 0 Then
      Ctr = Ctr + 1
      ReDim Preserve Tabl(Ctr)
      Tabl(Ctr) = Sh.Name
    End If
  Next Sh
  Worksheets(Tabl).PrintOut Copies:=1, ActivePrinter:="PDFCreator"
End If
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
810
T
Réponses
3
Affichages
754
T
Retour