VBA Récupérer le nombre de pages à imprimer

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

Matt51140

XLDnaute Nouveau
Bonjour le forum,

Par l'enregistreur (quand je paramètre le nombre de feuille à imprimer) j'obtiens ceci :

Code:
 ActiveWindow.SelectedSheets.PrintOut From:=1, To:=2, Copies:=1, Collate _
        :=True, IgnorePrintAreas:=False

Est il possible de récupérer (dans un before_print par exemple) la valeur affectée à "To:=" afin de l'insérer dans un pied de page (ce que je sais faire).

J'ai une méthode avec un bouton et une inputbox qui demande le nombre de page à imprimer mais j'aimerais que l'utilisateur utilise la méthode classique d'inpression.

Merci d'avance,

A+, Matt.
 
Re : VBA Récupérer le nombre de pages à imprimer

Bonjour,

Je pense que c'est une espace qui est restée dans le mot document.
J'ai enlevé le type de sh comme cela le code peut fonctionner s'il y a des feuilles graphiques.

Code:
Dim sh ,nb_pages
for each sh in ActiveWindow.SelectedSheets
    sh.activate
    nb_pages= nb_pages+Application.ExecuteExcel4Macro("GET.DOCUMENT(50)")
next
 
Re : VBA Récupérer le nombre de pages à imprimer

Bonjour Matt, Sylvain et à tous les contributeurs,


Voici un exemple du comptage proposé

Code:
Dim Nbpages As Integer
Nbpages = 0
'Page1
If WorksheetFunction.CountA(ThisWorkbook.ActiveSheet.Range("A1:J63")) > 0 Then Nbpages = Nbpages + 1
'page2
If WorksheetFunction.CountA(ThisWorkbook.ActiveSheet.Range("A64:J122")) > 0 Then Nbpages = Nbpages + 1

si l'on à un pas constant dans les zones saisissables l'on peut faire cela soous forme de boucle :
par exemple un pas de 63

Code:
Sub ComptePages()
Dim Nbpages As Integer
Dim Tourne As Integer, MaxPages As Integer
Dim Mini As Long, Maxi As Long, Pas as long 
Nbpages = 0
MaxPages = 7
Pas = 63
Mini = 1
Maxi = pas
For Tourne = 1 To MaxPages
'Test page courante
  If WorksheetFunction.CountA(ThisWorkbook.ActiveSheet.Range("A" & Mini & ":J" & Maxi)) > 0 Then Nbpages = Nbpages + 1
  Mini = Mini + pas
  Maxi = Maxi + pas
Next Tourne

MsgBox "Nombre de pages : " & Nbpages

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

  • Question Question
XL 2016 Imprimer
Réponses
1
Affichages
649
Réponses
8
Affichages
1 K
Retour