Imprimer seconde feuille

Softdy

XLDnaute Nouveau
Bonjour,

J aimerai imprimer la feuille 1 et la feuille 2 mais si la cellule a1 de cette feuille numero 2 ne comporte rien alors n'imprimer que la feuille 1.

Merci de votre aide
 

JCGL

XLDnaute Barbatruc
Re : Imprimer seconde feuille

Bonjour à tous,

Peux-tu essayer ceci dans un module :

VB:
Option Explicit

Sub Test()
    Sheets(Array("Feuil1", "Feuil2")).Select
    If Feuil2.Cells(1, 1) <> "" Then
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2
    Else
        ActiveWindow.SelectedSheets.PrintOut From:=1, To:=1
    End If
    Feuil1.Select
End Sub

A + à tous

Edition : Salut Camarchepas
 
Dernière édition:

camarchepas

XLDnaute Barbatruc
Re : Imprimer seconde feuille

Bonjour, salutations M. JCGL

Voici une solution via VBA.

J'utilise une petite technique pour savoir si une feuille est imprimable ou pas par le vba en ajoutant à droite du nom de l'onglet un "_".

une autre option peut être de déclarer le nom des feuille possible mais bon , il faut revenir dans le code si modif du nom ou ajout d'une feuille.

le code détermine si au moins une cellule est renseignée , si oui la derniere ligne employée et sélectionne la feuille en mode ajout puis compte les page .

En final si au moins une page imprimable alors envoi vers impression.



Code:
Sub imprime()
Dim LigneDeFin As Long, NbPage As Integer
Dim Onglet As Worksheet
Dim Classeur As Workbook
'Initialise le classeur à traiter
Set Classeur = ThisWorkbook
'Scrute l'ensemble des feuilles du classeur
For Each Onglet In Classeur.Worksheets
 'Si repère feuille imprimable
 If Right(Onglet.Name, 1) = "_" Then
  'Si au moins une cellule de renseignée
  If WorksheetFunction.CountA(Onglet.Cells) > 0 Then
    'Laissée ici mais pas forcément utile dans ce cas
     'Recherche de la dernière ligne contenant quelque chose
     LigneDeFin = Onglet.Cells.Find(What:="*", After:=[A1], SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
  End If
  ' Si quelque chose à imprimer
  If LigneDeFin > 0 Then
     LigneDeFin = 0
    'Incrémente le nombre de page
    NbPage = NbPage + 1
    'Multi selection des feuilles à imprimer
    If NbPage = 1 Then
      Onglet.Select
     Else
      Onglet.Select (False)
    End If
  End If
End If
Next
If NbPage > 0 Then ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=False
End Sub
 

Pièces jointes

  • 1prime.xlsm
    19.8 KB · Affichages: 33

Discussions similaires

Réponses
2
Affichages
180

Statistiques des forums

Discussions
312 613
Messages
2 090 231
Membres
104 454
dernier inscrit
alaindeloin.1976